**EXEC16                                                                E0000000
EXEC16  PROG  INTERDATA OS/16 MT2 EXECUTIVE  07-087M96R03-00           EE0000100
         SPACE 5                                                        E0000200
*  OOOOOOO   SSSSSSS      11     66666666 MMM   MMM TTTTTTTT   22222222 E0000300
* OOOOOOOOO SSSSSSSSS    111    666666666 MMMM MMMM TTTTTTTT  222222222 E0000400
* OO     OO SS          1111    66        MM MMM MM    TT            22 E0000500
* OO     OO SSSSSSSS      11    666666666 MM  M  MM    TT      22222222 E0000600
* OO     OO  SSSSSSSS     11    666666666 MM     MM    TT     22222222  E0000700
* OO     OO        SS     11    66     66 MM     MM    TT     22        E0000800
* OOOOOOOOO SSSSSSSSS     11    666666666 MM     MM    TT     222222222 E0000900
*  OOOOOOO   SSSSSSS      11    66666666  MM     MM    TT     222222222 E0001000
         SPACE 5                                                        E0001100
*      EEEEEEEEEEEEE  XX         XX  EEEEEEEEEEEEE   CCCCCCCCCCCC       E0001200
*      EEEEEEEEEEEEE   XX       XX   EEEEEEEEEEEEE  CCCCCCCCCCCCC       E0001300
*      EE               XX     XX    EE             CC                  E0001400
*      EE                XX   XX     EE             CC                  E0001500
*      EE                 XX XX      EE             CC                  E0001600
*      EEEEEEEEE           XXX       EEEEEEEEE      CC                  E0001700
*      EEEEEEEEE           XXX       EEEEEEEEE      CC                  E0001800
*      EE                 XX XX      EE             CC                  E0001900
*      EE                XX   XX     EE             CC                  E0002000
*      EE               XX     XX    EE             CC                  E0002100
*      EEEEEEEEEEEEE   XX       XX   EEEEEEEEEEEEE  CCCCCCCCCCCCC       E0002200
*      EEEEEEEEEEEEE  XX         XX  EEEEEEEEEEEEE   CCCCCCCCCCCC       E0002300
         SPACE 5                                                        E0002400
*                                                                       E0002500
*        EXECUTE OS/16 MT2 AT LOCATION X'60'                            E0002600
*                                                                       E0002700
         TITLE ENTRY/EXTRN DEFINITIONS                                  E0002800
*                                                                 EN003 E0002900
         ENTRY ADTSKQ,ACTTCB       *                              EN003 E0003000
         ENTRY BUSY,BGTCB          *                              EN003 E0003100
         ENTRY CMTCB               *                              EN003 E0003200
         ENTRY DBNULL,DMT          *                              EN003 E0003300
         ENTRY FBOT,FLOATF         *                              EN003 E0003400
         ENTRY IORSAV,IOTERM,IOTWAT,IOEXIT,IODONE                 EN003 E0003500
         ENTRY INCRCN,III,IIIPSW                                 E000370E0003600
         ENTRY LIOTRM              *                              EN003 E0003700
         ENTRY MTOP                *                              EN003 E0003800
         ENTRY NORMCN              *                              EN003 E0003900
         ENTRY PFFLAG              *                              EN003 E0004000
         ENTRY MDPSW,MDPSW2        *                              EN003 E0004100
         ENTRY SYSVOL,SCHDP        *                              EN003 E0004200
         ENTRY TCBTAB              *                              EN003 E0004300
         ENTRY UBOT                *                              EN003 E0004400
         ENTRY VMT                 *                              EN003 E0004500
         ENTRY ZERO                *                              EN003 E0004600
  ENTRY  SAVCC,EXECSU,SVCPSW,SVCARG                                     E0004700
         EXTRN SYSTOP              *                              EN003 E0004800
         EXTRN CIORQ               *                              EN003 E0004900
*                                                                 EN003 E0005000
         EXTRN INIT                *                               203D E0005100
*                                                                 EN003 E0005200
         TITLE REGISTER EQUATES                                         E0005300
*                                                                       E0005400
*        REGS - REGISTER EQUATES                                        E0005500
*                                                                       E0005600
PSWCCCL  EQU   X'FFF0'             CONDITION CODE CLEAR                 E0005700
PSWCCC   EQU   X'0008'             CARRY FLAG MASK                      E0005800
PSWCCV   EQU   X'0004'             V FLAG MASK                          E0005900
PSWCCG   EQU   X'0002'             G FLAG MASK                          E0006000
PSWCCL   EQU   X'0001'             L FLAG MASK                          E0006100
*                                                                       E0006200
CRASH    EQU   0                                                        E0006300
*                                                                       E0006400
R0       EQU   0                                                        E0006500
R1       EQU   1                                                        E0006600
R2       EQU   2                                                        E0006700
R3       EQU   3                                                        E0006800
R4       EQU   4                                                        E0006900
R5       EQU   5                                                        E0007000
R6       EQU   6                                                        E0007100
R7       EQU   7                                                        E0007200
R8       EQU   8                                                        E0007300
R9       EQU   9                                                        E0007400
R10      EQU   10                                                       E0007500
R11      EQU   11                                                       E0007600
R12      EQU   12                                                       E0007700
R13      EQU   13                                                       E0007800
R14      EQU   14                                                       E0007900
R15      EQU   15                                                       E0008000
RA       EQU   10                                                       E0008100
RB       EQU   11                                                       E0008200
RC       EQU   12                                                       E0008300
RD       EQU   13                                                       E0008400
RE       EQU   14                                                       E0008500
RF       EQU   15                                                       E0008600
*                                                                       E0008700
UTSTAT   EQU   X'7F00'             EI+MM+DF+AS+FP+QS+PM                 E0008800
ETSTAT   EQU   X'7E00'             EI+MM+DF+AS+FP+QS                    E0008900
SUSTAT   EQU   X'7C00'             EI+MM+DF+AS+FP                       E0009000
ISSTAT   EQU   X'3000'             MM+DF                                E0009100
WAITSTAT EQU   X'FE00'             WT+EI+MM+DF+AS+FP+QS                 E0009200
CRSTAT   EQU   X'A000'             WT+MM                                E0009300
         TITLE TASK CONTROL BLOCK                                       E0009400
*                                                                       E0009500
*        TCB - TASK CONTROL BLOCK                                       E0009600
*                                                                       E0009700
TCB      STRUC                                                          E0009800
TCB.ID   DS    8                   TASK ID                              E0009900
TCB.STAT DS    2                   TASK STATUS WORD                     E0010000
TCB.ITSW DS    4                   INITIAL TSW AND LOC                  E0010100
TCB.CPSW DS    4                   CURRENT PSW                          E0010200
TCB.CTSW DS    2                   CURRENT TASK STATUS HALFWORD         E0010300
TCB.UBOT DS    2                   A(PARTITION)                         E0010400
TCB.UBSW DS    2                  SU STATE PSW FOR ACCESSING UDL        E0010500
TCB.UBEW DS    2                  ET STATE PSW FOR ACCESSING UDL        E0010600
TCB.MPRI DS    1                   MAXIMUM PRIORITY                     E0010700
TCB.CPRI DS    1                   CURRENT PRIORITY                     E0010800
TCB.EXAD DS    1                  EX-ADDR BITS OF PARTITION ADDR        E0010900
TCB.WTHR DS    1                   INDEX OF NEXT TCB IN WAIT THREAD     E0011000
TCB.TVAL DS    4                   TIME INTERVAL WAIT                   E0011100
TCB.ADQT DS    4                   TIME INTERVAL FOR TASK QUEUE         E0011200
TCB.ADQP DS    2                   TASK QUEUE PARAMETER                 E0011300
TCB.OPT  DS    2                   TASK OPTIONS                   EN001 E0011400
TCB.FLGS DS    2                   FLAGS                          EN001 E0011500
TCB.WTAD DS    2                   A(WAIT THREAD)                       E0011600
TCB.MPT  DS    8                   MEMORY PROTECT PATTERN               E0011700
TCB.NLU  DS    1                   # OF LOGICAL UNITS                   E0011800
TCB.PNT  DS    1                   TCB TABLE POINTER                    E0011900
TCB.RC   DS    2                   RETURN CODE                          E0012000
TCB.RSAV DS    32                  DISPATCH REGISTER SAVE AREA          E0012100
TCB.FMLU DS    2                   FILE MANAGER LU                      E0012200
TCB.LTAB EQU   *                   LOGICAL UNIT TABLE                   E0012300
* TASK STATUS                                                           E0012400
TSTT.DMM EQU   X'8000'             DORMANT                              E0012500
TSTT.IOM EQU   X'4000'             I/O WAIT                             E0012600
TSTT.RWM EQU   X'1000'             ROLL WAIT                            E0012700
TSTT.CWM EQU   X'0400'             CONSOLE WAIT (PAUSED)                E0012800
TSTT.TIM EQU   X'0200'             TIME WAIT                            E0012900
TSTT.TRM EQU   X'0100'             TRAP WAIT                            E0013000
TSTT.S2M EQU   X'0080'             SVC 2 WAIT                           E0013100
TSTT.S6M EQU   2-SVCTWO!CLK*X'0040'  SVC 5/6 WAIT                 EN003 E0013200
TSTT.S7M EQU 2-SVCTWO!CLK          SVC 7 WAIT                     EN003 E0013300
TSTT.S7M EQU   2-SVCSIX*TSTT.S7M*X'0020'                          EN003 E0013400
TSTT.DWM EQU   X'0008'             DCB WAIT                             E0013500
TSTT.MWM EQU   X'0004'             CONSOLE MESSAGE WAIT                 E0013600
* TASK OPTIONS/FLAGS MASKS                                              E0013700
TOPT.ETM EQU   X'8000'             ET STATE                             E0013800
TOPT.ACM EQU   X'4000'             ARITHMETIC FAULT CONTINUE            E0013900
TOPT.FPM EQU   X'2000'             FLOATING POINT                       E0014000
TOPT.MRM EQU   X'1000'             MEMORY RESIDENT                      E0014100
TOPT.COM EQU   X'0800'             COMPATIBILITY                        E0014200
TOPT.BGM EQU   X'0400'             BACKGROUND TASK                      E0014300
TOPT.S6M EQU   X'0200'             SVC 6 CONTINUE                       E0014400
TOPT.ROM EQU   X'0100'             ROLLABLE                             E0014500
TOPT.DFM EQU   X'0040'             DOUBLE FLOATING POINT          EN001 E0014600
TOPT.CSM EQU   X'0020'            TASK COMMON IN 2ND 32KB FLAG          E0014700
*                                                                       E0014800
TFLG.APM EQU   X'0200'             ARITHMETIC FAULT PENDING FLAG        E0014900
TFLG.MPM EQU   X'0100'             MEMORY PARITY ERROR PENDING FLAG     E0015000
TFLG.PPM EQU   X'0080'             PAUSE PENDING FLAG                   E0015100
TFLG.CPM EQU   X'0040'             CANCEL PENDING                       E0015200
TFLG.SLM EQU   X'0020'      INSIDE SYSTEM LEVEL CODE                    E0015300
TFLG.BIM EQU   X'0010'             INSIDE BISYNC LEVEL CODE             E0015400
TFLG.PRM EQU   X'0008'             POWER RESTORE TRAP PENDING           E0015500
TFLG.ROM EQU   X'0004'        ROLL REQUEST PENDING                      E0015600
TFLG.TOD EQU   X'0002'             TIME OF DAY FLAG                     E0015700
TFLG.TPM EQU   X'0001'             TRAP PENDING FLAG                    E0015800
* TSW BITS                                                              E0015900
TTSW.WTM EQU   X'8000'             TRAP WAIT                            E0016000
TTSW.PRM EQU   X'4000'             POWER RESTORE TRAP ENABLE            E0016100
TTSW.SEM EQU   X'1000'             SVC 14 TRAP ENABLE                   E0016200
TTSW.QSM EQU   X'0800'             QUEUE SERVICE TRAP ENABLE            E0016300
TTSW.DIM EQU   X'0200'             QUEUE DEVICE INTERRUPT               E0016400
TTSW.TCM EQU   X'0100'             QUEUE TASK CALL                      E0016500
TTSW.TOM EQU   X'0080'             QUEUE TIMEOUT                        E0016600
TTSW.IPM EQU   X'0040'             QUEUE I/O PROCEED COMPLETE           E0016700
TTSW.PMM EQU   X'0010'             QUEUE SEND MESSAGE             EN006 E0016800
* LU TABLE ATTRIBUTE BYTE                                               E0016900
TLAT.RDM EQU   X'40'               READ                                 E0017000
TLAT.WRM EQU   X'20'               WRITE                                E0017100
TLAT.BIM EQU   X'10'               BINARY                               E0017200
TLAT.WTM EQU   X'08'               WAIT                                 E0017300
TLAT.RNM EQU   X'04'              RANDOM                                E0017400
TLAT.UPM EQU   X'02'               UNCONDITIONAL PROCEED                E0017500
TLAT.IMM EQU   X'01'               IMAGE                                E0017600
TLTB.INC EQU   2                   INCR THROUGH LU TABLE                E0017700
TTAB.INC EQU   2                   START/INCR THROUGH TCBTAB            E0017800
         ENDS                                                           E0017900
         TITLE DEVICE CONTROL BLOCK                                     E0018000
*                                                                       E0018100
*        DCB - DEVICE CONTROL BLOCK                                     E0018200
*                                                                       E0018300
DCB.PPSW EQU   -24                PARAMETER BLOC PSW SETTING            E0018400
DCB.RECL EQU   -22                 LOGICAL RECORD LENGTH            -2B E0018500
DCB.CNTS EQU   -20                 COUNTS                      -2 BYTES E0018600
DCB.WCNT EQU   -20                 WRITE COUNT                      -1B E0018700
DCB.RCNT EQU   -19                 READ COUNT                       -1B E0018800
DCB.DCOD EQU   -18                 DEVICE CODE                      -1B E0018900
DCB.DN   EQU   -17                 DEVICE #                         -1B E0019000
DCB.ATRB EQU   -16                 DEVICE ATTRIBUTES                -2B E0019100
DCB.KEYS EQU   -14                 KEYS                        -2 BYTES E0019200
DCB.WKEY EQU   -14                 WRITE KEY                        -1B E0019300
DCB.RKEY EQU   -13                 READ KEY                         -1B E0019400
DCB.BUSY EQU   -12                 A(BUSY FLAG)                -2 BYTES E0019500
DCB.SBSY EQU   -12                 A(SELCH BUSY FLAG)               -2B E0019600
DCB.TERM EQU   -10                 A(TERMINATION ROUTINE)           -2B E0019700
DCB.ALOC EQU   -8                  ABORT LOC                        -2B E0019800
DCB.TOUT EQU   -6                  TIME OUT COUNT;0=TIMED OUT       -2B E0019900
DCB.FLGS EQU   -4                  FLAGS HALFWORD                   -2B E0020000
DCB.INIT EQU   -2                  A(INITIALIZATION ROUTINE)        -2B E0020100
         STRUC                                                          E0020200
DCB.OPSW DS    4                   OLD PSW SAVE AREA                    E0020300
DCB.NPSS DS    2                   NEW PSW STATUS                       E0020400
DCB.ENTR DS    10                  INTERRUPT SERVICE ENTRY POINT        E0020500
DCB.LEAV DS    4                   INTERRUPT SERVICE EXIT LOCATION      E0020600
DCB.NOPI DS    8                   NOP ISR ENTRY                        E0020700
DCB.IOW  EQU   *+1                 I/O WAIT POINTER                 -1B E0020800
DCB.RSAV DS    14*2                SAVE AREA FOR REGISTERS 2-15         E0020900
DCB.ISR  EQU   *-2                 ISR POINTER (R15)                -2B E0021000
DCB.RES  DS    2                   RESERVED FOR BUSY FLAG               E0021100
DCB.EDDC EQU   *                   BISYNC EXTENDED DEVICE CODE -2 BYTES E0021200
DCB.SDN  DS    1                   SELCH DEVICE #                       E0021300
DCB.CDN  DS    1                   CONTROLLER DEVICE #                  E0021400
DCB.CLRT EQU   *                   A(CLOSE ROUTINE) FOR ITAM DRIVERS    E0021500
DCB.DBSY DS    2                   A(DISC BUSY FLAG)                    E0021600
DCB.BFSZ EQU   *                   BISYNC BUFFER SIZE          -2 BYTES E0021700
DCB.DPB  EQU   *                   DUMMY PARAMETER BLOCK                E0021800
DCB.FCB  EQU   *+2                 A(FCB) SAVE AREA                 -2B E0021900
         DS    14                                                       E0022000
DCB.FMEX DS    2                   FILE MANAGER ALTERNATE EXIT          E0022100
DCB.CSEC DS    4                   CURRENT SECTOR POINTER               E0022200
DCB.DIRP DS    4                   FIRST DIRECTORY BLOCK POINTER-VD.FDP E0022300
DCB.BITP DS    4                   BIT MAP POINTER-VD.MAP               E0022400
DCB.CCYL DS    2                   CURRENT CYLINDER POINTER             E0022500
DCB.FMEP DS    2                   FILE MANAGER ENTRY POINT       EN004 E0022600
DCB.SCYL DS    2                   NUMBER OF SECTORS PER CYLINDER EN010 E0022700
DCB.STRK DS    1                   NUMBER OF SECTORS PER TRACK    EN001 E0022800
DCB.OINC DS    1                   OPTIMUM INCREMENT              EN010 E0022900
DCB.SIZE DS    4                   # OF SECTORS ON DEVICE               E0023000
DCB.SVCP DS    2                                                     EX E0023100
DCB.OC   DS    2                                                     EX E0023200
DCB.DSRT DS    2                                                     EX E0023300
DCB.DEND DS    2                                                     EX E0023400
DCB.ASAV DS    16*2               ALTERNATE SAVE AREA                   E0023500
DCB.FSAV DS    4                  FULLWORD SAVE AREA                    E0023600
DCB.BINX DS    2                   CURRENT INDEX INTO BIT MAP BUFFER    E0023700
DCB.CBIT DS    4                   CURRENT BIT MAP SECTOR POINTER       E0023800
DCB.BUFB DS    256                 BIT MAP SECTOR                       E0023900
DCB      EQU   *-DCB.RECL                                               E0024000
*        FLAGS MASKS                                                    E0024100
DFLG.BLM EQU   X'8000'             BULK DEVICE FLAG                     E0024200
DFLG.LNM EQU   X'4000'             ON-LINE FLAG                         E0024300
DFLG.BBM EQU   X'2000'             BISYNC BUSY FLAG                     E0024400
DFLG.MPM EQU   X'1000'             BIT MAP PRESENCE                     E0024500
DFLG.PFM EQU   X'0800'             PSUDO FILEMARK CHECK                 E0024600
DFLG.BMM EQU   X'0400'             BIT MAP MODIFY FLAG                  E0024700
DFLG.CNM EQU   X'0200'             CONSOLE FLAG                         E0024800
DFLG.BIM EQU   X'0100'             BISYNC DEVICE FLAG                   E0024900
DFLG.S6M EQU   X'0080'             SVC 6 CONNECTABLE DEVICE             E0025000
DFLG.WPM EQU   X'0040'             WRITE PROTECT FLAG                   E0025100
DFLG.HIM EQU   X'0020'             HALT I/O ABORT FLAG            EN009 E0025200
DFLG.S1M EQU   X'0010'             FMGR CALL FROM SVC1 FLAG             E0025300
DFLG.S0M EQU   X'0008'             START AT ZERO FLAG (GETSEC)          E0025400
DFLG.IUM EQU   X'0004'             DCB IN USE FLAG                      E0025500
DFLG.AFM EQU   X'0002'            SVC 15 ACCESS FLAG                    E0025600
DFLG.SDM EQU   X'0001'             SELCH DEVICE FLAG              EN004 E0025700
*        ATTRIBUTES MASKS                                               E0025800
DATR.INM EQU   X'8000'             INTERACTIVE DEVICE             EN009 E0025900
DATR.RDM EQU   X'4000'             SUPPORTS READ                        E0026000
DATR.WRM EQU   X'2000'             SUPPORTS WRITE                       E0026100
DATR.BIM EQU   X'1000'             SUPPORTS BINARY                      E0026200
DATR.WTM EQU   X'0800'             SUPPORTS WAIT I/O                    E0026300
DATR.RNM EQU   X'0400'             SUPPORTS RANDOM                      E0026400
DATR.UPM EQU   X'0200'             SUPPORTS UNCONDITIONAL PROCEED       E0026500
DATR.IMM EQU   X'0100'             SUPPORTS IMAGE                       E0026600
DATR.HIM EQU   X'0080'             SUPPORTS HALT I/O              EN009 E0026700
DATR.RWM EQU   X'0040'             SUPPORTS REWIND                      E0026800
DATR.BRM EQU   X'0020'             SUPPORTS BACKSPACE RECORD            E0026900
DATR.FRM EQU   X'0010'             SUPPORTS FORWARD SPACE RECORD        E0027000
DATR.WFM EQU   X'0008'             SUPPORTS WRITE FILEMARK              E0027100
DATR.FFM EQU   X'0004'             SUPPORTS FORWARD SPACE FILEMAKR      E0027200
DATR.BFM EQU   X'0002'             SUPPORTS BACKSPACE FILEMARK          E0027300
DCOD.NUL EQU   255                 DEVICE CODE OF NULL DEVICE           E0027400
         ENDS                                                           E0027500
*                                                                       E0027600
*        DMT - DEVICE MNEMONIC TABLE                                    E0027700
*                                                                       E0027800
DMT.     STRUC                                                          E0027900
DMT.NAME DS    4                   DEVICE MNEMONIC                      E0028000
DMT.DCB  DS    2                   A(DCB)                               E0028100
         ENDS                                                           E0028200
*                                                                       E0028300
*        VMT - VOLUME MNEMONIC TABLE                                    E0028400
*                                                                       E0028500
VMT.     STRUC                                                          E0028600
VMT.VOLN DS    4                   VOLUME NAME                          E0028700
VMT.DMT  DS    2                   A(DMT ENTRY)                         E0028800
         ENDS                                                           E0028900
         TITLE FILE CONTROL BLOCK                                       E0029000
*                                                                       E0029100
*        FCB - FILE CONTROL BLOCK                                       E0029200
*                                                                       E0029300
FCBI     STRUC                                                          E0029400
FCB.VMT  DS    2                   ADDRESS OF VMT ENTRY                 E0029500
FCB.CNTS DS    0                   COUNTS                      -2 BYTES E0029600
FCB.WCNT DS    1                  WRITE COUNT                           E0029700
FCB.RCNT DS    1                  READ COUNT                            E0029800
FCB.ATRB DS    2                  ATTRIBUTES OF FILE                    E0029900
FCB.LRCL DS    2                  LOGICAL RECORD LENGTH                 E0030000
FCB.OFF  DS    1                  DIRECTORY OFFSET                      E0030100
FCB.BKSZ DS    1                  FILE BLOCK SIZE                       E0030200
FCB.DIR  DS    4                  ADDRESS OF DIRECTORY BLOCK            E0030300
FCB.FLGS DS    1                  FLAGS                                 E0030400
FCB.DCOD DS    1                  DEVICE CODE OF FILE 2=IN,0=CO         E0030500
FCB.NAME DS    8                  FILENAME                              E0030600
FCB.EXT  DS    3                  EXTENTION                             E0030700
FCB.VERS DS    1                  VERSION                               E0030800
FCB.DCB  DS    2                  ADDRESS OF DCB                        E0030900
FCB.FLBA DS    4                  FIRST LOGICAL BLOCK ADDRESS           E0031000
FCB.LLBA DS    4                  LAST LOGICAL BLOCK ADDRESS            E0031100
FCB.CSEC DS    4                   CURRENT SECTOR/NLR                   E0031200
FCB.LU   DS    1                   LOGICAL UNIT                         E0031300
FCB.TPNT DS    1                   TCB POINTER                          E0031400
FCBO     EQU   *                        LENGTH OF CONTIGUOUS FCB        E0031500
*        ADDITIONAL FOR INDEXED FILES ONLY                              E0031600
FCB.BLK  DS    2                   BKSZ IN BYTES                        E0031700
FCB.IBLK DS    2                   INBS IN BYTES                        E0031800
FCB.INBS DS    1                   INDEX BLOCK SIZE                     E0031900
FCB.CCR  DS    1                   CLEAR CHARACTER                      E0032000
FCB.BAPB DS    14                  DATA BLOCK PARAMETER BLOCK           E0032100
FCB.IBPB DS    14                  INDEX BLOCK PARAMETER BLOCK          E0032200
FCB.NINB DS    2                   # OF INDEX BLOCKS                    E0032300
FCB.CINB DS    2                   CURRENT INDEX BLOCK #                E0032400
FCB.CINX DS    2                   CURRENT OFFSET INTO INDEX BLOCK      E0032500
FCB.NBLK DS    4                  # OF BLOCKS IN FILE                   E0032600
FCB.CBLK DS    4                  CURRENT BLOCK #                       E0032700
FCB.CLRL DS    4                   CURRENT LOGICAL RECORD #             E0032800
FCB.COFF DS    2                   CURRENT DATA BLOCK OFFSET            E0032900
FCB.RSAV DS    3*2                 SAVE AREA FOR R13-R15                E0033000
FCB.BPSW DS    2                  PSW TO TALK TO USER BUFFER            E0033100
FCB.BUFF EQU   *                   START OF INDEXED FILE BUFFER         E0033200
*        FLAGS MASKS                                                    E0033300
FFLG.BAM EQU   X'80'               BUFFERED ACCESS METHOD               E0033400
FFLG.IUM EQU   X'40'          FCB IN USE FLAG                           E0033500
FFLG.OPM EQU   X'20'              OPERATION;SET IMPLIES WRITE           E0033600
FFLG.BMM EQU   X'08'               DATA MOD FLAG                        E0033700
FFLG.MOM EQU   X'04'              MODE;SET IMPLIES EXTENDING FILE       E0033800
FFLG.SBM EQU   X'02'               BUSY FLAG SET FLAG                   E0033900
FFLG.XMM EQU   X'01'               INDEX MOD FLAG                       E0034000
*        DEVICE CODES                                                   E0034100
FDCD.CO  EQU   0                  CONTIGUOUS FILE                       E0034200
FDCD.IN  EQU   2                   INDEXED FILE                         E0034300
*        INDEXED FILE LINK FIELDS                                       E0034400
FINX.PRV EQU   0                   LINK TO PREVIOUS INDEX BLOCK         E0034500
FINX.NXT EQU   4                   LINK TO NEXT INDEX BLOCK             E0034600
         ENDS                                                           E0034700
         TITLE USER DEDICATED LOCATIONS                                 E0034800
*                                                                       E0034900
*        UDL - USER DEDICATED LOCATIONS                                 E0035000
*                                                                       E0035100
UDLD     STRUC                     *                              EN001 E0035200
UDL.ITSW DS    0                   INITIAL TSW                 -4 BYTES E0035300
UDL.CTOP DS    2                   HIGHEST HALFWORD OF USERS MEMORY     E0035400
UDL.CBOT DS    2                   COMMON BOTTOM                        E0035500
UDL.UTOP DS    2                   FIRST HALFWORD FOLLOWING USER PROG.  E0035600
UDL.UBOT DS    2                   BOTTOM OF USER PROGRAM               E0035700
UDL.TSKQ DS    2                   A(TASK QUEUE)                        E0035800
UDL.PWRO DS    4                   POWER RESTORATION OLD TSW            E0035900
UDL.PWRN DS    4                   POWER RESTORATION NEW TSW            E0036000
UDL.TSKO DS    4                   TASK QUEUE SERVICE OLD TSW           E0036100
UDL.TSKN DS    4                   TASK QUEUE SERVICE NEW TSW           E0036200
UDL.MSGR DS    2                   A(MESSAGE BUFFER)              EN006 E0036300
         DS    8                   RESERVED                       EN006 E0036400
UDL      EQU    *                       SIZE OF NON-FLOATING POINT UDL  E0036500
UDL.FPRS DS    8*4                 FLOATING POINT REGISTER SAVE AREA    E0036600
UDLF     EQU   *                   SIZE OF SPFP UDL               EN001 E0036700
UDL.DFRS DS    8*8                 DPFP REGISTER SAVE AREA        EN001 E0036800
*        TSW BITS                                                       E0036900
TSW.WTM  EQU   X'8000'             TRAP WAIT                            E0037000
TSW.PWRM EQU   X'4000'             POWER RESTORE TRAP ENABLE            E0037100
TSW.S14M EQU   X'1000'             SVC 14 TRAP ENABLE                   E0037200
TSW.TSKM EQU   X'0800'             QUEUE SERVICE TRAP ENABLE            E0037300
TSW.DIQM EQU   X'0200'             QUEUE DEVICE INTERRUPT               E0037400
TSW.TCM  EQU   X'0100'             QUEUE TASK CALL                      E0037500
TSW.TMCM EQU   X'0080'             QUEUE TIMEOUT                        E0037600
TSW.IOM  EQU   X'0040'             QUEUE I/O PROCEED COMPLETE           E0037700
TSW.PMM  EQU   X'0010'             QUEUE SEND MESSAGE             EN006 E0037800
TSW.LOC  EQU   2                   DISPLACEMENT OF LOC HALFWORD         E0037900
         ENDS                                                           E0038000
         TITLE SVC1 PARAMETER BLOCK                                     E0038100
*                                                                       E0038200
*        SVC1. - SVC1 PARAMETER BLOCK                                   E0038300
*                                                                       E0038400
SVC1.    STRUC                                                          E0038500
SVC1.FUN DS    0                   FUNCTION CODE/LOGICAL UNIT           E0038600
SVC1.FC  DS    1                   FUNCTION CODE                        E0038700
SVC1.LU  DS    1                   LOGICAL UNIT                         E0038800
SVC1.STA DS    1                   STATUS                               E0038900
SVC1.DN  DS    1                   DEVICE #                             E0039000
SVC1.SAD DS    2                   STARTING ADDRESS                     E0039100
SVC1.EAD DS    2                   ENDING ADDRESS                       E0039200
SVC1.RAD DS    4                   RANDOM ADDRESS                       E0039300
SVC1.LXF DS    2                   LENGTH OF LAST TRANSFER              E0039400
*        FUNCTION CODE                                                  E0039500
S1FC.RDM EQU   X'40'               READ                                 E0039600
S1FC.WRM EQU   X'20'               WRITE                                E0039700
S1FC.BIM EQU   X'10'               BINARY/ASCII                         E0039800
S1FC.WTM EQU   X'08'               WAIT/PROCEED                         E0039900
S1FC.RNM EQU   X'04'               RANDOM/SEQUENTIAL                    E0040000
S1FC.UPM EQU   X'02'               UNCONDITIONAL PROCEED                E0040100
S1FC.IMM EQU   X'01'               IMAGE/FORMATTED                      E0040200
S1FC.CMM EQU   X'80'               COMMAND FUNCTION                     E0040300
S1FC.RWM EQU   X'40'               REWIND                               E0040400
S1FC.BRM EQU   X'20'               BACKSPACE RECORD                     E0040500
S1FC.FRM EQU   X'10'               FORWARD SPACE RECORD                 E0040600
S1FC.WFM EQU   X'08'               WRITE FILE MARK                      E0040700
S1FC.FFM EQU   X'04'               FORWARD FILE                         E0040800
S1FC.BFM EQU   X'02'               BACKWARD FILE                        E0040900
*        STATUS HALFWORD                                                E0041000
S1ST.ERM EQU   X'8000'             ERROR STATUS                         E0041100
S1ST.IFM EQU   X'4000'             ILLEGAL FUNCTION                     E0041200
S1ST.DUM EQU   X'2000'             DEVICE UNAVAILABLE                   E0041300
S1ST.EMM EQU   X'1000'             END OF MEDIUM                        E0041400
S1ST.EFM EQU   X'0800'             END OF FILE                          E0041500
S1ST.UEM EQU   X'0400'             UNRECOVERABLE ERROR                  E0041600
S1ST.REM EQU   X'0200'             RECOVERABLE ERROR                    E0041700
S1ST.LUM EQU   X'0100'             ILLEGAL OR UNASSIGNED LU             E0041800
         ENDS                                                           E0041900
         TITLE SVC5 PARAMETER BLOCK                                     E0042000
*                                                                       E0042100
*        SVC5. - SVC5 PARAMETER BLOCK                                   E0042200
*                                                                       E0042300
SVC5.    STRUC                                                          E0042400
SVC5.ID  DS    8                   OVERLAY NAME                         E0042500
SVC5.STA DS    1                   STATUS                               E0042600
SVC5.OPT DS    1                   OPTIONS                              E0042700
SVC5.LU  DS    2                   LU NUMBER                            E0042800
* OPTION BYTE                                                           E0042900
S5OP.RWM EQU   X'04'               REWIND LU BEFORE LOAD                E0043000
S5OP.NPM EQU   X'01'               LOAD WITHOUT POSITIONING LU          E0043100
         ENDS                                                           E0043200
         TITLE SVC6 PARAMETER BLOCK                                     E0043300
*                                                                       E0043400
*        SVC6. - SVC6 PARAMETER BLOCK                                   E0043500
*                                                                       E0043600
SVC6.    STRUC                                                          E0043700
SVC6.ID  DS    8                   TASK ID                              E0043800
SVC6.FUN EQU   *                   FUNCTION CODE               -4 BYTES E0043900
SVC6.FC1 DS    2                   PART 1                               E0044000
SVC6.FC2 DS    2                   PART 2                               E0044100
SVC6.TST DS    2                   TASK STATUS                          E0044200
SVC6.STA DS    2                   ERROR POINTER AND CODE               E0044300
SVC6.LU  DS    1                   LOAD LU                              E0044400
SVC6.PRI DS    1                   PRIORITY                             E0044500
SVC6.RPI DS    1                   RETURN PRIORITY                      E0044600
         DS    1                   RESERVED                             E0044700
SVC6.SAD DS    2                   START ADDRESS                        E0044800
SVC6.TIM EQU   *                   TIME VALUES:                -4 BYTES E0044900
SVC6.TTM DS    1                   TYPE TIME                            E0045000
SVC6.DTM DS    3                   DELAY TIME                           E0045100
SVC6.DMN DS    4                   DEVICE MNEMONIC                      E0045200
SVC6.PAR DS    2                   PARAMETER                            E0045300
SVC6.MSG DS    2                   A(MESSAGE BUFFER)              EN006 E0045400
         DS    2*2                 *                              EN006 E0045500
SFC1.DOM EQU   X'8000'             DIRECTION:OTHER TASKS                E0045600
SFC1.DSM EQU   X'C000'             DIRECTION:SELF                       E0045700
SFC1.EDM EQU   X'2000'             END TASK:DELETE                      E0045800
SFC1.ECM EQU   X'1000'             END TASK:CANCEL                      E0045900
SFC1.LM  EQU   X'0200'             LOAD TASK                            E0046000
SFC1.FXM EQU   X'0080'             FIX (MAKE RESIDENT)                  E0046100
SFC1.MM  EQU   X'0010'             SEND MESSAGE                   EN006 E0046200
SFC1.QM  EQU   X'0008'             QUEUE PARAMETER                      E0046300
SFC1.PM  EQU   X'0004'             CHANGE PRIORITY                      E0046400
SFC2.OM  EQU   X'8000'             CONNECT DEVICE TO SPECIFIED TASK     E0046500
SFC2.TM  EQU   X'4000'             THAW  (ENABLE INTERRUPTS)            E0046600
SFC2.IM  EQU   X'2000'             SINT  (SIMULATE INTERRUPT)           E0046700
SFC2.FM  EQU   X'1000'             FREEZE(DISABLE INTERRUPTS)           E0046800
SFC2.UM  EQU   X'0800'             UNCONNECT DEVICE                     E0046900
SFC2.UFM EQU   X'0020'             UNFIX (MAKE NON-RESIDENT)            E0047000
SFC2.SDM EQU   X'0004'             DELAY START                          E0047100
SFC2.SIM EQU   X'0002'             START IMMEDIATELY                    E0047200
         ENDS                                                           E0047300
         TITLE SVC7 PARAMETER BLOCK                                     E0047400
*                                                                       E0047500
*        SVC7. - SVC7 PARAMETER BLOCK                                   E0047600
*                                                                       E0047700
SVC7.    STRUC                                                          E0047800
SVC7.OPT DS    0                   OPTION/MODIFIER             -2 BYTES E0047900
SVC7.CMD DS    1                   COMMAND                              E0048000
SVC7.MOD DS    1                   MODIFIER                             E0048100
SVC7.STA DS    1                   STATUS                               E0048200
SVC7.LU  DS    1                   LOGICAL UNIT                         E0048300
SVC7.KYS DS    0                   KEYS                        -2 BYTES E0048400
SVC7.WKY DS    1                   WRITE KEY                            E0048500
SVC7.RKY DS    1                   READ KEY                             E0048600
SVC7.LRC DS    2                   LOGICAL RECORD LENGTH                E0048700
SVC7.VOL DS    4                   VOLUME NAME                          E0048800
SVC7.FNM DS    8                   FILE NAME                            E0048900
SVC7.EXT DS    3                   EXTENSION                            E0049000
SVC7.VER DS    1                   VERSION (NOT USED)                   E0049100
SVC7.SIZ DS    0                   FILE SIZE                   -4 BYTES E0049200
SVC7.ISZ DS    2                  INDEX BLOCK SIZE                      E0049300
SVC7.DSZ DS    2                   DATA BLOCK SIZE                      E0049400
*        COMMAND                                                        E0049500
S7CM.ALM EQU   X'8000'             ALLOCATE                             E0049600
S7CM.ASM EQU   X'4000'             ASSIGN                               E0049700
S7CM.CAM EQU   X'2000'             CHANGE ACCESS PRIVELEGES             E0049800
S7CM.RNM EQU   X'1000'             RENAME                               E0049900
S7CM.RPM EQU   X'0800'             REPROTECT                            E0050000
S7CM.CLM EQU   X'0400'             CLOSE                                E0050100
S7CM.DEM EQU   X'0200'             DELETE                               E0050200
S7CM.CPM EQU   X'0100'             CHECKPOINT                           E0050300
S7CM.FEM EQU   X'0000'             FETCH ATTRIBUTES                     E0050400
*        MODIFIER BYTE                                                  E0050500
S7M.SRO  EQU   X'00'               P                                    E0050600
S7M.ERO  EQU   X'20'               R                                    E0050700
S7M.SWO  EQU   X'40'               I                                    E0050800
S7M.EWO  EQU   X'60'               V                                    E0050900
S7M.SRW  EQU   X'80'               I                                    E0051000
S7M.SREW EQU   X'A0'               L                                    E0051100
S7M.ERSW EQU   X'C0'               E                                    E0051200
S7M.ERW  EQU   X'E0'               G                                    E0051300
*        BUFFER MANAGEMENT                                              E0051400
S7M.DFT  EQU   X'00'               DEFAULT BUFFER MANAGEMENT            E0051500
S7M.UBUF EQU   X'08'               UNBUFFERED PHYSICAL                  E0051600
S7M.BUF  EQU   X'10'               BUFFERED LOGICAL                     E0051700
S7M.SVCF EQU   X'0018'            SVC 15 ACCESS FLAG                    E0051800
*        FILE TYPES                                                     E0051900
S7M.CO   EQU   X'00'               CONTIGUOUS FILE                      E0052000
S7M.IN   EQU   X'02'               INDEXED FILE                         E0052100
         ENDS                                                           E0052200
         TITLE LOADER INFORMATION BLOCK                                 E0052300
*                                                                       E0052400
*        LIB - LOADER INFORMATION BLOCK                                 E0052500
*                                                                       E0052600
LIB      STRUC                                                          E0052700
LIB.OPT  DS    1                   TASK OPTIONS                         E0052800
LIB.FLGS DS    1                   TASK FLAGS                           E0052900
LIB.MPRI DS    1                  MAXIMUM PRIORITY                      E0053000
LIB.IPRI DS    1                  INITIAL PRIORITY                      E0053100
LIB.APR  DS    0                                                        E0053200
LIB.UBOT DS    2                  UBOT                                  E0053300
LIB.UTOP DS    2                   UTOP                                 E0053400
LIB.CKSM DS    2                  CHECKSUM                              E0053500
LIB.CTOP DS    2                  CTOP                                  E0053600
LIB.ID   DS    0                  OVERLAY NAME                          E0053700
LIB.SRL  DS    2                   A(RTL)                               E0053800
LIB.SCM  DS    2                  START ADDR TASK COMMON                E0053900
LIB.EXAD DS    1                  EX-ADDR BITS OF PARTION ADDR          E0054000
LIB.MAP  DS    1                  PSW MAP SETTING FOR USER              E0054100
LIB.OBOT DS    2                   OVERLAY BOTTOM                       E0054200
*        TASK OPTIONS                                                   E0054300
LOPT.ETM EQU   X'8000'             ET STATE                             E0054400
LOPT.ACM EQU   X'4000'             ARITHMETIC FAULT CONTINUE            E0054500
LOPT.FPM EQU   X'2000'             FLOATING POINT                       E0054600
LOPT.MRM EQU   X'1000'             MEMORY RESIDENT                      E0054700
LOPT.COM EQU   X'0800'             COMPATIBILITY                        E0054800
LOPT.S6M EQU   X'0200'             SVC 6 CONTINUE                       E0054900
LOPT.ROM EQU   X'0100'             ROLLABLE                             E0055000
LOPT.DFM EQU   X'0040'             DOUBLE FLOATING POINT          EN001 E0055100
LOPT.CSM EQU   X'0020'            TASK COMMON IN 2ND 32KB               E0055200
*        TASK FLAGS                                                     E0055300
LFLG.OVM EQU   X'80'               MODULE IS AN OVERLAY                 E0055400
         ENDS                                                           E0055500
         TITLE PRE-SYSGEN EQUATES                                       E0055600
         IFU   SVCFIVE                                                  E0055700
SVCFIVE  EQU   0                                                        E0055800
         ENDC                                                           E0055900
         IFU   SVCSIX                                                   E0056000
SVCSIX   EQU   0                                                        E0056100
         ENDC                                                           E0056200
         IFU   SVCTWO              *                              EN003 E0056300
SVCTWO   EQU   0                   *                              EN003 E0056400
         ENDC                      *                              EN003 E0056500
         IFU   SVCSEVEN            *                              EN003 E0056600
SVCSEVEN EQU   0                   *                              EN003 E0056700
         ENDC                      *                              EN003 E0056800
         IFU   CLOCK               *                              EN003 E0056900
CLOCK    EQU   0                   *                              EN003 E0057000
         ENDC                      *                              EN003 E0057100
         IFU   PROCL               *                                 EX E0057200
PROCL    EQU   0                   *                                 EX E0057300
         ENDC                      *                                 EX E0057400
         IFU   SVCF                *                                EX  E0057500
SVCF     EQU   0                   *                                EX  E0057600
         ENDC                      *                                EX  E0057700
.01      EQU   0                                                        E0057800
.02      EQU   0                                                        E0057900
.03      EQU   0                                                        E0058000
.04      EQU   0                                                        E0058100
.05      EQU   0                                                        E0058200
.06      EQU   0                                                        E0058300
.07      EQU   0                                                        E0058400
.08      EQU   0                                                        E0058500
.09      EQU   0                                                        E0058600
.0A      EQU   0                                                        E0058700
.0B      EQU   0                                                        E0058800
.0C      EQU   0                                                        E0058900
.0D      EQU   0                                                        E0059000
.0E      EQU   0                                                        E0059100
.0F      EQU   0                                                        E0059200
.10      EQU   0                                                        E0059300
.11      EQU   0                                                        E0059400
.12      EQU   0                                                        E0059500
.13      EQU   0                                                        E0059600
.14      EQU   0                                                        E0059700
.15      EQU   0                                                        E0059800
.16      EQU   0                                                        E0059900
.17      EQU   0                                                        E0060000
.18      EQU   0                                                        E0060100
.19      EQU   0                                                        E0060200
.1A      EQU   0                                                        E0060300
.1B      EQU   0                                                        E0060400
.1C      EQU   0                                                        E0060500
.1D      EQU   0                                                        E0060600
.1E      EQU   0                                                        E0060700
.1F      EQU   0                                                        E0060800
.20      EQU   0                                                        E0060900
.21      EQU   0                                                        E0061000
.22      EQU   0                                                        E0061100
.23      EQU   0                                                        E0061200
.24      EQU   0                                                        E0061300
.25      EQU   0                                                        E0061400
.26      EQU   0                                                        E0061500
.27      EQU   0                                                        E0061600
.28      EQU   0                                                        E0061700
.29      EQU   0                                                        E0061800
.2A      EQU   0                                                        E0061900
.2B      EQU   0                                                        E0062000
.2C      EQU   0                                                        E0062100
.2D      EQU   0                                                        E0062200
.2E      EQU   0                                                        E0062300
.2F      EQU   0                                                        E0062400
.30      EQU   0                                                        E0062500
.31      EQU   0                                                        E0062600
.32      EQU   0                                                        E0062700
.33      EQU   0                                                        E0062800
.34      EQU   0                                                        E0062900
.35      EQU   0                                                        E0063000
.36      EQU   0                                                        E0063100
.37      EQU   0                                                        E0063200
.38      EQU   0                                                        E0063300
.39      EQU   0                                                        E0063400
.3A      EQU   0                                                        E0063500
.3B      EQU   0                                                        E0063600
.3C      EQU   0                                                        E0063700
.3D      EQU   0                                                        E0063800
.3E      EQU   0                                                        E0063900
.3F      EQU   0                                                        E0064000
.40      EQU   0                                                        E0064100
.41      EQU   0                                                        E0064200
.42      EQU   0                                                        E0064300
.43      EQU   0                                                        E0064400
.44      EQU   0                                                        E0064500
.45      EQU   0                                                        E0064600
.46      EQU   0                                                        E0064700
.47      EQU   0                                                        E0064800
.48      EQU   0                                                        E0064900
.49      EQU   0                                                        E0065000
.4A      EQU   0                                                        E0065100
.4B      EQU   0                                                        E0065200
.4C      EQU   0                                                        E0065300
.4D      EQU   0                                                        E0065400
.4E      EQU   0                                                        E0065500
.4F      EQU   0                                                        E0065600
.50      EQU   0                                                        E0065700
.51      EQU   0                                                        E0065800
.52      EQU   0                                                        E0065900
.53      EQU   0                                                        E0066000
.54      EQU   0                                                        E0066100
.55      EQU   0                                                        E0066200
.56      EQU   0                                                        E0066300
.57      EQU   0                                                        E0066400
.58      EQU   0                                                        E0066500
.59      EQU   0                                                        E0066600
.5A      EQU   0                                                        E0066700
.5B      EQU   0                                                        E0066800
.5C      EQU   0                                                        E0066900
.5D      EQU   0                                                        E0067000
.5E      EQU   0                                                        E0067100
.5F      EQU   0                                                        E0067200
.60      EQU   0                                                        E0067300
.61      EQU   0                                                        E0067400
.62      EQU   0                                                        E0067500
.63      EQU   0                                                        E0067600
.64      EQU   0                                                        E0067700
.65      EQU   0                                                        E0067800
.66      EQU   0                                                        E0067900
.67      EQU   0                                                        E0068000
.68      EQU   0                                                        E0068100
.69      EQU   0                                                        E0068200
.6A      EQU   0                                                        E0068300
.6B      EQU   0                                                        E0068400
.6C      EQU   0                                                        E0068500
.6D      EQU   0                                                        E0068600
.6E      EQU   0                                                        E0068700
.6F      EQU   0                                                        E0068800
.70      EQU   0                                                        E0068900
.71      EQU   0                                                        E0069000
.72      EQU   0                                                        E0069100
.73      EQU   0                                                        E0069200
.74      EQU   0                                                        E0069300
.75      EQU   0                                                        E0069400
.76      EQU   0                                                        E0069500
.77      EQU   0                                                        E0069600
.78      EQU   0                                                        E0069700
.79      EQU   0                                                        E0069800
.7A      EQU   0                                                        E0069900
.7B      EQU   0                                                        E0070000
.7C      EQU   0                                                        E0070100
.7D      EQU   0                                                        E0070200
.7E      EQU   0                                                        E0070300
.7F      EQU   0                                                        E0070400
.80      EQU   0                                                        E0070500
.81      EQU   0                                                        E0070600
.82      EQU   0                                                        E0070700
.83      EQU   0                                                        E0070800
.84      EQU   0                                                        E0070900
.85      EQU   0                                                        E0071000
.86      EQU   0                                                        E0071100
.87      EQU   0                                                        E0071200
.88      EQU   0                                                        E0071300
.89      EQU   0                                                        E0071400
.8A      EQU   0                                                        E0071500
.8B      EQU   0                                                        E0071600
.8C      EQU   0                                                        E0071700
.8D      EQU   0                                                        E0071800
.8E      EQU   0                                                        E0071900
.8F      EQU   0                                                        E0072000
.90      EQU   0                                                        E0072100
.91      EQU   0                                                        E0072200
.92      EQU   0                                                        E0072300
.93      EQU   0                                                        E0072400
.94      EQU   0                                                        E0072500
.95      EQU   0                                                        E0072600
.96      EQU   0                                                        E0072700
.97      EQU   0                                                        E0072800
.98      EQU   0                                                        E0072900
.99      EQU   0                                                        E0073000
.9A      EQU   0                                                        E0073100
.9B      EQU   0                                                        E0073200
.9C      EQU   0                                                        E0073300
.9D      EQU   0                                                        E0073400
.9E      EQU   0                                                        E0073500
.9F      EQU   0                                                        E0073600
.A0      EQU   0                                                        E0073700
.A1      EQU   0                                                        E0073800
.A2      EQU   0                                                        E0073900
.A3      EQU   0                                                        E0074000
.A4      EQU   0                                                        E0074100
.A5      EQU   0                                                        E0074200
.A6      EQU   0                                                        E0074300
.A7      EQU   0                                                        E0074400
.A8      EQU   0                                                        E0074500
.A9      EQU   0                                                        E0074600
.AA      EQU   0                                                        E0074700
.AB      EQU   0                                                        E0074800
.AC      EQU   0                                                        E0074900
.AD      EQU   0                                                        E0075000
.AE      EQU   0                                                        E0075100
.AF      EQU   0                                                        E0075200
.B0      EQU   0                                                        E0075300
.B1      EQU   0                                                        E0075400
.B2      EQU   0                                                        E0075500
.B3      EQU   0                                                        E0075600
.B4      EQU   0                                                        E0075700
.B5      EQU   0                                                        E0075800
.B6      EQU   0                                                        E0075900
.B7      EQU   0                                                        E0076000
.B8      EQU   0                                                        E0076100
.B9      EQU   0                                                        E0076200
.BA      EQU   0                                                        E0076300
.BB      EQU   0                                                        E0076400
.BC      EQU   0                                                        E0076500
.BD      EQU   0                                                        E0076600
.BE      EQU   0                                                        E0076700
.BF      EQU   0                                                        E0076800
.C0      EQU   0                                                        E0076900
.C1      EQU   0                                                        E0077000
.C2      EQU   0                                                        E0077100
.C3      EQU   0                                                        E0077200
.C4      EQU   0                                                        E0077300
.C5      EQU   0                                                        E0077400
.C6      EQU   0                                                        E0077500
.C7      EQU   0                                                        E0077600
.C8      EQU   0                                                        E0077700
.C9      EQU   0                                                        E0077800
.CA      EQU   0                                                        E0077900
.CB      EQU   0                                                        E0078000
.CC      EQU   0                                                        E0078100
.CD      EQU   0                                                        E0078200
.CE      EQU   0                                                        E0078300
.CF      EQU   0                                                        E0078400
.D0      EQU   0                                                        E0078500
.D1      EQU   0                                                        E0078600
.D2      EQU   0                                                        E0078700
.D3      EQU   0                                                        E0078800
.D4      EQU   0                                                        E0078900
.D5      EQU   0                                                        E0079000
.D6      EQU   0                                                        E0079100
.D7      EQU   0                                                        E0079200
.D8      EQU   0                                                        E0079300
.D9      EQU   0                                                        E0079400
.DA      EQU   0                                                        E0079500
.DB      EQU   0                                                        E0079600
.DC      EQU   0                                                        E0079700
.DD      EQU   0                                                        E0079800
.DE      EQU   0                                                        E0079900
.DF      EQU   0                                                        E0080000
.E0      EQU   0                                                        E0080100
.E1      EQU   0                                                        E0080200
.E2      EQU   0                                                        E0080300
.E3      EQU   0                                                        E0080400
.E4      EQU   0                                                        E0080500
.E5      EQU   0                                                        E0080600
.E6      EQU   0                                                        E0080700
.E7      EQU   0                                                        E0080800
.E8      EQU   0                                                        E0080900
.E9      EQU   0                                                        E0081000
.EA      EQU   0                                                        E0081100
.EB      EQU   0                                                        E0081200
.EC      EQU   0                                                        E0081300
.ED      EQU   0                                                        E0081400
.EE      EQU   0                                                        E0081500
.EF      EQU   0                                                        E0081600
.F0      EQU   0                                                        E0081700
.F1      EQU   0                                                        E0081800
.F2      EQU   0                                                        E0081900
.F3      EQU   0                                                        E0082000
.F4      EQU   0                                                        E0082100
.F5      EQU   0                                                        E0082200
.F6      EQU   0                                                        E0082300
.F7      EQU   0                                                        E0082400
.F8      EQU   0                                                        E0082500
.F9      EQU   0                                                        E0082600
.FA      EQU   0                                                        E0082700
.FB      EQU   0                                                        E0082800
.FC      EQU   0                                                        E0082900
.FD      EQU   0                                                        E0083000
.FE      EQU   0                                                        E0083100
.FF      EQU   0                                                        E0083200
         TITLE RESERVED LOWER MEMORY DEFINITIONS                        E0083300
*                                                                       E0083400
* START OF CODE                                                         E0083500
*                                                                       E0083600
SETM     EQU   X'5302'                                                  E0083700
SETMR    EQU   X'1308'                                                  E0083800
LPS      EQU   X'7303'                                                  E0083900
LPSR     EQU   X'330C'                                                  E0084000
FLTREG   DS    32                 FLOATING POINT REGISTERS              E0084100
DSPSTA   DC    H'0'                DISPLAY PANEL STATUS           EN012 E0084200
         DC    PWRREG              POWER FAIL REG SAVE PNTR       EN003 E0084300
CURPSW   DC    0,0                                                      E0084400
FLTPSW   DC    0,0                FLOATING POINT FAULT                  E0084500
         DC    SUSTAT+PSWCCG,EXEC  FLOATING POINT FAULT                 E0084600
IPSW     DC    0,0                 ILLEGAL INSTRUCTION TRAP             E0084700
         IFNZ  PROCL                                                    E0084800
         DC    SUSTAT             GO DIRECTLY TO SU STATE IF LIST HW    E0084900
         ELSE                     OTHERWISE IS STATE                    E0085000
         DC    ISSTAT                                                   E0085100
         ENDC                                                           E0085200
         DC    0                                                        E0085300
MMPSW    DC    0,0                MACHINE MALFUNCTION                   E0085400
         DC    0,MMH                                                    E0085500
IOPSW    DC    0,0                I/O IS AUTOMATIC                      E0085600
         DC    ISSTAT,ILIO                                              E0085700
DVPSW    DC    0,0                DIVIDE FAULT                          E0085800
         DC    SUSTAT+PSWCCC,EXEC                                       E0085900
         AL    X'CF'              50 SEQUENCE                           E0086000
         B     X'80'                                                    E0086100
MMPF.PSW DS    4                   POWER FAIL PSW SAVE AREA             E0086200
MMPF.R1  DS    2                   POWER FAIL R1 SAVE AREA              E0086300
PFFLAG   DC    0                   POWER RESTORE IN PROGRESS FLAG       E0086400
         B     SYSINIT             SYSTEM STARTUP ADDRESS               E0086500
LOC64 DS 4 SYSVOL SLOT                                                  E0086600
DCBSAV   DC    0                   DCB ADRS SAVE AREA          02*10/73 E0086700
INCRCN   DB    X'40'               DISPLAY PANEL INCREMENTAL MODE       E0086800
NORMCN   DB    X'80'               DISPLAY PANEL NORMAL MODE            E0086900
SCHDP    DC    SUSTAT,SCHED        STARTUP PSW                          E0087000
MMPF.WS  DC    CRSTAT,MMPR    POWER RESTORE WAIT                        E0087100
MFREC    DC    SUSTAT,IOTERM       MEMORY FAIL RESTORE                  E0087200
         DS    8                   RESERVED                             E0087300
         DC    LIOTRM             QUE TERM SERVICE LIST                 E0087400
QTPSW    DC    0,0                QUEUE TERM SERVICE PSW                E0087500
         DC    SUSTAT+PSWCCG+PSWCCV,EXEC                                E0087600
         DC    0                  SYS QUEUE OVERFLOW PTR                E0087700
QOVOSW   DC    0,0                                                      E0087800
         DC    ISSTAT,QUEFUL       NEW PSW FOR SYS QUEUE OVERFLOW INT   E0087900
SVCARG   DC    0                  A(PBLK) SVC INTERRUPT                 E0088000
SVCPSW   DC    0,0                OLD PSW FOR SVC                       E0088100
         DC    SUSTAT+PSWCCV                                            E0088200
         DC    EXEC                L.C. SVC 0                           E0088300
         DC    SVC1                L.C. SVC 1                           E0088400
         IFNZ  SVCTWO+CLOCK        *                              EN003 E0088500
         DC    SVCEXEC             L.C. SVC 2                           E0088600
         ELSE                      *                              EN003 E0088700
         DC    EXEC                *                              EN003 E0088800
         ENDC                      *                              EN003 E0088900
         DC    SVCEXEC            L.C. SVC3                             E0089000
         DC    EXEC                L.C. SVC 4                           E0089100
         IFNZ  SVCFIVE                                                  E0089200
         DC    SVCEXEC             L.C. SVC 5                           E0089300
         ELSE                                                           E0089400
         DC    EXEC                                                     E0089500
         ENDC                                                           E0089600
         IFNZ  SVCSIX                                                   E0089700
         DC    SVCEXEC             L.C. SVC 6                           E0089800
         ELSE                                                           E0089900
         DC    EXEC                                                     E0090000
         ENDC                                                           E0090100
         IFNZ  SVCSEVEN            *                              EN003 E0090200
         DC    SVCEXEC             L.C. SVC 7                           E0090300
         ELSE                      *                              EN003 E0090400
         DC    EXEC                *                              EN003 E0090500
         ENDC                      *                              EN003 E0090600
         DC    EXEC                L.C. SVC 8                           E0090700
         DC    SVCEXEC            L.C. SVC9                             E0090800
         DO    4                   L.C. SVC 10-13                       E0090900
         DC    EXEC                                                     E0091000
         DC    EXEC                                                     E0091100
         IFNZ  SVCF                                                     E0091200
         EXTRN SVC15                                                    E0091300
         DC    SVC15              L.C. SVC1K                            E0091400
         ELSE                                                           E0091500
         DC    EXEC                L.C. SVC 15                          E0091600
         ENDC                                                           E0091700
         DC    0                                                        E0091800
ZERO     DC    0                                                        E0091900
PR.WPSW  DC    CRSTAT,RESTRT2      PWR RESTORE IDLE PSW            203D E0092000
INTPSW   EQU   *                                            *06/74      E0092100
         DC    ISSTAT,INIT                                              E0092200
ILIO     LPSW  IOPSW              IGNORE UNEXPECTED I/O                 E0092300
QUEFUL   LPSW QOVOSW              IGNORE SYS QUEUE OVERFLOW INT         E0092400
         EJECT                                                          E0092500
*                                                                       E0092600
* INTERRUPT SERVICE TABLE                                               E0092700
*                                                                       E0092800
ISPTAB   EQU   *                                                        E0092900
         DO    256                                                      E0093000
         DC    IDH                                                      E0093100
         TITLE DEFAULT SYSGEN PARAMETERS                                E0093200
*                                                                       E0093300
*        SGN - DEFAULT SYSGEN PARAMETERS                                E0093400
*                                                                       E0093500
BISYNC   EQU   0                   NO BISYNC SUPPORT                    E0093600
BULKSTOR EQU   1                   BULK DEVICE COMMANDS INCLUDED        E0093700
CLOCK    EQU   0                   NO LINE FREQUENCY CLOCK SUPPORT      E0093800
CMDLEN   EQU   64                  INPUT BUFFER LENGTH                  E0093900
CMPROC   EQU   1                   INCLUDE COMMAND PROCESSOR      EN003 E0094000
CONS     EQU   16                  DEVICE CODE FOR CONSOLE              E0094100
CONSOLE  EQU   2                   DEVICE # FOR CONSOLE                 E0094200
CONSPT   EQU   0                   NO CONSOLE PAPER TAPE SUPPORT        E0094300
CONTIG   EQU   1                   CONTIGUOUS FILE SUPPORT              E0094400
CSS      EQU   0                   NO CSS SUPPORT                       E0094500
DATE     EQU   0                   MM/DD/YY                             E0094600
DEBUG    EQU   1                   INCLUDE EXAMINE/MODIFY/BIAS          E0094700
DFLOAT   EQU   0                   NO DPFP SUPPORT                EN001 E0094800
DISCMGT  EQU   1                   DIRECT ACCESS SUPPORT                E0094900
DISP     EQU   1                   INCLUDE DISPLAY COMMAND              E0095000
ST EQU         0                  ST OPTION (0 MEANS DON'T DELETE)      E0095100
TGD      EQU   0                  NO 8-LINES                            E0095200
EXTMEM   EQU   0                   NO EXTENDED MEMORY                EX E0095300
FLOAT    EQU   0                   NO FLOATING POINT TRAPS              E0095400
         IFU   FOREGRND            ONLY SET TO ZERO ON FIRST PASS EN003 E0095500
FOREGRND EQU   0                   NO FOREGROUND PARTITIONS             E0095600
         ENDC                      *                              EN003 E0095700
FREQ     EQU   60                  60 CPS LINE FREQUENCY CLOCK          E0095800
HALTIO   EQU   0                   NO HALT I/O SUPPORT            EN009 E0095900
INDEX    EQU   1                   NO INDEXED FILE SUPPORT              E0096000
INITIAL  EQU   1                   KEEP SYSINIT                         E0096100
INTERVAL EQU   0                   NO PIC INTERVAL                      E0096200
JOURNAL0 EQU   0                   NO SYSTEM JOURNAL                    E0096300
LDBG     EQU   1                   INCLUDE BACKGROUND LOADER            E0096400
LOAD     EQU   1                   INCLUDE LOAD COMMAND                 E0096500
LOGLEN   EQU   48                  OUTPUT BUFFER LENGTH                 E0096600
LOGQUE   EQU   3                   LOG MESSAGE QUEUE SIZE               E0096700
MEMPROT  EQU   0                   NO MEMORY PROTECT                    E0096800
MULDV    EQU   1                   INCLUDE MULITPLY/DIVIDE TRAPS  EN003 E0096900
OPTIONS  EQU   1                   INCLUDE OPTION COMMAND               E0097000
OVCMD    EQU   0                   DO NOT OVERLAY COMMAND PROCESSOR     E0097100
OVSEVEN  EQU   0                   DO NOT OVERLAY SVC 7                 E0097200
OVSIX    EQU   0                   DO NOT OVERLAY SVC 6                 E0097300
OVTWO    EQU   0                   DO NOT OVERLAY SVC 2                 E0097400
PCLOCK   EQU   0                   NO PIC SUPPORT                       E0097500
PFREC    EQU   1                   INCLUDE POWER FAILURE RECOVERY EN003 E0097600
PROC     EQU   0                   NO LIST INSTRUCTION OR MUL/DIV TRAPS E0097700
ROLL     EQU   0                   NO ROLL IN/ROLL OUT                  E0097800
ROUND    EQU   0                   NO ROUND ROBIN SCHEDULING            E0097900
SAFE     EQU   0                   NO SAFETY CHECKS                     E0098000
SETLOG   EQU   1                   INCLUDE SET LOG COMMAND              E0098100
SETPAR   EQU   1                   INCLUDE SET PARTITION COMMAND        E0098200
SVCF     EQU   0                  NO SVC 15                             E0098300
SVCFIVE  EQU   1                   INCLUDE SVC 5                        E0098400
SVCSEVEN EQU   1                   INCLUDE FILE MANAGER           EN003 E0098500
SVCSIX   EQU   1                   INCLUDE SVC 6                        E0098600
SVCTWO   EQU   1                   INCLUDE SVC 2                  EN003 E0098700
UNITS    EQU   10                  # OF LOGICAL UNITS PER TASK          E0098800
         TITLE CLEAR TCB'S                                        EN003 E0098900
         ORG   CMTCB               START AT CMDP TCB              EN003 E0099000
         DO    FOREGRND+1*TCBL+BGTCB-CMTCB+3/4    DO ALL TCB'S    EN003 E0099100
         DC    Y'0'                *                              EN003 E0099200
         ORG   ISPTAB+512          BACK WHERE WE STARTED          EN003 E0099300
         TITLE CONFIGURATION SYSGEN PARAMETERS                          E0099400
EXECF    EQU   1                   EXEC16                               E0099500
         COPY  SYSPAR                                                   E0099600
         COPY  SYSTAB                                                   E0099700
         TITLE EQUATES                                                  E0099800
SVCTWO EQU 1                                                            E0099900
SINT.OP  EQU   X'E2'               SINT INSTRUCTION OP CODE             E0100000
INTRVL   EQU   X'8000'+INTERVAL                                         E0100100
*                                                                  369D E0100200
TCBL     EQU   UNITS*3+2+TCB/2*2   LENGTH OF TCB WITH LU TABLE          E0100300
TTAB.END EQU   FOREGRND+3*2        LAST TCBTAB INDEX + 2                E0100400
         IFZ   CMPROC+FOREGRND     *                              EN003 E0100500
LOAD     EQU   0                   *                              EN003 E0100600
         ENDC                      *                              EN003 E0100700
ST EQU ST-1   REVERSE ST PARAM(0=ST SYSTEM)                             E0100800
SVCFIVE  EQU   SVCFIVE&SVCSIX&LOAD IF NO IMAGE LOAD,NO SVC 5      EN003 E0100900
SVCSEVEN EQU   SVCSEVEN!CMPROC     *                              EN003 E0101000
SVCTWO   EQU   SVCTWO!CMPROC       IF CMDP, SVC 2 STAYS           EN003 E0101100
OVCMD    EQU   OVCMD&CMPROC        IF NO CMDP, NO OV CMDP         EN003 E0101200
OVTWO    EQU   OVTWO&SVCTWO        IF NO SVC 2, NO OV SVC 2       EN003 E0101300
OVSIX    EQU   OVSIX&SVCSIX        IF NO SVC 6, NO OV SVC 6       EN003 E0101400
OVSEVEN  EQU   OVSEVEN&SVCSEVEN    IF NO SVC 7, NO OV SVC 7       EN003 E0101500
OVERLAY  EQU   OVCMD!OVSEVEN!OVSIX!OVTWO                                E0101600
ROLL     EQU   ROLL*CMPROC         *                              EN003 E0101700
CSS      EQU   CSS*CMPROC          *                              EN003 E0101800
MEMPROT  EQU   MEMPROT*CMPROC      *                              EN003 E0101900
FLOATF   EQU   FLOAT-2             ZERO IF SPFP REGS ARE AT ZERO  EN001 E0102000
         IFZ   INTERVAL            IF NO INTERVAL;                      E0102100
PCLOCK   EQU   0                   NO PIC SUPPORT                       E0102200
         ENDC                                                           E0102300
SETPAR   EQU   DISCMGT!FOREGRND    IF .BG ONLY W/O DISC,NO SETPAR EN003 E0102400
FP       EQU   0                   RESET FLOATING POINT FLAG      EN001 E0102500
         IFZ   FLOAT-1             IF SPFP TRAPS                  EN001 E0102600
FP       EQU   1                   SET FP FLAG                    EN001 E0102700
         ENDC                      *                              EN001 E0102800
         IFZ   FLOAT-2             MOD 70                               E0102810
FP       EQU   1                   *                                    E0102820
         ENDC                                                           E0102830
         IFZ   DFLOAT-1            IF DPFP TRAPS                  EN001 E0102900
FP       EQU   1                   SET FP FLAG                    EN001 E0103000
         ENDC                      *                              EN001 E0103100
CLK      EQU   CLOCK               CLK=0/1 IF CLOCK=0/NON 0       EN003 E0103200
         IFP   CLK-1               *                              EN003 E0103300
CLK      EQU   1                   *                              EN003 E0103400
         ENDC                      *                              EN003 E0103500
         IFNZ  OVERLAY                                                  E0103600
 ENTRY OVLU                                                             E0103700
         ENTRY OSOVFD,OSOVST,OSOVDB,OSOV17                              E0103800
         ENTRY OSDB06                                                   E0103900
         ENTRY OSST01,OSDB01                                      EN003 E0104000
*                                                                 EN003 E0104100
         IFNZ  OVSEVEN*CMPROC      *                              EN003 E0104200
         ENTRY LDS7.R                                                   E0104300
         ENDC                                                           E0104400
         ENDC                                                           E0104500
         IFNZ  OVSEVEN             IF FMGR IS OVERLAYED           EN008 E0104600
         ENTRY NAM000,NAM001,NAM004,NAM006                        EN008 E0104700
         ENTRY NAE000,NAE001,NAE004,NAE006                        EN008 E0104800
         ENTRY OSF001,OSF006       *                              EN008 E0104900
         ENDC                      *                              EN008 E0105000
         IFNZ  FOREGRND                                                 E0105100
         ENTRY LOCT,LOCT04,PLINK,PLIN12,LOCT11                          E0105200
         ENDC                                                           E0105300
         IFNZ  OVERLAY&CMPROC      IF OV'D SYS AND CMDP IN        EN003 E0105400
         ENTRY OSDB07,OSFD06,OSFD07,OSFD08                        EN003 E0105500
         IFNZ  OVSIX               IF OV'D SVC 6                  EN003 E0105600
         ENTRY CURR6               *                              EN003 E0105700
         ENDC                      *                              EN003 E0105800
         ENDC                      *                              EN003 E0105900
         IFNZ  DISCMGT&SVCSEVEN+CMPROC+SVCSEVEN                   EN003 E0106000
         ENTRY NAMCHK              *                              EN003 E0106100
         ENDC                      *                              EN003 E0106200
         IFNZ  DISCMGT*SVCSEVEN    *                              EN003 E0106300
         ENTRY NUMDIO,NUMD05,STPD05,VOLCHK                        EN003 E0106400
         EXTRN TCBSAV              *                              EN003 E0106500
         ENDC                                                           E0106600
         IFNZ  SVCSEVEN            *                              EN003 E0106700
         IFZ   OVSEVEN             *                              EN003 E0106800
         ENTRY NAECHK              *                              EN003 E0106900
         ENDC                      *                              EN003 E0107000
         ENDC                      *                              EN003 E0107100
         IFNZ  CMPROC              *                              EN003 E0107200
         ENTRY ADD.04,ADD.BC,BGTC04,BGTC11,BGTC14,BGTC17                E0107300
         ENTRY CMT001,CMT003,CMT006                        EN003 E007183E0107400
         ENTRY CMT013,CMTC04,CANC04                         EN003 E00718E0107500
 ENTRY CMTC05,CMTC12,CMTC14,CMTC17,DMTC04,CMT008                        E0107600
         ENTRY DMT002,DMT015,DMTC07,DMTS14,FBOT13,FBOT14,FBOT00   EN003 E0107700
         ENTRY LIOT00,MTOP00,MTOP06,MTOP14                        EN003 E0107800
         ENTRY NAMC06,NAMC07,NAMC10,NAMC08,NAEC08                 EN003 E0107900
         ENTRY PARTAB,PART06              *                             E0108000
         ENTRY PART00,PART11,PART13,PART14,PART15,RDBL12,RDBL14   EN003 E0108100
         ENTRY SVCP12,SVCP14,SYSV06,SYSV08,SYSV15                 EN003 E0108200
         ENTRY TCBT00,TCBT11,TCBT13,TCBT14                        EN003 E0108300
         ENTRY UBOT10,UBOT13,UBOT14,UBT004,UBT007                 EN003 E0108400
         ENTRY VMT015,VOLC07,VOLC08                               EN003 E0108500
         ENTRY LIOT06                                                   E0108600
*                                                                 EN003 E0108700
         EXTRN CNSDCB,CMDLMQ,CMDLQE,CMDBUF,CLRC10,CLR005,CROLL    EN003 E0108800
         EXTRN DMYDCB              CHANGED BECAUSE OF CAL 04-01 BUG     E0108900
         EXTRN TTYIO1,WRTCMD,CINITE,CFLG,DMYBF                          E0109000
         EXTRN DMYDCR,CONSBF       *                              EN003 E0109100
         ENDC                      *                              EN003 E0109200
         IFNZ  CLOCK                                                    E0109300
         ENTRY CBUF,CALDAT,SECPM,FREQMD                                 E0109400
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0109500
         ENTRY CBUF12,CALD12,SECP12                               EN003 E0109600
         IFNZ  PCLOCK              IF PIC SUPPORT                 EN003 E0109700
         ENTRY TIMT12,TCBT12       *                              EN003 E0109800
         ENDC                      *                              EN003 E0109900
         ENDC                      *                              EN003 E0110000
*                                                                 EN008 E0110100
         ENTRY CLOCKD,CLOCKE                                            E0110200
         ENDC                                                           E0110300
         IFNZ  SVCSEVEN            *                              EN003 E0110400
         ENTRY BITSUB              *                              EN003 E0110500
         ENTRY CMTC01,CMTC06,CMTC07,CMTC08                              E0110600
         ENTRY DBNU01,DBNU03,DBNU04,DBNU05,DMT005,DMTS04,DMTS07   EN003 E0110700
         ENTRY FBOT02,FBOT05,LIOT05,RESB08,SYSB02,SVC7RN,TCBT05   EN003 E0110800
         ENTRY UBOT03,UBOT04,UBOT05,UBOT07,SYSBOT                 EN003 E0110900
         ENTRY VOLC00,VOLC01,VOLC02,VOLC04,VOLC06                 EN003 E0111000
*                                                                 EN003 E0111100
         EXTRN SVC7                *                              EN003 E0111200
         ENDC                      *                              EN003 E0111300
         IFZ   CMPROC              *                              EN003 E0111400
         IFNZ  SVCSIX+SVCSEVEN     IF SYSTEM HAS SVC 6 OR 7       EN003 E0111500
         EXTRN .SYS                *                              EN003 E0111600
         ENDC                      *                              EN003 E0111700
         ENDC                      *                              EN003 E0111800
         IFNZ  DISCMGT                                                  E0111900
         ENTRY SEEKQ,BUSY7,STPDIO  *                              EN003 E0112000
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0112100
         ENTRY MOVE,MOVE07         *                              EN003 E0112200
         ENDC                      *                              EN003 E0112300
         ENDC                                                           E0112400
         IFNZ  SVCSEVEN&DISCMGT+CMPROC IF CMDP IN OR MARK ON      EN003 E0112500
         EXTRN INMARK,CUDL         XFER ADRS FOR CMDP             EN003 E0112600
         ENDC                      *                              EN003 E0112700
         IFNZ  MEMPROT                                                  E0112800
         ENTRY MEMPT,MEMP13                                             E0112900
         ENTRY MPCDEV,MPCOFC                                            E0113000
         ENDC                                                           E0113100
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0113200
         IFNZ  CMPROC              IF COMMAND PROCESSOR              EX E0113300
         ENTRY SYSBP2              *                                 EX E0113400
         IFNZ  DISP                                                EX   E0113500
         ENTRY FEPS14                                              EX   E0113600
         ENDC                                                      EX   E0113700
         IFNZ  ROLL                IF ROLL                           EX E0113800
         ENTRY FEPS00              *                                 EX E0113900
         ENDC                      *                                 EX E0114000
         IFNZ  SETPAR              IF SET PARTITION COMMAND          EX E0114100
         ENTRY MTOP13              *                                 EX E0114200
         ENDC                      *                                 EX E0114300
         ENDC                      *                                 EX E0114400
 ENTRY FEPS,FPSW                                                        E0114500
 ENTRY SVCPBW,FEP004                                                    E0114600
         IFNZ  SVCSEVEN            IF FILE MANAGEMENT                EX E0114700
         IFNZ  DISCMGT             IF DISC SUPPORT                   EX E0114800
         ENTRY FEPS02,FEPS03,FEPS04,FEPS05,FEPS07,FPSW05             EX E0114900
         ENDC                      *                                 EX E0115000
         ENDC                      *                                 EX E0115100
         ENDC                      *                                 EX E0115200
         IFNZ  ROLL                                                     E0115300
         ENTRY ROLV00,ROLV06,ROLV07,ROLV08,ROLVOL                  260D E0115400
         ENTRY ROLV13              *                              EN008 E0115500
         ENDC                                                           E0115600
         IFNZ  SAFE                                                     E0115700
         ENTRY CRSHSV              PUT IT ON THE MAP                    E0115800
         ENTRY CRASHX                                                   E0115900
         ENDC                                                           E0116000
         IFNZ  PCLOCK                                                   E0116100
         ENTRY TIMERD,TIMERI,TIMERE                                     E0116200
         ENTRY TIMTSV              *                              EN003 E0116300
         ENDC                                                           E0116400
         IFNZ  CLOCK+PCLOCK                                             E0116500
         ENTRY DISARM                                                   E0116600
         ENDC                                                           E0116700
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN                         EN003 E0116800
         ENTRY RDBLK               *                              EN003 E0116900
         ENDC                      *                              EN003 E0117000
         IFNZ  CSS                 IF CSS SUPPORT                 EN012 E0117100
         ENTRY BGTC01              *                              EN012 E0117200
         ENDC                      *                              EN012 E0117300
         IFNZ  JOURNAL0                                                 E0117400
         ENTRY JOURNL                                                   E0117500
         ENDC                                                           E0117600
PROCL    EQU   0                   PROCL=1 IF LIST HW ON SYSTEM         E0117700
         IFZ   PROC                                                     E0117800
PROCL    EQU   1                                                        E0117900
         ENDC                                                           E0118000
         IFZ   PROC-3                                                   E0118100
PROCL    EQU   1                                                        E0118200
         ENDC                                                           E0118300
         IFZ   PROCL                                                    E0118400
         EXTRN LISTIN                                                   E0118500
         EXTRN LIST2,LPT,LP3       (SEE SUBROUTINE LISTIN IN DVR LIB)   E0118600
         EXTRN BLOK                                                     E0118700
ORGPOS   ORG   FLTREG              *                               092E E0118800
         DC    LISTIN              FORCE TRAPS TO BE INCLUDED      092E E0118900
         ORG   ORGPOS              *                               092E E0119000
         ELSE                                                           E0119100
         IFNZ  DISCMGT                                                  E0119200
         ENTRY ATL,BLOK                                                 E0119300
         ENDC                                                           E0119400
         ENDC                                                           E0119500
         IFNZ  BISYNC                                                   E0119600
         ENTRY ADDTCS                                                   E0119700
         EXTRN BISHLT              *                              EN009 E0119800
         ENDC                                                           E0119900
EXTM     EQU   EXTMEM*2                                                 E0120000
         IFNZ  FP                  *                              EN001 E0120100
         ENTRY MDPSW,MDPSW2        *                              EN001 E0120200
         ENTRY FLPSW,FLPSW1,FLPSW2,.74TSV                         EN001 E0120300
         ENDC                      *                              EN001 E0120400
         IFNZ  SVCSEVEN            IF FMGR                        EN003 E0120500
DMT005   EQU   DMT                 *                              EN003 E0120600
         ENDC                      *                              EN003 E0120700
         IFNZ  CMPROC              IF CMDP                        EN003 E0120800
DMT002   EQU   DMT                 *                              EN003 E0120900
DMT015   EQU   DMT                 *                              EN003 E0121000
VMT015   EQU   VMT                 *                              EN003 E0121100
         ENDC                      *                              EN003 E0121200
         TITLE SYSTEM CONSTANTS AND VARIABLES  (SPT)                    E0121300
*                                                                       E0121400
*        SYSTEM CONSTANTS AND VARIABLES                                 E0121500
*                                                                       E0121600
SYSINIT  LHI   R1,SYSGO                                                 E0121700
         STH   R1,IPSW+6           SETUP ILLEGAL INSTRUCTION TRAP       E0121800
SYSGO    LPSW  INTPSW             NEW GO                    *06/74      E0121900
CRASHCOD DC    0                                                        E0122000
         IFNZ  CMPROC              *                              EN003 E0122100
         DC    CINITE                                                   E0122200
         ELSE                      *                              EN003 E0122300
         DC    0                   *                              EN003 E0122400
         ENDC                      *                              EN003 E0122500
UBOT     DC    SYSTOP                                                   E0122600
         IFNZ  SVCSEVEN            *                              EN003 E0122700
UBOT03   EQU   UBOT                                                     E0122800
UBOT04   EQU   UBOT                                                     E0122900
UBOT05   EQU   UBOT                                                     E0123000
UBOT07   EQU   UBOT                                                     E0123100
         ENDC                      *                              EN003 E0123200
         IFNZ  CMPROC              *                              EN003 E0123300
UBOT10   EQU  UBOT                                                      E0123400
UBOT13   EQU   UBOT                                                     E0123500
UBOT14   EQU   UBOT                                                     E0123600
UBT004   EQU   UBOT                                                     E0123700
UBT007   EQU   UBOT                                                     E0123800
         ENDC                      *                              EN003 E0123900
FBOT     DS    2                                                        E0124000
         IFNZ  SVCSEVEN            *                              EN003 E0124100
FBOT05   EQU   FBOT                *                              EN003 E0124200
FBOT02   EQU   FBOT                                                     E0124300
         ENDC                      *                              EN003 E0124400
         IFNZ  CMPROC              *                              EN003 E0124500
FBOT00   EQU   FBOT                *                              EN003 E0124600
FBOT13   EQU   FBOT                                                     E0124700
FBOT14   EQU   FBOT                                                     E0124800
         ENDC                      *                              EN003 E0124900
MTOP     DS    2                                                        E0125000
         IFNZ  CMPROC              *                              EN003 E0125100
MTOP00   EQU   MTOP                                                     E0125200
MTOP06   EQU   MTOP                                                     E0125300
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0125400
MTOP13   EQU   MTOP                *                                 EX E0125500
         ENDC                      *                                 EX E0125600
MTOP14   EQU   MTOP                                                     E0125700
         ENDC                      *                              EN003 E0125800
ET.3   SVC   3,255 FILLER IN SPT FOR SPT.OSID (8 BYTES)                 E0125900
DISARM  DC X'C100'                                                      E0126000
RBK DC 0                                                                E0126100
         DC    TCBTAB              TCB TABLE                            E0126200
         DB    FOREGRND+2          SPT.NTCB                             E0126300
ACTTCB   DB    0                   SPT.CTCB                             E0126400
         DC    A(DMT)              SPT.DMT                              E0126500
         DC    A(VMT)              SPT.VMT                              E0126600
         IFP   JOURNAL0                                                 E0126700
SPTJRNL  DC    A(JOURNL)           SPT.JRNL                             E0126800
         ELSE                                                           E0126900
         DC    H'0'                                                     E0127000
         ENDC                                                           E0127100
OSOVST   DC    Y'0'                FLBA OF OS OVERLAY FILE              E0127200
         IFNZ  OVERLAY             IF OS IS OVERLAYED             EN003 E0127300
OSST01   EQU   OSOVST                                                   E0127400
         ENDC                      *                              EN003 E0127500
OSOVFD   DB    C'OS16',C'OS16MT20',C'000',0  OS OVERLAY FD              E0127600
         IFNZ  OVERLAY             IF OS IS OVERLAYED             EN003 E0127700
OSFD06   EQU   OSOVFD                                                   E0127800
OSFD07   EQU   OSOVFD                                                   E0127900
OSFD08   EQU   OSOVFD                                                   E0128000
         IFNZ  OVSEVEN             IF FMGR IS OVERLAYED           EN008 E0128100
OSF001   EQU   OSOVFD              *                              EN008 E0128200
OSF006   EQU   OSOVFD              *                              EN008 E0128300
         ENDC                      *                              EN008 E0128400
         ENDC                      *                              EN003 E0128500
OSOVDB   DC    0              OS OVERLAY FILE  A(DCB)                   E0128600
         IFNZ  OVERLAY             IF OS IS OVERLAYED             EN003 E0128700
OSDB01   EQU   OSOVDB                                                   E0128800
OSDB06   EQU   OSOVDB                                                   E0128900
OSDB07   EQU   OSOVDB                                                   E0129000
OSOV17 EQU OSOVDB                                                       E0129100
         ENDC                      *                              EN003 E0129200
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0129300
FPSW     DC    0                   SU-STATE PSW FOR FCB ACCESS       EX E0129400
FEPS     DC    0                   ET-STATE PSW FOR FCB ACCESS       EX E0129500
FEP004   EQU   FEPS                *                                 EX E0129600
         IFNZ  CMPROC                                                EX E0129700
         IFNZ  ROLL                IF ROLL                           EX E0129800
FEPS00   EQU   FEPS                *                                 EX E0129900
         ENDC                      *                                 EX E0130000
FEPS14   EQU   FEPS                                                EX   E0130100
         ENDC                      *                                 EX E0130200
         IFNZ  SVCSEVEN            IF FILE MANAGEMENT                EX E0130300
         IFNZ  DISCMGT             IF DISC SUPPORT                   EX E0130400
FEPS02   EQU   FEPS                *                                 EX E0130500
FEPS03   EQU   FEPS                *                                 EX E0130600
FEPS04   EQU   FEPS                *                                 EX E0130700
FEPS05   EQU   FEPS                *                                 EX E0130800
FEPS07   EQU   FEPS                *                                 EX E0130900
FPSW05   EQU   FPSW                *                                 EX E0131000
         ENDC                      *                                 EX E0131100
         ENDC                      *                                 EX E0131200
         ENDC                      *                                 EX E0131300
         TITLE INTERNAL CONSTANTS AND VARIABLES                         E0131400
*                                                                       E0131500
*        SYSTEM ROLL VOLUME                                             E0131600
*                                                                       E0131700
         IFNZ  ROLL                                                     E0131800
ROLVOL   DC    C'    '                                                  E0131900
ROLV00   EQU   ROLVOL              *                               260D E0132000
ROLV06   EQU   ROLVOL                                                   E0132100
ROLV07   EQU   ROLVOL                                                   E0132200
ROLV08   EQU   ROLVOL                                                   E0132300
ROLV13   EQU   ROLVOL              *                              EN008 E0132400
         ENDC                                                           E0132500
*                                                                       E0132600
*        PARAMETERS FOR SYSTEM TIMER INTERRUPT HANDLER                  E0132700
*                                                                       E0132800
         IFNZ  PCLOCK                                                   E0132900
TIMERD   DB    PCLOCK,X'60'        TIMER # + ENABLE COMMAND             E0133000
TIMERE   EQU   *-1                                                      E0133100
TIMERI   DC    INTRVL             TIMER INTERVAL                        E0133200
TMRISP   ORG   ISPTAB+PCLOCK+PCLOCK                                     E0133300
         DC    TIMER                                                    E0133400
         ORG   TMRISP                                                   E0133500
         ENDC                                                           E0133600
*                                                                       E0133700
*        PARAMETERS FOR SYSTEM CLOCK INTERRUPT HANDLER                  E0133800
*                                                                       E0133900
         IFNZ  CLOCK                                                    E0134000
CCWCLK   DC    CLKTRM-DCB.TERM    A(CLOCK UPDATE ADRS.)                 E0134100
CLKTRM   DC    CLKUPD             CLOCK UPDATE ADRS                     E0134200
CLKCNT   DC    0                  CLOCK INTERRUPT COUNTER               E0134300
CLOCKD   DB    CLOCK,X'40'         CLOCK # + ENABLE CMND                E0134400
CLOCKE   EQU   *-1                                                      E0134500
CLKISP   ORG   ISPTAB+CLOCK+CLOCK                                       E0134600
         DC    CLOCKISR                                                 E0134700
         ORG   CLKISP                                                   E0134800
         ENDC                                                           E0134900
*                                                                       E0135000
*        PARAMETERS FOR MEMORY PROTECT CONTROLLER                       E0135100
*                                                                       E0135200
         IFNZ  MEMPROT                                                  E0135300
MPCDEV   DB    MEMPROT            MEM PROTECT CONTROLLER                E0135400
MPCONC   DB    X'60'              PROTECT ON COMMAND       *06/74       E0135500
MPCOFC   DB    X'90'              PROTECT OFF COMMAND      *06/74       E0135600
         DB    *                                           *06/74       E0135700
MPRISP   ORG   ISPTAB+MEMPROT+MEMPROT                                   E0135800
         DC    MPDVR                                                    E0135900
         ORG   MPRISP                                                   E0136000
         ENDC                                                           E0136100
         ALIGN 2                                                        E0136200
         EJECT                                                          E0136300
         IFNZ  SVCTWO+SVCSIX+SVCSEVEN+CLOCK                       EN003 E0136400
*                                                                       E0136500
*        PARAMETERS FOR SVCEXEC                                         E0136600
*                                                                       E0136700
ASVC     EQU   *                   *                              EN003 E0136800
         IFNZ  SVCTWO!CLOCK        *                              EN003 E0136900
         DC    SVC2                *                              EN003 E0137000
         ENDC                      *                              EN003 E0137100
         IFNZ  SVCSIX+SVCFIVE                                           E0137200
         DC    SVC6                                                     E0137300
         ENDC                                                           E0137400
         IFNZ  SVCSEVEN            *                              EN003 E0137500
         DC    SVC7                                                     E0137600
         ENDC                      *                              EN003 E0137700
         ENDC                      *                              EN003 E0137800
         ALIGN 2                                                        E0137900
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN012 E0138000
XSVC     EQU   *                   TABLE OF SVC RETURNS           EN012 E0138100
         IFNZ  SVCTWO!CLOCK        IF SVC 2 SUPPORT               EN012 E0138200
         DC    SVC2RTN             *                              EN012 E0138300
         ENDC                      *                              EN012 E0138400
         IFNZ  SVCSIX!SVCFIVE      IF SVC 5/6 SUPPORT             EN012 E0138500
         DC    SVC6RTN             *                              EN012 E0138600
         ENDC                      *                              EN012 E0138700
         IFNZ  SVCSEVEN            IF SVC 7 SUPPORT               EN012 E0138800
         DC    SVC7RN              *                              EN012 E0138900
         ENDC                      *                              EN012 E0139000
         ENDC                      *                              EN012 E0139100
*                                                                       E0139200
*        NULL DCB                                                       E0139300
*                                                                       E0139400
         IFNZ  EXTMEM                                             EX    E0139500
         DC    0                   PPSW                           EX    E0139600
         ENDC                                                     EX    E0139700
         DC    0,0                 RECL,CNTS                            E0139800
         DB    DCOD.NUL,0          DCOD,DN                              E0139900
         DC    X'7F7F',0           ATRB,KEYS                            E0140000
         DC    DBNULL+DCB.RECL     BUSY                                 E0140100
         DC    0,0,0               TERM,ALOC,TOUT                       E0140200
         DC    DFLG.LNM            FLGS                                 E0140300
         DC    NULDVR              INIT                            635D E0140400
DBNULL   EQU   *                                                        E0140500
         IFNZ  SVCSEVEN            IF FMGR                        EN003 E0140600
DBNU01   EQU   DBNULL                                                   E0140700
DBNU03   EQU   DBNULL                                                   E0140800
DBNU04   EQU   DBNULL                                                   E0140900
DBNU05   EQU   DBNULL                                                   E0141000
         ENDC                      *                              EN003 E0141100
*        DBNULL+DCB.ISR IS CLEARED BY SYSINIT                           E0141200
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN                         EN003 E0141300
*                                                                       E0141400
*        ROADBLOCK BUFFER AND ALTERNAME SAVE AREAS FOR SVCS             E0141500
*                                                                       E0141600
RDBLK EQU DISARM+1                                                      E0141700
         IFNZ  CMPROC              IF CMDP IN SYSTEM                    E0141800
RDBL12 EQU RDBLK                                                        E0141900
RDBL14 EQU  RDBLK                                                       E0142000
 ENDC                                                                   E0142100
*                                                                 EN003 E0142200
 IFZ .C6+.C7                                                            E0142300
SVCPRI EQU ISPTAB+X'C6'+X'C6'                                           E0142400
 ELSE                                                                   E0142500
SVCPRI   DS    SVCTWO!CLK+SVCSIX+SVCSEVEN                         EN003 E0142600
         ALIGN 2                                                        E0142700
 ENDC                                                                   E0142800
 IFNZ CMPROC                                                            E0142900
SVCP12 EQU SVCPRI                                                       E0143000
SVCP14 EQU SVCPRI                                                       E0143100
 ENDC                                                                   E0143200
 IFZ .94+.95                                                            E0143300
R0SAV    EQU   ISPTAB+X'94'+X'94'                                       E0143400
R1SAV    EQU   ISPTAB+X'95'+X'95'                                       E0143500
         ELSE                                                           E0143600
R0SAV    DS    2                                                        E0143700
R1SAV    DS    2                                                        E0143800
         ENDC                                                           E0143900
SVCCSW   DS    SVCTWO!CLK+SVCSIX+SVCSEVEN*4                       EN003 E0144000
SVCRSAV  DS    SVCTWO!CLK+SVCSIX+SVCSEVEN*32                      EN003 E0144100
         ENDC                      *                              EN003 E0144200
 ENTRY RSAVE                                                            E0144300
 IFZ .20+.21+.22+.23+.24+.25+.26+.27+.28+.29+.2A+.2B+.2C+.2D+.2E+.2F    E0144400
RSAVE    EQU   ISPTAB+X'20'+X'20'                                       E0144500
         ELSE                                                           E0144600
RSAVE    DS    32                 REG. SAVE AREA                        E0144700
         ENDC                                                           E0144800
  IFZ .C1                                                               E0144900
RORG EQU *                                                              E0145000
 ORG ISPTAB+X'C1'+X'C1'                                                 E0145100
 ENDC                                                                   E0145200
         IFNZ  DISCMGT*SVCSEVEN    *                              EN003 E0145300
NUMDIO   DC    0                                                        E0145400
NUMD05   EQU   NUMDIO                                                   E0145500
         ENDC                      *                              EN003 E0145600
 IFZ .C1                                                                E0145700
 ORG RORG                                                               E0145800
 ENDC                                                                   E0145900
 IFZ .03                                                                E0146000
RORG EQU *                                                              E0146100
 ORG ISPTAB+3+3                                                         E0146200
 ENDC                                                                   E0146300
STPDIO   DC    0                                                        E0146400
STPD05   EQU   STPDIO                                                   E0146500
 IFZ .03                                                                E0146600
 ORG RORG                                                               E0146700
         ENDC                                                           E0146800
PWRREG   DS    96*PFREC            REG SAVE ON POWER DOWN         EN003 E0146900
         TITLE ILLEGAL DEVICE INTERRUPT HANDLER                         E0147000
.0 EQU .B7+.B8+.B9+.BA+.BB                                              E0147100
         IFZ   .0                                                       E0147200
RORG     EQU   *                                                        E0147300
         ORG   ISPTAB+X'B7'+X'B7'                                       E0147400
         ENDC                                                           E0147500
*#####################################################*                 E0147600
* ILLEGAL DEVICE INTERRUPT HANDLER                                      E0147700
*#####################################################*                 E0147800
IDH      DS    4                   ILLEGAL DEVICE INTERRUPT             E0147900
         DC    ISSTAT                                                   E0148000
         LPSW  IDH                 IGNORE                               E0148100
         IFZ   .0                                                       E0148200
         ORG   RORG                                                     E0148300
         ENDC                                                           E0148400
         SPACE 3                                                        E0148500
*                                                                       E0148600
*        ATL ENTRY FROM DISC DRIVER                                     E0148700
*                                                                       E0148800
         IFZ   .1D+.1E+.1F                                              E0148900
RORG     EQU   *                                                        E0149000
         ORG   ISPTAB+X'1D'+X'1D'                                       E0149100
         ENDC                                                           E0149200
         IFNZ  DISCMGT                                                  E0149300
         IFNZ  PROCL                                                    E0149400
ATL      ATL   R14,0(R7)           ADD TO QUEUE                         E0149500
         BR    R3                  RETURN                               E0149600
BLOK     EQU   IDH                 TEMP SAVE AREA FOR R14               E0149700
         ENDC                                                           E0149800
         ENDC                                                           E0149900
         IFZ   .1D+.1E+.1F                                              E0150000
         ORG   RORG                                                     E0150100
         ENDC                                                           E0150200
         TITLE MACHINE MALFUNCTION                                      E0150300
*##########################################################*            E0150400
* MACHINE MALFUNCTION INTERRUPT SERVICE ROUTINE                         E0150500
*                                                                       E0150600
* TESTS FOR POWER FAIL, POWER UP OR MEMORY PARITY                       E0150700
*        CC=0  POWER RESTORE                                            E0150800
*        CC=1  POWER FAIL                                               E0150900
*        CC=8  MEMORY FAIL                                              E0151000
*##########################################################*            E0151100
MMH      EQU   *                   MACHINE MALFUNCTION HANDLER          E0151200
         BFC   15,MMPR             POWER RESTORE                        E0151300
         BTC   14,MFAIL            MEMORY FAIL                          E0151400
*                                                                       E0151500
*                                                                       E0151600
* POWER FAIL                                                            E0151700
         IFNZ  PFREC               IF POWER FAIL RECOVERY         EN003 E0151800
         STM   R14,MMPF.R14        SAVE R14,R15 TEMPORARILY             E0151900
         XHR   R15,R15             *                              EN012 E0152000
         STH   R15,DSPSTA          CLEAR DISPLAY PANEL STATUS     EN012 E0152100
         LH    R14,PFFLAG          GET POWER FAIL FLAG                  E0152200
         BNZ   MMPF.W              IS A POWER RESTORE IN PROGRESS ?     E0152300
         LH    R14,MMPSW+2         FLAG INDICATES 'NO'                  E0152400
         CLHI  R14,R4.W1                                                E0152500
         BES   MMPF.WB                                                  E0152600
         CLHI  R14,R4.W2                                                E0152700
MMPF.WB  BE    MMPF.W                                                   E0152800
         LIS   R15,1               NO POWER RESTORE IN PROGRESS         E0152900
         STH   R15,PFFLAG          SO SET FLAG TO INDICATE IT IS        E0153000
         IFZ   PROCL                                              EX    E0153100
         CLHI  R14,LISTIN          BELOW LIST TRAP CODE?                E0153200
         BL    MMPF.R              YES, TAKE IMMEDIATE POWER FAIL       E0153300
         CLHI  R14,LIST2           IN TRAPS, BUT NOT DOING LIST INST?   E0153400
         BNLS  MMPF.3              IF ABOVE IS TRUE, FALL THRU BRANCH   E0153500
MMPF.2   LM    0,BLOK              TAKE POWER FAIL FROM THE POINT OF    E0153600
         STM   0,MMPF.REG          THE ILLEG INSTR.(PRETEND WE NEVER    E0153700
         LM    R14,X'30'           TOOK THE TRAP)                       E0153800
         B     MMPF.GP                                                  E0153900
MMPF.3   CLHI  R14,LPT             ABOVE LSIT TRAP CODE?                E0154000
         BNL   MMPF.R              YES, TAKE IMMEDIATE POWER FAIL       E0154100
         CLHI  R14,LP3                                                  E0154200
         BNLS  MMPF.2                                                   E0154300
         LH    R15,MMPF.R14+2      * WE NOW KNOW WE ARE                 E0154400
         STH   R15,MMPF.PSW+2      NOT ALREADY DONE.                    E0154500
         LHI   R15,MMPF.4          (IF WE WERE ABOVE LP3)               E0154600
         LH    R14,MMPF.R14                                             E0154700
         LPSW  MMPSW                                                    E0154800
MMPF.4   STM   R0,MMPF.REG                                              E0154900
         LH    R14,X'30'                                                E0155000
         STH   R14,MMPF.PSW                                             E0155100
         BS    MMPF.W              GO WAIT                        EN008 E0155200
         ENDC                                                           E0155300
MMPF.R   LM    R14,MMPF.R14        RESOTRE TEMP SAVED REGS              E0155400
         STM   R0,MMPF.REG         SAVE ALL REGS                        E0155500
         LM    R14,MMPSW           SAVE PSW                             E0155600
MMPF.GP  EQU   *                                                        E0155700
         STM   R14,MMPF.PSW                                             E0155800
MMPF.W   LPSW  MMPF.WS             WAIT FOR POWER-UP                    E0155900
MMPF.R14 DS    4                                                        E0156000
         ELSE                      NO POWER FAIL RECOVERY         EN003 E0156100
         LPSW  MMPF.WS             WAIT FOR POWER UP              EN003 E0156200
         ENDC                      *                              EN003 E0156300
*                                                                       E0156400
*                                                                       E0156500
* MEMORY FAIL SERVICE                                                   E0156600
MFAIL    EQU   *                                                        E0156700
         LM    R14,MMPSW           MACHINE MALFUNCTION OLD PSW          E0156800
 LHI R4,MFMSG                                                           E0156900
         LPSW  IIHPSW              CHANGE TO SUPERVISOR STATE           E0157000
MFMSG    EQU   *                                                        E0157100
         IFNZ  CMPROC              *                              EN003 E0157200
         DC    X'0002'+TFLG.MPM                                         E0157300
         ENDC                      *                              EN003 E0157400
         IFNZ  SAFE                IF SAFETY CHECKS                     E0157500
         DC    X'0152'                                                  E0157600
         ENDC                                                           E0157700
         TITLE POWER RESTORE MODULE                                     E0157800
*######################################################*                E0157900
* POWER RESTORE  -  RUN IN SUPERVISER STATE                             E0158000
*                                                                       E0158100
* PRINTS DEVICE INITIALIZE MESSAGE, ABORTS ALL ONGOING I/O, AND         E0158200
* ESTABLISHES POWER FAIL TRAPS                                          E0158300
* TASKS NOT TAKING TRAPS ARE PAUSED                                     E0158400
*######################################################*                E0158500
MMPR     EQU   *                  POWER RESTORE MODULE                  E0158600
         IFNZ  PFREC               IF POWER FAIL RECOVERY         EN003 E0158700
         LHI   R0,ISSTAT           CHANGE TO IS STATE                   E0158800
         EPSR  R1,R0                                                    E0158900
         LH    R0,PFFLAG                                                E0159000
         BZ    MFAIL                                                    E0159100
         IFNZ  CMPROC              *                              EN003 E0159200
         LHI   R10,PRMES           ADDR OF MESSAGE                 203D E0159300
         LHI   R6,DMYDCB           GET CONSOLE DEVICE NUMBER       203D E0159400
         IFM   CONS-32             *                               203D E0159500
         LB    R6,DCB.DN(R6)       *                               203D E0159600
         ELSE                      *                               203D E0159700
         LH    R8,DCB.DCOD(R6)     PICK UP DCOD AND DN             203D E0159800
         LBR   R6,R8               ISOLATE DN TO R6                203D E0159900
         SLLS  R8,2                TTY OR CRT ?                    203D E0160000
         BNMS  RS.TTY              BRANCH IF TTY                   203D E0160100
         AIS   R6,1                WRITE SIDE OF PASLA             203D E0160200
 EXTRN MODEOF                                                           E0160300
 OC R6,MODEOF                                                           E0160400
         ENDC                      *                               203D E0160500
RS.TTY   OC    R6,WRTCMD           PUT IN WRITE MODE               203D E0160600
TTYERR   SSR   R6,R7               CHECK DEVICE STATUS             203D E0160700
         BTBS  15,TTYERR           LOOP UNTIL NOT BUSY             203D E0160800
TTYWRT   WD    R6,0(RA)            WRITE PWR RESTORE MESSAGE       203D E0160900
TTYWC2   SSR   R6,R7               LOOP UNTIL DEVICE NOT BUSY      203D E0161000
         BTBS  15,TTYWC2           *                               203D E0161100
         AIS   R10,1               BUMP ADDR                       203D E0161200
         CLHI  R10,PRMESE+1        FINISHED ?                      203D E0161300
         BLS   TTYWRT              NO...WRITE NEXT BYTE            203D E0161400
         LHI   R7,CNSDCB           A(CONSOLE DCB)                 EN003 E0161500
         LH    R7,DCB.CNTS(R7)     MICRO-BUS DEVICE ?             EN003 E0161600
         BZS   RS.NMB              BRANCH IF NOT                  EN003 E0161700
         LIS   R7,3                RESET COMMAND                  EN003 E0161800
         OCR   R6,R7               RESET MICRO-BUS                EN003 E0161900
         BS    RS.MCOM             GO TO COMMON                   EN003 E0162000
RS.NMB   OC    R6,DISARM           DISARM DEVICE                  EN003 E0162100
RS.MCOM  EQU   *                   *                              EN003 E0162200
         IFP   CONS-32             *                               203D E0162300
         LHR   R8,R8               CHECK FOR TTY OR CRT            203D E0162400
         BNMS  RS.WAIT             BRANCH IF TTY                   203D E0162500
         SIS   R6,1                ADDRESS READ SIDE OF PASLA      203D E0162600
         OC    R6,DISARM           DISARM READ SIDE ALSO           203D E0162700
         ENDC                      *                               203D E0162800
         ENDC                      *                              EN003 E0162900
RS.WAIT  LPSW  PR.WPSW             WAIT FOR "RUN"                  203D E0163000
*                                                                       E0163100
RESTRT2  EQU   *                   ABORT ALL ONGOING I/O                E0163200
         IFNZ  CMPROC              *                              EN003 E0163300
         LHI   R11,CNSDCB          CHECK CONSOLE FIRST             203D E0163400
         LCS   R3,DMT.             SET INDEX                       203D E0163500
         BS    RS.C                GO TO IT                        203D E0163600
         ELSE                      *                              EN003 E0163700
         XHR   R3,R3               *                              EN003 E0163800
         ENDC                      *                              EN003 E0163900
RS.D     LH    R11,DMT+DMT.NAME(R3) GET DMT ENTRY                       E0164000
         BZ    RESTRT3             END OF TABLE ?                       E0164100
         LH    R11,DMT+DMT.DCB(R3) NO...GET A(DCB)                      E0164200
         NHI   R11,X'FFFE'         MAKE EVEN                            E0164300
RS.C     LH    R12,DCB.ISR(R11)    GET DCB ISR POINTER             203D E0164400
         CLHI  R12,DCB.NOPI(R11)   IS IT THE NOP ISR                    E0164500
         BES   RS.N                                                     E0164600
         LH    R12,DCB.ALOC(R11)   NO....GET A(ABORT ROUTINE)           E0164700
         BZS   RS.N                                                     E0164800
         STH   R12,DCB.ISR(R11)    SAVE IN ISR PNTR                     E0164900
         LB    R14,DCB.DN(R11)     GET DEVICE NUMBER                    E0165000
         SINT  0(R14)              SIMULATE INTERRUPT                   E0165100
RS.N     AIS   R3,DMT.             INCREMENT INDEX                      E0165200
         B     RS.D                LOOP THROUGH DMT                     E0165300
*                                                                       E0165400
RESTRT3  EQU   *                   ESTABLISH PF TRAPS                   E0165500
         XHR   R0,R0                                                    E0165600
         XHR   R3,R3                                                    E0165700
R3.S     AIS   R3,2                                                     E0165800
         CLHI  R3,TTAB.END         MORE TASKS ?                         E0165900
         BNL   RESTRT4                                                  E0166000
         IFNZ  PCLOCK                                                   E0166100
         STH   R0,TIMTSV-2(R3)     CLEAR TIME SERVICE TALBE             E0166200
         ENDC                                                           E0166300
         LH    R13,TCBTAB(R3) YES...GET A(TCB)                          E0166400
         LH    R4,TCB.STAT(R13)    GET TASK'S STATUS                    E0166500
         THI   R4,TSTT.DMM+TSTT.CWM DORMANT OR PAUSED ?                 E0166600
         BNZS  R3.S                                                     E0166700
         NHI   R4,TSTT.RWM+TSTT.IOM RESET ALL BUT RW/IO WAITS      203D E0166800
         STH   R4,TCB.STAT(R13)                                         E0166900
         LH    R6,TCB.FLGS(R13)    GET TASK FLAGS                 EN001 E0167000
         LH    R14,TCB.CTSW(R13)   GET TSW                              E0167100
         THI   R6,TFLG.CPM         CANCEL PENDING ?                     E0167200
         BNZS  R3.R                                                     E0167300
         THI   R14,TTSW.PRM        POWER FAIL TRAP ENABLED ?            E0167400
         BZS   R3.P                NO, PAUSE THIS TASK            EN008 E0167500
         OHI   R6,TFLG.PRM         SET POWER RESTORE PENDING FLAG       E0167600
R3.R1    STH   R6,TCB.FLGS(R13)    SAVE FLAGS                     EN001 E0167700
R3.R     B     R3.S                                                     E0167800
R3.P     EQU   *                                                        E0167900
         OHI   R6,TFLG.PPM         SET PAUSE PENDING                    E0168000
         BS    R3.R1                                                    E0168100
*                                                                       E0168200
RESTRT4  EQU   *                                                        E0168300
         ATL   R0,LIOTRM           FORCE SCHEDULING                     E0168400
         IFNZ  CLOCK                                                    E0168500
         LB    R1,CLOCKD           CLOCK DEVICE #                       E0168600
         OC    R1,CLOCKD+1         ENABLE CLOCK                         E0168700
         ENDC                                                           E0168800
         IFNZ  PCLOCK                                                   E0168900
         LB    R1,TIMERD                                                E0169000
         WHR   R1,R0                                                    E0169100
         OC    R1,DISARM                                                E0169200
         WH    R1,TIMERI           SET INTERVAL                         E0169300
         ENDC                                                           E0169400
         LM    R1,MMPF.REG+2       RESTORE ALL BUT R0                   E0169500
         STH   R0,PFFLAG           RESET POWER RESTORE FLAG             E0169600
R4.W1    LH    R0,MMPF.REG         RESTORE R0                           E0169700
R4.W2    LPSW  MMPF.PSW            RETURN TO NORMAL PROCESSING          E0169800
MMPF.REG DS    32                                                       E0169900
         IFNZ  CMPROC              *                              EN003 E0170000
PRMES    EQU   *                   *                               203D E0170100
         IFNZ  CONSPT              *                               203D E0170200
         DC    X'1300'             SEND AN X-OFF                   203D E0170300
         ENDC                      *                               203D E0170400
         DC    X'0A0D',X'0000'     *                               203D E0170500
         DC    C'PWR RSTR - RESET DEV'                                  E0170600
         DC    X'0A00',X'0D00'     *                               203D E0170700
PRMESE EQU     *-1                                                      E0170800
         ENDC                      *                              EN003 E0170900
         ELSE                      NO POWER FAIL RECOVERY         EN003 E0171000
         IFNZ  SAFE                IF CRASH HANDLER               EN003 E0171100
CRASH153 SINT  CRASH               POWER FAILURE WITH NO RECOVERY EN003 E0171200
         DC    X'153'              *                              EN003 E0171300
         ELSE                      NO SAFETY CHECKS               EN003 E0171400
         LPSW  MMPF.WS             ENTER WAIT STATE               EN003 E0171500
         ENDC                      *                              EN003 E0171600
         ENDC                      *                              EN003 E0171700
         IFZ   PFREC               *                              EN003 E0171800
RESTRT2  EQU   *                   NOT USED, BUT ADDR CONST DECL  EN003 E0171900
         ENDC                      BEFORE ISPTAB WHICH MUST STILL EN003 E0172000
*                                  START AT D0                    EN003 E0172100
         TITLE ILLEGAL INSTRUCTION                                      E0172200
*##########################################################*            E0172300
* ILLEGAL INSTRUCTION INTERRUPT                                         E0172400
*                                                                       E0172500
*##########################################################*            E0172600
*                                                                       E0172700
*        PROCESS AN ILLEGAL INSTRUCTION BY GOING TO THE REQUIRED TRAPS  E0172800
*                                                                       E0172900
III      EQU   *                                                        E0173000
         ENTRY LISTRE                                                   E0173100
LISTRE   EQU   *                   RETURN HERE IF NO                    E0173200
         IFNM  PROC-2             IF M/D HW                          EX E0173300
         IFNZ  MULDV!CMPROC!DISCMGT                               EN003 E0173400
         EXTRN MULDIV                                                   E0173500
         B     MULDIV              YES GO SEE IF ITS A M/D INSTR        E0173600
         ENTRY MDRET                                                    E0173700
MDRET    EQU   *                   RETURN HERE IF NO                    E0173800
         ENDC                      *                              EN003 E0173900
         ENDC                                                           E0174000
         IFNZ  FP                  IF ANY FP TRAPS                EN001 E0174100
         STM   R0,.74TSV           SAVE THE REGISTERS             EN001 E0174200
         LM    R14,MDPSW           GET OLD PSW                    EN001 E0174300
         STM   R14,FLPSW           SAVE IT                        EN001 E0174400
         ENDC                      *                              EN001 E0174500
 IFNZ FLOAT                                                             E0174600
 IFM FLOAT-3   SPFP TRAPS NEEDED?                                       E0174700
         EXTRN TRAPS                                                    E0174800
         B     TRAPS               TO THE TRAPS AND DO                  E0174900
         ENTRY TRAPRE                                                   E0175000
TRAPRE   EQU   *                                                        E0175100
         ENDC                                                           E0175200
 ENDC                                                                   E0175300
         IFZ   DFLOAT-1            DPFP TRAPS NEEDED ?            EN001 E0175400
         EXTRN DTRAPS              *                              EN001 E0175500
         B     DTRAPS              *                              EN001 E0175600
         ENTRY DRET                *                              EN001 E0175700
DRET     EQU   *                   *                              EN001 E0175800
         ENDC                      *                              EN001 E0175900
 IFNZ FP                                                                E0176000
 LM R0,.74TSV                                                           E0176100
  ENDC                                                                  E0176200
         LPSW  IIPSW                                                    E0176300
.0 EQU .30+.31+.32+.33+.34+.35+.36+.37                                  E0176400
         IFZ  .0                                                        E0176500
RORG     EQU   *                                                        E0176600
         ORG   ISPTAB+X'30'+X'30'                                       E0176700
         ENDC                                                           E0176800
IIPSW    DC    SUSTAT,EXEC                                              E0176900
IIINT    EQU   *                                                        E0177000
         LM    R14,IIIPSW          GET OLD PSW                    EN001 E0177100
         LHI   R4,IIMSG            ILLEGAL INST MSG START ADDR          E0177200
         LPSW  IIHPSW              CHANGE TO SUPERVISOR STATE           E0177300
 IFZ .0                                                                 E0177400
 ORG RORG                                                               E0177500
 ENDC                                                                   E0177600
IIMSG    EQU   *                                                        E0177700
         IFNZ  CMPROC              *                              EN003 E0177800
         DC    X'0012'                                                  E0177900
         ENDC                      *                              EN003 E0178000
         IFNZ  SAFE                IF SAFETY CHECKS                     E0178100
         DC    X'0102'                                                  E0178200
         ENDC                                                           E0178300
         IFZ   PROCL              LIST HW?                              E0178400
*                                                                 EN001 E0178500
*                                                                 EN001 E0178600
IIIPSW   EQU   *                   PSW ON ILLEGAL INSTRUCTION     EN001 E0178700
MDPSW    DS    4                                                        E0178800
*                                                                 EN001 E0178900
   ELSE                                                                 E0179000
IIIPSW   EQU   X'30'               PSW ON ILLEGAL INSTRUCTION     EN001 E0179100
MDPSW    EQU   X'30'               *                              EN001 E0179200
         ENDC                                                           E0179300
MDPSW2   EQU   MDPSW+2             *                              EN001 E0179400
         IFNZ  FP                  IF FLOAT,FIX OR DFLOAT TRAPS   EN001 E0179500
         IFZ   .96+.97                                                  E0179600
RORG     EQU   *                                                        E0179700
         ORG   ISPTAB+X'96'+X'96'                                       E0179800
         ENDC                                                           E0179900
FLPSW    DS    1                   STAT                           EN001 E0180000
FLPSW1   DS    1                   CC                             EN001 E0180100
FLPSW2   DS    2                   LOC                            EN001 E0180200
         IFZ   .96+.97                                                  E0180300
         ORG   RORG                                                     E0180400
         ENDC                                                           E0180500
.74TSV   EQU   0                                                        E0180600
         ENDC                      *                              EN001 E0180700
         TITLE ILLEGAL SVC HANDLER                                      E0180800
*######################################################*                E0180900
* ILLEGAL SVC HANDLER                                                   E0181000
*                                                                       E0181100
* ENTERED FROM SVC ROUTINE WHEN ILLEGAL SVC ENCOUNTERED                 E0181200
* PAUSES THE CALLING TASK                                               E0181300
*                                                                       E0181400
* RETURNS TO SCHEDULER VIA IOTERM AND/OR SVCXRTN                        E0181500
*######################################################*                E0181600
SVCIL    EQU   *                                                        E0181700
         LM    R14,SVCPSW          MAIN ENTRY                           E0181800
         LHI   R6,IOTERM                                                E0181900
         IFNZ  SVCTWO+CLOCK        *                              EN003 E0182000
         BS    SVCILL                                                   E0182100
SVC2IL   LM    R14,SVCCSW          SVC 2 ENTRY PT                       E0182200
         LHI   R6,SVC2RTN                                               E0182300
         ENDC                      *                              EN003 E0182400
         IFNZ  SVCSIX+SVCFIVE                                           E0182500
         BS    SVCILL                                                   E0182600
SVC6IL   LM    R14,SVCTWO!CLK*4+SVCCSW  SVC 6 ENTRY POINT         EN003 E0182700
         LHI   R6,SVC6RTN                                               E0182800
         ENDC                                                           E0182900
SVCILL   EQU   *                                                        E0183000
*                                                                 EN008 E0183100
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN    IF SVCEXEC IN SYSTEM EN003 E0183200
         BAL   R8,SVCSIL           CHECK FOR SYSTEM SVC CALL            E0183300
         ENDC                      *                              EN003 E0183400
         LHI   R4,ISMSG            STARTING ADDR OF MESSAGE             E0183500
*                                                                 EN008 E0183600
*                                                                 EN008 E0183700
         LPSW  IHPSW               CHANGE TO SUPERVISOR STATE           E0183800
ISMSG    EQU   *                                                        E0183900
         IFNZ  CMPROC              *                              EN003 E0184000
         DC    X'8022'                                                  E0184100
         ENDC                      *                              EN003 E0184200
         IFNZ  SAFE                IF SAFETY CHECKS                     E0184300
         DC    X'0132'                                                  E0184400
         ENDC                                                           E0184500
         IFNZ  CMPROC*ST                                                E0184600
 ENTRY SVCILA                                                           E0184700
         TITLE INVALID ADDRESS HANDLER                                  E0184800
*########################################################*              E0184900
* ILLEGAL ADDRESS HANDLER                                               E0185000
*                                                                       E0185100
* ENTERED FROM SVC ROUTINE WHEN ILLEGAL ADDRESS IN SVC ENCOUNTERED      E0185200
* PAUSES THE CALLING TASK                                               E0185300
*                                                                       E0185400
* RETURNS TO SCHEDULER VIA IOTERM (AND SVCXRTN)                         E0185500
*########################################################*              E0185600
SVCILA   EQU   *                                                        E0185700
         LM    R14,SVCPSW          MAIN ENTRY                           E0185800
         LHI   R6,IOTERM                                                E0185900
         BS    SVCLA                                                    E0186000
SVC2LA   LM    R14,SVCCSW          SVC 2 ENTRY                          E0186100
         LHI   R6,SVC2RTN                                               E0186200
         IFNZ  SVCSIX                                                   E0186300
         BS    SVCLA                                                    E0186400
SVC6LA   LM    R14,SVCTWO!CLK*4+SVCCSW  SVC 6 ENTRY               EN003 E0186500
         LHI   R6,SVC6RTN                                               E0186600
         ENDC                                                           E0186700
SVCLA    EQU   *                   *                              EN008 E0186800
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN    IF SVCEXEC IN SYSTEM EN003 E0186900
         BAL   R8,SVCSIL           CHECK FOR SYSTEM SVC CALL            E0187000
         ENDC                      *                              EN003 E0187100
         LHI   R4,IAMSG            STARTING ADDR OF MESSAGE             E0187200
*                                                                 EN008 E0187300
*                                                                 EN008 E0187400
         LPSW  IHPSW               CHANGE TO SUPERVISOR STATE           E0187500
IAMSG    EQU   *                                                        E0187600
         IFNZ  CMPROC              IF CMDP IN SYSTEM                    E0187700
         DC    X'8032'                                                  E0187800
         ENDC                                                           E0187900
         IFNZ  SAFE                IF SAFETY CHECKS                     E0188000
         DC    X'0142'                                                  E0188100
         ENDC                                                           E0188200
         ENDC                      *                              EN003 E0188300
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN    IF SVCEXEC IN SYSTEM EN003 E0188400
         SPACE 3                                                        E0188500
SVCSIL   EQU   *                                                        E0188600
         IFNZ  EXTMEM                                                EX E0188700
         CLB   R14,SVCSP1+1       COMP TO X'70' IS IT A USER PSW?       E0188800
         BNLS  SVCSIL2            YES, IT MUST BE A USER,NOT SYSTEM  EX E0188900
         ENDC                                                        EX E0189000
         CLH   R15,UBOT            WAS THE SVC CALL IN SYSTEM LEVEL CODEE0189100
         BLR   R8                  YES..OK TO CRASH                     E0189200
SVCSIL2  LB    R3,ACTTCB          NO,RESET SYSTEM LEVEL FLAG SO TASK EX E0189300
         LH    R13,TCBTAB(R3)      CAN BE PAUSED                        E0189400
         LH    R12,TCB.FLGS(R13)   *                              EN001 E0189500
         NHI   R12,-1-TFLG.SLM                                          E0189600
         STH   R12,TCB.FLGS(R13)   *                              EN001 E0189700
         BR    R8                                                       E0189800
         ENDC                      *                              EN003 E0189900
         TITLE MEMORY PROTECT                                           E0190000
         IFNZ  MEMPROT                                                  E0190100
*                                                          *06/74       E0190200
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *  *06/74       E0190300
* MEMORY PROTECT CONTROLLER DRIVER                         *06/74       E0190400
*                                                          *06/74       E0190500
* ENTERED FROM CONTROLLER INTERRUPT                        *06/74       E0190600
*                                                          *06/74       E0190700
* SETS CC TO X'A' , BRANCHES TO EXEC                       *06/74       E0190800
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * **06/74       E0190900
*                                                          *06/74       E0191000
MPDVR    DS    4                                           *06/74       E0191100
         DC    SUSTAT+PSWCCC+PSWCCG                                     E0191200
         B     EXEC                                                     E0191300
*                                                          *06/74       E0191400
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * **06/74       E0191500
* MEMORY PROTECT HANDLER                                   *06/74       E0191600
* ENTERED FROM EXEC                                        *06/74       E0191700
*                                                          *06/74       E0191800
* R2 = A(PSW SAVE AREA)                                    *06/74       E0191900
*                                                          *06/74       E0192000
* RETURN IS TO SCHED                                       *06/74       E0192100
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * **06/74       E0192200
*                                                          *06/74       E0192300
MPINT    LM    R14,MPDVR           OLD PSW                              E0192400
         IFNZ  EXTMEM                                                EX E0192500
         SETMR R15,R14                                               EX E0192600
         ENDC                                                        EX E0192700
         LH    R0,-2(R15)          CHECK FOR SPECIAL OSAIDS CONDITION   E0192800
         SHI   R0,X'B6'            OK TO ALTER SVC13/14 TRANSFER ADDR   E0192900
         BES   MPAID               AT LOC X'B6' AND X'B8'               E0193000
         SIS   R0,X'B8'-X'B6'                                           E0193100
         BNES  MPCONT              NEITHER OF THOSE, SO CONTINUE        E0193200
MPAID    LM    R14,-4(R15)         GET THE INSTRUCTION                  E0193300
         STM   R14,MPNST           EXECUTE IT AFTER REGS RESTORED       E0193400
         LM    R0,TCB.RSAV(R8)     RESTORE REGS                         E0193500
MPNST    DS    4                   ***ALTERED INSTRUCTION***            E0193600
         LPSW  MPDVR               RETURN                               E0193700
MPCONT   EQU   *                   *                              EN008 E0193800
         LHI   R4,MPMSG            STARTING ADDR OF MESSAGE             E0193900
*                                                                 EN008 E0194000
*                                                                 EN008 E0194100
         LPSW  IIHPSW              CHANGE TO SUPERVISOR STATE           E0194200
MPMSG    EQU   *                                                        E0194300
         IFNZ  CMPROC              *                              EN003 E0194400
         DC    X'0042'                                                  E0194500
         ENDC                      *                              EN003 E0194600
         IFNZ  SAFE                IF SAFETY CHECKS                     E0194700
         DC    X'0101'                                                  E0194800
         ENDC                                                           E0194900
         ENDC                                                           E0195000
         TITLE ARITHMETIC FAULT                                         E0195100
*                                                                       E0195200
*##########################################################*            E0195300
* ARITHMETIC FAULT INTERRUPT                                            E0195400
*                                                                       E0195500
*##########################################################*            E0195600
.0 EQU .12+.13+.14+.15+.16+.17+.18+.19+.1A+.1B+.1C                      E0195700
         IFZ   .0                                                       E0195800
RORG     EQU   *                                                        E0195900
         ORG   ISPTAB+X'12'+X'12'                                       E0196000
         ENDC                                                           E0196100
FPINT    LM    R14,FLTPSW          OLD FLOATING FAULT PSW               E0196200
         BS    ARITHF                                                   E0196300
DVINT    EQU   *                                                        E0196400
         LM    R14,DVPSW           OLD DIVIDE FAULT PSW                 E0196500
ARITHF   EQU   *                                                        E0196600
 LHI R4,AFMSG   STARTING ADDR                                           E0196700
         LHI   R6,IOTERM+1         TEST PAUSE/CONTINUE OPTION           E0196800
         LPSW  IHPSW               CHANGE TO SUPERVISOR STATE           E0196900
         IFZ   .0                                                       E0197000
         ORG   RORG                                                     E0197100
         ENDC                                                           E0197200
AFMSG    EQU   *                                                        E0197300
         IFNZ  CMPROC              *                              EN003 E0197400
         DC    X'0052'+TFLG.APM                                         E0197500
         ENDC                      *                              EN003 E0197600
         IFNZ  SAFE                IF SAFETY CHECKS                     E0197700
         DC    X'0100'                                                  E0197800
         ENDC                                                           E0197900
         TITLE ILLEGAL HANDLER                                          E0198000
*######################################################*                E0198100
*SYSTEM ILLEGAL MESSAGE AND PAUSE HANDLER                               E0198200
*R4=PARAMETER BLOCK START ADDR                                          E0198300
*                FORMAT:                                          EN008 E0198400
*        IFNZ  CMPROC              IF CMDP IN SYSTEM                    E0198500
*        DC    X'  MESSAGE CODE'+FLAGS                                  E0198600
*        ENDC                                                           E0198700
*        IFNZ  SAFE                IF SAFETY CHECKS                     E0198800
*        DC    X'CRASH CODE'                                            E0198900
*        ENDC                                                           E0199000
*                                                                 EN008 E0199100
*R6=NORMAL RETURN (ODD ADDR ALLOWS PAUSE/CONTINUE CHECK FOR ARITHF)     E0199200
*                                                                 EN008 E0199300
*R14-15 = OLD PSW                                                       E0199400
*######################################################*                E0199500
IIMPH    EQU   *                                                        E0199600
         LHI   R6,IOTERM                                                E0199700
IMPH     EQU   *                   ENTRY PT FOR NOT EXITING VIA IOTERM  E0199800
         LB    R3,ACTTCB           TCB PNTR                             E0199900
IMPHS    LH    R8,TCBTAB(R3)       A(TCB)                               E0200000
         IFNZ  SAFE                                                     E0200100
         LH    R12,CMPROC*2(R4)    GET CRASH CODE                 EN008 E0200200
         CLHI  R3,3                COMMAND PROCESSOR ? OR NO TASK ?     E0200300
         BL    CRASHR12            YES...CRASH                          E0200400
         CLHI  R3,FOREGRND+2*2+1   LEGAL POINTER ?                EN008 E0200500
         BNL   CRASHR12            NO, CRASH                      EN008 E0200600
         THI   R14,X'200'          USER STATE ?                         E0200700
         BZ    CRASHR12            NO...CRASH                           E0200800
         LH    R9,TCB.FLGS(R8)     *                              EN001 E0200900
         THI   R9,TFLG.SLM+TFLG.CPM  IN SYSTEM LEVEL CODE OR SVC3?      E0201000
         BNZ   CRASHR12            YES...CRASH                          E0201100
         ENDC                                                           E0201200
         STM   R14,TCB.CPSW(R8)    SAVE OLD PSW IN TCB                  E0201300
         IFNZ  CMPROC              *                              EN003 E0201400
         LH    R0,0(R4)            GET FLAGS AND MESSAGE CODE           E0201500
         BNMS  IMPI                BRANCH IF NO PSW BACKUP              E0201600
         SIS   R15,4               BACK UP PSW TO POINT TO SVC          E0201700
IMPI EQU *                                                              E0201800
         LHR   R4,R15              GET ADDRESS                          E0201900
         IFNZ  EXTMEM              IF EXTENDED MEMORY                   E0202000
         LHR   R9,R14              AND PSW                              E0202100
         ENDC                                                           E0202200
         BAL   R15,ATEXT           QUEUE MESSAGE FOR CMDP               E0202300
         ENDC                      *                              EN003 E0202400
         THI   R6,1                ODD ADDR ?                           E0202500
         BZS   IMP                 NO...GO PAUSE TASK                   E0202600
         NHI   R6,X'FFFE'                                               E0202700
         LH    R11,TCB.OPT(R8)     CHECK OPTIONS                        E0202800
         THI   R11,TOPT.ACM        CONTINUE OPTION SPECIFIED ?          E0202900
         BNZR  R6                  YES... DO NOT PAUSE TASK             E0203000
IMP      BAL   R15,S2PAUS          PAUSE                                E0203100
         BR    R6                                                       E0203200
         IFNZ  SAFE                                                     E0203300
CRASHR12 STH   R12,CRASHCD                                              E0203400
         SINT  CRASH                                                    E0203500
CRASHCD  DC    0                                                        E0203600
         ENDC                                                           E0203700
         IFZ   .C2+.C3+.C4+.C5                                          E0203800
RORG     EQU   *                                                        E0203900
         ORG   ISPTAB+X'C2'+X'C2'                                       E0204000
         ENDC                                                           E0204100
IHPSW    DC    SUSTAT,IMPH        ILLEGAL HANDLER                       E0204200
IIHPSW   DC    SUSTAT,IIMPH       ILLEGAL HANDLER                       E0204300
         IFZ   .C2+.C3+.C4+.C5                                          E0204400
         ORG   RORG                                                     E0204500
         ENDC                                                           E0204600
         TITLE SCHEDULER                                                E0204700
*##########################################################*            E0204800
*                                                                       E0204900
*              TASK SCHEDULER                                           E0205000
*                                                                       E0205100
*        IF ROUND ROBIN SCHEDULING IS SYSGENNED,                        E0205200
*        SCHED PLACES THE LAST READY TASK AT THE BOTTOM                 E0205300
*        OF IT'S PRIORITY IN THE PRIORITY TABLE (PRITAB)                E0205400
*        THIS CAUSES THE NEXT WAITING TASK OF THE SAME PRIORITY         E0205500
*        TO BE SCHEDULED                                                E0205600
*                                                                       E0205700
* IT THEN SCANS PRITAB (WHICH IS IN PRIORITY ORDER) AND                 E0205800
* ACTIVATES FIRST READY TASK (STATUS WORD = 0).  IT                     E0205900
* SETS ACTTCB = ACTIVE ENTRY IN TCBTAB AND RESTORES                     E0206000
* TASK'S REGISTERS.                                                     E0206100
* SCHED IS ENTERED FROM INIT AND RESTART, AND ALSO                      E0206200
* VIA EXEC AS RESULT OF ILLEGAL INSTRUCTION, QUEUE                      E0206300
* TERMINATION AND SVC INTERRUPTS.                                       E0206400
* EXEC SAVES REGISTERS IN AN INTERRUPTED TASK'S TCB                     E0206500
*                                                                       E0206600
*##########################################################*            E0206700
*                                                                       E0206800
SCHED    EQU   *                                                        E0206900
         IFNZ  ROUND                                                    E0207000
         LB    R3,ACTTCB           GET TCB POINTER OF ACTIVE TCB        E0207100
         CLHI  R3,3                ANY ACTIVE (OTHER THAN CMDP) ?       E0207200
         BL    SCHED.NA            NONE, GO SCHEDULE ONE                E0207300
         LIS   R2,1                INITIALIZE INDEX                     E0207400
SCHED.L  EQU   *                                                        E0207500
         CLB   R3,PRITAB(R2)       FIND TCB POINTER IN PRITAB           E0207600
         BES   SCHED.RF            FOUND                                E0207700
         AIS   R2,1                BUMP TO NEXT                         E0207800
         BS    SCHED.L        LOOP                                      E0207900
SCHED.RF EQU   *                                                        E0208000
         LH    R5,TCBTAB(R3)       GET A(TCB)                           E0208100
         LB    R6,TCB.CPRI(R5)     GET CURRENT PRIORITY OF THIS TASK    E0208200
SCHED.RG EQU   *                                                        E0208300
         AIS   R2,1                BUMP TO NEXT ENTRY                   E0208400
         CLHI  R2,FOREGRND+2       ARE WE DONE WITH PRITAB ?            E0208500
         BNLS  SCHED.NA            YES, GO SCHEDULE                     E0208600
         LB    R4,PRITAB(R2)       GET NEXT ENTRY                       E0208700
         LH    R5,TCBTAB(R4)       GET A(TCB)                           E0208800
         CLB   R6,TCB.CPRI(R5)     DO THESE TWO HAVE EQUAL PRIORITY ?   E0208900
         BNES  SCHED.NA            NO,GO SCHEDULE                       E0209000
         STB   R4,PRITAB-1(R2)     EXCHANGE THESE TWO                   E0209100
         STB   R3,PRITAB(R2)                                            E0209200
         BS    SCHED.RG            GO BACK FOR MORE                     E0209300
SCHED.NA EQU   *                                                        E0209400
         EJECT                     *                              EN003 E0209500
         ENDC                      *                              EN003 E0209600
         XHR   R1,R1                                                    E0209700
         STB   R1,ACTTCB           SET ACTTCB NOT ACTIVE                E0209800
         LHI   R2,RSAVE            SET REGISTER SAVE LOCATION           E0209900
         STH   R2,GRSPTR          TO SYSTEM AREA                        E0210000
SCHED0   XHR   R2,R2                                                    E0210100
SCHED1   EQU   *                                                        E0210200
         LB    R5,PRITAB(R2)      TCBTAB ENTRY NO.                      E0210300
         LH    R6,TCBTAB(R5)      POINT TO TCB                          E0210400
         IFNZ  EXTMEM                                                EX E0210500
         LPS   TCB.UBSW(R6)       TALK TO UDL                        EX E0210600
         ENDC                                                        EX E0210700
         LH    R7,TCB.STAT(R6)     GET TASK STATUS                      E0210800
         BZS   SCHED2                                                   E0210900
NOTREADY AIS   R2,1                                                     E0211000
         CLHI  R2,FOREGRND+2                                            E0211100
         BLS   SCHED1                                                   E0211200
*                                                                       E0211300
* IDLE ROUTINE - GOES INTO SYSTEM IDLE                                  E0211400
*                                                                       E0211500
IDLE     EQU   *                  GO INTO MACHINE IDLE                  E0211600
         LPSW  *+4                WITH INTERRUPTS                       E0211700
         DC    WAITSTAT,IDLE       ENABLED                              E0211800
SCHED2   EQU   *                                                        E0211900
         LHI   R4,TCB.CPSW(R6)     PSW SAVE AREA POINTER                E0212000
         STH   R4,CSWPTR      BUILD LPSW INSTR                          E0212100
 LM R14,0(R4) TASK CPSW                                                 E0212200
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN+BISYNC                  EN003 E0212300
         LH    R4,TCB.FLGS(R6)     *                              EN001 E0212400
         IFZ   BISYNC                                                   E0212500
         THI   R4,TFLG.SLM         SYSTEM LEVEL CODE ?                  E0212600
         ELSE                                                           E0212700
         THI   R4,TFLG.SLM+TFLG.BIM                                     E0212800
         ENDC                                                           E0212900
         BNZS  SCHED3              YES...CONTINUE TO SCHED 'TIL IT'S NO E0213000
         ENDC                      *                              EN003 E0213100
         IFNZ  PFREC+SVCSIX+CMPROC IF PWR RSTR/SVC6 LOAD/PAUSE CM EN003 E0213200
         IFNZ  ROLL                                                     E0213300
         THI   R4,TFLG.PPM+TFLG.PRM+TFLG.ROM+TFLG.MPM+TFLG.APM          E0213400
         ELSE                                                           E0213500
         THI   R4,TFLG.PPM+TFLG.PRM+TFLG.MPM+TFLG.APM                   E0213600
         ENDC                                                           E0213700
         BNZ   SCHED.P             TASK READY TO BE PAUSED              E0213800
         ENDC                      *                              EN003 E0213900
SCHED.TT LH    R4,TCB.CTSW(R6)     TRAP WAIT PENDING ?                  E0214000
         BM    SCHED.T             YES...GO PUT IN TRAP WAIT            E0214100
SCHED3   EQU   *                                                        E0214200
         STB   R5,ACTTCB           SET ACTIVE TCB POINTER               E0214300
         IFNZ  JOURNAL0                                                 E0214400
JRNL11   BAL   R8,JOURNAL                                               E0214500
         DC    X'11'                                                    E0214600
         ENDC                                                           E0214700
         LHI   R1,TCB.RSAV(R6)     FETCH REGISTER SAVE LOCATION         E0214800
         STH   R1,GRSPTR          STORE IN EXEC SAVE                    E0214900
         STH   R1,GRSPTR1                                               E0215000
*                                                                       E0215100
         IFNZ  MEMPROT                                                  E0215200
         LB    R4,MPCDEV          GET MEM PROT DEV         *06/74       E0215300
         OC    R4,MPCONC          ARM HIM                  *06/74       E0215400
         WH    R4,TCB.MPT(R6)     SET UP PATTERM                        E0215500
         WH    R4,TCB.MPT+2(R6)                                         E0215600
         WH    R4,TCB.MPT+4(R6)                                         E0215700
         WH    R4,TCB.MPT+6(R6)                                         E0215800
         ENDC                                                           E0215900
         IFNZ  FOREGRND            IF MORE THAN ONE TASK          EN001 E0216000
         IFZ   DFLOAT-2            IF DPFP HARDWARE               EN001 E0216100
         LH    R3,TCB.OPT(R6)      GET OPTIONS                    EN001 E0216200
         LH    R2,TCB.UBOT(R6)     GET UDL ADDRESS                EN001 E0216300
         THI   R3,TOPT.DFM         TASK USES DPFP ?               EN001 E0216400
         BZS   SCHED.ND            NO                             EN001 E0216500
         LMD   0,UDL.DFRS(R2)      RESTORE DPFP REGISTERS         EN001 E0216600
SCHED.ND EQU   *                   *                              EN001 E0216700
         ENDC  *                   *                              EN001 E0216800
         IFNM  FLOAT-2             IF SPFP HARDWARE               EN001 E0216900
         IFNZ  DFLOAT-2            IF CODE IS NOT ABOVE           EN001 E0217000
         LH    R3,TCB.OPT(R6)      GET OPTIONS                    EN001 E0217100
         LH    R2,TCB.UBOT(R6)     GET UDL ADDRESS                EN001 E0217200
         ENDC  *                   *                              EN001 E0217300
         THI   R3,TOPT.FPM         FLOATING POINT ?                     E0217400
         BZS   SCHED4              NO                                   E0217500
         IFZ   FLOAT-3             IF SPFP HARDWARE ON 8/16       EN001 E0217600
         LME   R0,UDL.FPRS(R2)     RESTORE SPFP REGISTERS         EN001 E0217700
         ELSE                      SPFP HARDWARE NOT ON 8/16      EN001 E0217800
         LM    R0,UDL.FPRS(R2)                                          E0217900
         STM   R0,FLTREG      RESTORE FLOATING PT REG                   E0218000
         LH    R1,GRSPTR                                                E0218100
         ENDC  *                   *                              EN001 E0218200
         ENDC  *                   *                              EN001 E0218300
         ENDC  *                   *                              EN001 E0218400
SCHED4   LM    R0,0(R1)       RESTORE GEN REG                           E0218500
*        ***** MODIFIED INSTRUCTION ************************            E0218600
CSWPTR   EQU   *+2       CURPSW IS CHANGED VIA CSWPTR TO   *            E0218700
         LPSW  CURPSW    POINT TO CURRENT PSW IN TB        *            E0218800
*        ***** *********************************************            E0218900
*                                                                       E0219000
*                                                                       E0219100
SCHED.P  EQU   *                                                        E0219200
         IFNZ  ROLL                                                     E0219300
         THI   R4,TFLG.ROM         WAS IT ROLL PENDING ?                E0219400
         BNZ   SCHED.RP                                                 E0219500
         ENDC                                                           E0219600
 IFNZ PFREC+SVCSIX+CMPROC                                               E0219700
         THI   R4,TFLG.PPM         WAS IT PAUSE PENDING?                E0219800
         BNZ   SCHED.PP                                                 E0219900
 ENDC                                                                   E0220000
         THI   R4,TFLG.MPM         WAS IT MEMORY PARITY PENDING ?       E0220100
         BNZ   SCHED.MP            YES                                  E0220200
         THI   R4,TFLG.APM         WAS IT ARITHMETIC FAULT PENDING ?    E0220300
         BNZ   SCHED.AP            YES                                  E0220400
         IFNZ  PFREC               IF PWR RSTR RECOVERY           EN003 E0220500
*        POWER RESTORE                                                  E0220600
         LHR   R13,R6              INITIALIZE FOR TSW SWAP              E0220700
         LH    R12,TCB.UBOT(R13)   A(UDL)                               E0220800
         LHI   R12,UDL.PWRO(R12)   A(OLD PSW SAVE AREA)                 E0220900
         BAL   R10,TSW.SWP         SWAP POWER RESTORE TSW'S             E0221000
         NHI   R4,-1-TFLG.PRM   RESET POWER RESTORE PENDING FLAG        E0221100
         STH   R4,TCB.FLGS(R6)     SAVE IN TCB                    EN001 E0221200
         B     SCHED.TT                                                 E0221300
         ENDC                      *                              EN003 E0221400
         IFNZ  PFREC+SVCSIX+CMPROC IF PWR RSTR/SVC6 LOAD/PAUSE CM EN003 E0221500
SCHED.PP LHR   R8,R6                                                    E0221600
         LB    R3,TCB.PNT(R8)      TCB PNTR                             E0221700
         BAL   R15,S2PAUS          PAUSE THIS TASK                      E0221800
         ENDC                      *                              EN003 E0221900
SCHED.NB B     NOTREADY            CONTINUE SCHEDULING                  E0222000
SCHED.T  OHI   R7,TSTT.TRM         SET TRAP WAIT IN TASK STATUS         E0222100
         STH   R7,TCB.STAT(R6)                                          E0222200
         BS    SCHED.NB            CONTINUE SCHEDULING                  E0222300
         IFNZ  ROLL                                                     E0222400
SCHED.RP LCS   R11,DMT.            ANY I/O GOING ON FOR THIS TASK EN008 E0222500
*                                                                  461D E0222600
*                                                                  461D E0222700
*                                                                  461D E0222800
SCHED.IO AIS   R11,DMT.            CHECK ALL DEVICES              EN008 E0222900
         LH    R13,DMT+DMT.NAME(R11) GET DMT ENTRY                      E0223000
         BZ    SCHED.RL            IF DMT END, ROLLOUT CAN PROCEED 461D E0223100
         LH    R14,DMT+DMT.DCB(R11)  A(DCB)                             E0223200
         NHI   R14,X'FFFE'         MAKE EVEN                       461D E0223300
*                                                                  461D E0223400
*                                                                  461D E0223500
         LB    R15,DCB.RSAV(R14)   GET TCB POINTER                      E0223600
         CLB   R15,TCB.PNT(R6)     THIS TASK ?                     461D E0223700
*                                                                  461D E0223800
         BNZS  SCHED.IO           NOT THIS DCB...CHECK NEXT ONE         E0223900
         LH    R12,DCB.ISR(R14)    IS THERE REALLY I/O ONGOING ?        E0224000
         CLHI  R12,DCB.NOPI(R14)                                        E0224100
         BE    SCHED.IO            NO...NOT REALLY                 461D E0224200
         B     SCHED.NB           YES...NOT READY TO BE ROLLED OUT      E0224300
SCHED.RL LB    R8,TCB.ADQP(R6)     GET CALLER'S TCB POINTER       EN008 E0224400
*                                                                 EN008 E0224500
         LH    R8,TCBTAB(R8)       CALLER'S A (TCB)                     E0224600
         LH    R9,TCB.STAT(R8)                                          E0224700
         NHI   R9,-1-TSTT.S6M      TAKE CALLER OUT OF LOAD WAIT         E0224800
         STH   R9,TCB.STAT(R8)                                          E0224900
         LHI   R7,TSTT.RWM         PUT ROLL TASK IN ROLL WAIT           E0225000
         STH   R7,TCB.STAT(R6)                                          E0225100
         NHI   R4,-1-TFLG.ROM      RESET ROLL PENDING FLAG              E0225200
         STH   R4,TCB.FLGS(R6)     SAVE IN TCB                    EN001 E0225300
         B     SCHED0              BEGIN SCHEDULING                     E0225400
         ENDC                                                           E0225500
SCHED.MP  NHI R4,-1-TFLG.MPM                                            E0225600
 STH R4,TCB.FLGS(R6)                                                    E0225700
 LHI R4,MFMSG GET MESSAGE CODE ADDRESS                                  E0225800
         LHI   R6,IOTERM           EXIT ADDRESS                         E0225900
         BS    SCHED.IM                                                 E0226000
SCHED.AP NHI R4,-1-TFLG.APM                                             E0226100
 STH R4,TCB.FLGS(R6)                                                    E0226200
 LHI R4,AFMSG GET MESSAGE CODE ADDR                                     E0226300
         LHI   R6,IOTERM+1         EXIT ADDRESS+FLAG                    E0226400
SCHED.IM LHR   R3,R5               TCB POINTER                          E0226500
         B     IMPHS               ENTER ILLEGAL HANDLER                E0226600
         TITLE EXECUTIVE                                                E0226700
*                                                                       E0226800
*##########################################################*            E0226900
* EXEC - ENTERED FROM INTERNAL INTERRUPTS                               E0227000
*                                                                       E0227100
*       -CONDITION CODE INDICATES WHICH TYPE                            E0227200
*       -MACHINE MALFUNCTION SERVICED BELOW                             E0227300
*                                                                       E0227400
* SERVICE ROUTINE ENTERED WITH:                                         E0227500
*        R2 = A(PSW SAVE AREA)                                          E0227600
*        R3 = ACTIVE TCB POINTER                                        E0227700
*        R8 = A(ACTIVE TCB)                                             E0227800
* SERVICE ROUTINE RETURNS TO SCHED                                      E0227900
*                                                                       E0228000
* SCHED SETS EXEC+2 = GEN. REG. SAVE LOCATION                           E0228100
*##########################################################*            E0228200
*                                                                       E0228300
.0 EQU .7B+.7C+.7D+.7E+.7F+.90+.91+.92+.93+.80+.81+.82+.83              E0228400
.0 EQU .0+.84+.85+.86+.87+.88+.89+.8A+.8B+.8D+.8E+.8F+.8C               E0228500
         IFZ   .0                                                       E0228600
RORG     EQU   *                                                        E0228700
         ORG   ISPTAB+X'7B'+X'7B'                                       E0228800
         ENDC                                                           E0228900
EXEC EQU *                                                              E0229000
*        ***** MODIFIED INSTRUCTION ************************            E0229100
GRSPTR   EQU   *+2            GENERAL REGISTER SAVE POINTER*            E0229200
         STM   R0,RSAVE       RSAVE IS CHANGED VIA GRSPTR  *            E0229300
*                                       TO POINT TO TCB.RSAV          * E0229400
*        ***** *********************************************            E0229500
         EPSR  R4,R4          GET CONDITION CODE                        E0229600
         NHI   R4,15              MASK CC TO 4 BITS                     E0229700
         STH   R4,SAVCC      & SAVE IT                                  E0229800
         BAL   R7,EXECSUB                                               E0229900
         LH    R4,SAVCC                                                 E0230000
         LHI   R2,TCB.CPSW(R8)     A(PSW SAVE AREA)                     E0230100
         LHI   RF,IOTERM          SET RETURN ADDRESS                    E0230200
         LH    R4,EXETAB(R4)      GO TO SYSTEM INTERRUPT                E0230300
         BR    R4             SERVICE ROUTINE                           E0230400
SAVCC    DC    0                                                        E0230500
EXETAB   DC    IIINT              0 = ILLEGAL INSTR.                    E0230600
         DC    FPINT               2 = FLT PT FAULT                     E0230700
         DC    SVCIL               4 = ILLEGAL SVC                      E0230800
         DC    QTERM              6 = QUEUE TERM.                       E0230900
         DC    DVINT              8 = DIVIDE FAULT                      E0231000
         IFNZ  MEMPROT                                                  E0231100
         DC    MPINT              A = MEM PROTECT          *06/74       E0231200
         ENDC                                              *08/74       E0231300
         IFZ   .0                                                       E0231400
         ORG   RORG                                                     E0231500
         ENDC                                                           E0231600
         EJECT                                                          E0231700
EXECSUB  EQU   *                                                        E0231800
EXECSU  EQU  *                                                          E0231900
         STH   R7,ESUBR           SAVE RETURN ADDR                      E0232000
         IFNZ  MEMPROT                                                  E0232100
         LB    R3,MPCDEV          DISARM MEM PROT          *06/74       E0232200
         OC    R3,MPCOFC                                   *06/74       E0232300
         ENDC                                                           E0232400
         LB    R3,ACTTCB      FETCH ACTIVE TCB PNTR                     E0232500
         LHR   R3,R3               ANY ACTIVE TASK ?                    E0232600
         BNZS  EXEC1          YES                                       E0232700
         LHI   R2,CURPSW      NO,R2=SYSTEM SAVE AREA                    E0232800
         SIS   R4,6               CHECK CC FOR QTERM                    E0232900
         BZ    QTERM                                                    E0233000
         IFNZ  SAFE                                                     E0233100
CRASH102 SINT  CRASH               ILGL INTRNL INT IN SYSTEM      EN008 E0233200
         DC    X'102'                                                   E0233300
         ENDC                                                           E0233400
EXEC1    EQU   *                                                        E0233500
         IFNZ  SAFE                IF SAFETY CHECKS IN SYSTEM     EN008 E0233600
         CLHI  R3,FOREGRND+2*2+1   LEGAL POINTER ?                EN008 E0233700
         BNLS  CRASH102            NO, CRASH                      EN008 E0233800
         ENDC                      *                              EN008 E0233900
         IFNZ  FOREGRND            IF MORE THAN ONE TASK          EN001 E0234000
         IFZ   DFLOAT-2            IF DPFP HARDWARE               EN001 E0234100
         LH    R8,TCBTAB(R3)       GET A(TCB)                     EN001 E0234200
         IFNZ  EXTMEM                                                EX E0234300
         LPS   TCB.UBSW(R8)       TALK TO UDL                        EX E0234400
         ENDC                                                        EX E0234500
         LH    R0,TCB.OPT(R8)      GET TASK OPTIONS               EN001 E0234600
         LH    R1,TCB.UBOT(R8)     GET A(UDL)                     EN001 E0234700
         THI   R0,TOPT.DFM         TASK USES DPFP ?               EN001 E0234800
         BZS   EXEC.ND             NO                             EN001 E0234900
         STMD  0,UDL.DFRS(R1)      SAVE REGS                      EN001 E0235000
EXEC.ND  EQU   *                   *                              EN001 E0235100
         ENDC  *                   *                              EN001 E0235200
         IFNM  FLOAT-2             IF SPFP HARDWARE               EN001 E0235300
         IFNZ  DFLOAT-2            IF CODE IS NOT ABOVE           EN001 E0235400
         LH    R8,TCBTAB(R3)       FETCH A(ACTIVE TCB)                  E0235500
         IFNZ  EXTMEM                                                EX E0235600
         LPS   TCB.UBSW(R8)       TALK TO UDL                        EX E0235700
         ENDC                                                        EX E0235800
         LH    R0,TCB.OPT(R8)      GET TASK OPTIONS                     E0235900
         LH    R1,TCB.UBOT(R8)     GET A(UDL)                     EN001 E0236000
         ENDC  *                   *                              EN001 E0236100
         THI   R0,TOPT.FPM         DOES TASK USE FLOATING POINT ?       E0236200
         BZS   EXEC2               NO                                   E0236300
         IFZ   FLOAT-3             IF SPFP HARDWARE ON 8/16       EN001 E0236400
         STME  R0,UDL.FPRS(R1)     SAVE TASK'S SPFP REGISTERS     EN001 E0236500
         ELSE                      SPFP HARDWARE NOT ON 8/16      EN001 E0236600
         LHI   R1,UDL.FPRS(R1)     GET A(FLOATING POINT SAVE AREA)      E0236700
         STH   R1,FPSPTR      MODIFY STM INSTR                          E0236800
         LM    R0,FLTREG      GET CURRENT FLOATING POINT REGS.          E0236900
*        ***** MODIFIED INSTRUCTION ************************            E0237000
FPSPTR   EQU   *+2            FLOATING POINT SAVE PTR      *            E0237100
         STM   R0,FLTREG      FLTREG IS CHANGED VIA FPSPTR *            E0237200
*                                       TO POINT TO UDL.FPRS          * E0237300
*        ***** *********************************************            E0237400
         LB    R3,ACTTCB      FETCH ACTIVE TCB PTR                      E0237500
         ENDC  *                   *                              EN001 E0237600
EXEC2    EQU   *                                                        E0237700
         ENDC                                                           E0237800
         ENDC  *                   *                              EN001 E0237900
         IFNZ  JOURNAL0                                                 E0238000
         LH    R4,SAVCC            GET CONDITION CODE                   E0238100
         LH    R5,JRNLAD(R4)                                            E0238200
         LM    R14,0(R5)      PICK UP INFO                              E0238300
         SRLS  R4,1               SHIFT TO GET BYTE ASSIGNMENT          E0238400
         LB    R5,JRNLCD(R4)       JOURNAL CODE FOR THIS CC             E0238500
         SIS   R4,2           SVC CALL ?                                E0238600
         BNZS  JRNLSV                                                   E0238700
         LH    R13,SVCARG     YES...R13=A(SVC PBLK)                     E0238800
         IFNZ  EXTMEM                                                EX E0238900
         SETMR R13,R14            TALK TO PARAM BLK                  EX E0239000
         ENDC                                                        EX E0239100
         LH    R12,0(R13)               R14-R15= SVC OLD PSW            E0239200
         LHR   R6,R15              GET PSW LOC                       EX E0239300
         IFNZ  EXTMEM                                                   E0239400
         SETMR R6,R14              TALK TO SVC INSTRUCTION           EX E0239500
         ENDC                                                           E0239600
         LB    R6,-3(R6)           PICK UP R1R2 FIELD                EX E0239700
         SRLS  R6,4               SVC NO                                E0239800
         OHR   R5,R6               SVC JOURNAL CODE = X'60' + SVC NO    E0239900
JRNLSV   STH   R5,JRNL60+4         SET UP JOURNAL CODE                  E0240000
JRNL60   BAL   R8,JOURNAL                                               E0240100
         DC    0                                                        E0240200
         ENDC                                                           E0240300
         LH    R8,TCBTAB(R3)  FETCH A(ACTIVE TCB)                       E0240400
         B     0                                                        E0240500
ESUBR    EQU   *-2                                                      E0240600
         TITLE SYSTEM QUEUE SERVICE                                     E0240700
*                                                                       E0240800
*##########################################################*            E0240900
* QUEUE TERMINATION INTERRUPT HANDLER                                   E0241000
*                                                                       E0241100
* R2 = A(PSW SAVE AREA) FROM EXEC                                       E0241200
*                                                                       E0241300
* SEE IOTERM                                                            E0241400
*                                                                       E0241500
* RETURN IS TO SCHED                                                    E0241600
*##########################################################*            E0241700
*                                                                       E0241800
         IFZ   .58+.59+.5A+.5B+.5C+.5D                                  E0241900
RORG     EQU   *                                                        E0242000
         ORG   ISPTAB+X'58'+X'58'                                       E0242100
         ENDC                                                           E0242200
QTERM    EQU   *                                                        E0242300
         LM    R14,QTPSW                                                E0242400
         STM   R14,0(R2)           STORE OLD PSW                        E0242500
         B     IOTERM                                                   E0242600
         IFZ   .58+.59+.5A+.5B+.5C+.5D                                  E0242700
         ORG   RORG                                                     E0242800
         ENDC                                                           E0242900
         IFNZ  SVCTWO+SVCSIX+SVCSEVEN+CLOCK                       EN003 E0243000
         TITLE SVC EXECUTIVE                                            E0243100
*                                                                       E0243200
*##########################################################*            E0243300
* SVCEXEC                                                               E0243400
*                                                                       E0243500
* ENTERED ON SVC'S REQUIRING ROADBLOCKS                                 E0243600
*                                                                       E0243700
* PASSES CONTROL TO SVC SERVICE ROUTINE IF AVAILABLE                    E0243800
*        OTHERWISE SETS SVC WAIT BIT IN TCB STATUS                      E0243900
*                                                                       E0244000
* ENTERS SVC SERVICE ROUTINE                                            E0244100
* R2=A(SVC PBLK), R3=TCB PNTR, R7=SVC LOC, R8=A(TCB)                    E0244200
*                                                                       E0244300
* SERVICE ROUTINE RETURNS TO SVCNTRN, WHERE N=SVC NUMBER                E0244400
*##########################################################*            E0244500
*                                                                       E0244600
SVCEXEC  EQU   *                                                        E0244700
         STH   R0,R0SAV       SAVE REGISTERS 0 AND 1                    E0244800
         STH   R1,R1SAV                                                 E0244900
         LH    R1,SVCPSW+2         PICK UP OLD L.C.                     E0245000
         IFNZ  EXTMEM                                                EX E0245100
         SETM  R1,SVCPSW          TALK TO SVC INSTRUCTION            EX E0245200
         ENDC                                                        EX E0245300
         LB    R1,-3(R1)                                                E0245400
         SRLS  R1,4                SVC NO                               E0245500
         LB    R1,SVCCODE-2(R1)    GET ROADBLOCK CODE                   E0245600
         LB    R0,RDBLK(R1)        GET ENTRY FOR SVCNO IN RDBLK TABLE   E0245700
         LHR   R0,R0                                                    E0245800
         BZ    FREESVC                                                  E0245900
         LHI   R0,TSTT.S2M                                              E0246000
         SRHL  R0,0(R1)            SET CORRECT ROADBLOCK BIT            E0246100
         LB    R1,ACTTCB           ROADBLOCKED...SET BUSY BIT           E0246200
         LH    R1,TCBTAB(R1)       GET ACTIVE A(TCB)                    E0246300
         OH    R0,TCB.STAT(R1)     SET SVC WAIT BIT                     E0246400
         STH   R0,TCB.STAT(R1)                                          E0246500
         STM   R2,TCB.RSAV+4(R1)   SAVE SOME REGISTERS                  E0246600
         LM    R14,R0SAV                                                E0246700
         STM   R14,TCB.RSAV(R1)    SAVE THE REST                        E0246800
         IFNZ  JOURNAL0                                                 E0246900
         LIS   R4,4                SET CC FOR JOURNAL CODE EVALUATION   E0247000
         STH   R4,SAVCC                                                 E0247100
         ENDC                                                           E0247200
         BAL   R7,EXECSUB         SAVE FLT PT REGS                      E0247300
         LM    R14,SVCPSW          SAVE PSW                             E0247400
         SIS   R15,4                                                    E0247500
         STM   R14,TCB.CPSW(R8)                                         E0247600
         B     IOTERM              RETURN TO SCHED VIA IOTERM           E0247700
FREESVC  LB    R0,ACTTCB           ROADBLOCK SET TO TCB POINTER         E0247800
         STB   R0,RDBLK(R1)                                             E0247900
         SLLS  R1,5                                                     E0248000
         STM   R2,SVCRSAV+4(R1)    SAVE REGISTERS IN ALTERNATE AREA     E0248100
         LM    R14,R0SAV                                                E0248200
         STM   R14,SVCRSAV(R1)                                          E0248300
         SRLS  R1,4                GET A(SVC ROUTINE)                   E0248400
         LH    R4,ASVC(R1)                                              E0248500
         STH   R4,SEXECR          SAVE RETURN ADDR                      E0248600
         AHR   R1,R1               R1*2 = INDEX FOR SVCCSW              E0248700
         IFNZ  CMPROC*ST           IF CMDP IN SYSTEM              EN012 E0248800
         STH   R1,SEXINX           SAVE INDEX                     EN012 E0248900
         ENDC                      *                              EN012 E0249000
         LM    R14,SVCPSW                                               E0249100
         STM   R14,SVCCSW(R1)                                           E0249200
         IFNZ  FOREGRND                                                 E0249300
         LB    R3,ACTTCB           TCB PNTR                             E0249400
         LH    R8,TCBTAB(R3)       A(TCB)                               E0249500
         IFNZ  CMPROC              *                              EN003 E0249600
         CLHI  R8,CMTCB           WAS CALL MADE FROM CMDP ?             E0249700
         BES   SVCSP                                                    E0249800
         ENDC                      *                              EN003 E0249900
         SRLS  R1,2                                                     E0250000
         LB    R15,TCB.CPRI(R8)   SAVE CURRENT PRIORITY                 E0250100
         STB   R15,SVCPRI(R1)                                           E0250200
         LIS   R15,1                                                    E0250300
         STB   R15,TCB.CPRI(R8)   SET PRIORITY TO 1                     E0250400
         BAL R12,PLINK            READJUST SYSTEM PRI TABLE             E0250500
SVCSP    EQU   *                                                        E0250600
         ENDC                                                           E0250700
SVCSP1   BAL   R7,EXECSUB         SAVE FLT POINT REGS                EX E0250800
         LH    R5,TCB.FLGS(R8)     SET SYSTEM LEVELFLAG           EN001 E0250900
         OHI   R5,TFLG.SLM                                              E0251000
         STH   R5,TCB.FLGS(R8)     *                              EN001 E0251100
         LH    R2,SVCARG          R2=A(SVC PBLK)                     EX E0251200
         IFNZ  CMPROC*ST                                                E0251300
         LH    R1,SEXINX           RESTORE INDEX                  EN012 E0251400
         LM    R14,SVCCSW(R1)      GET OLD PSW                    EN012 E0251500
         IFNZ  EXTMEM                                                EX E0251600
         SETMR R15,R14            CONVERT SVC INSTRUCTION ADDR       EX E0251700
         ENDC                                                           E0251800
         LB    R12,-3(R15)         GET SVC NUMBER                       E0251900
 SRLS R12,4                                                             E0252000
 SIS R12,3 DON'T CHECK ADDRESS IF SVC3                                  E0252100
 BES SEXEX0  EXIT                                                       E0252200
 ENDC                                                                   E0252300
         IFNZ  EXTMEM                                                EX E0252400
         SETM  R2,SVCPSW          CONVERT AND TALK TO PARAM BLOCK    EX E0252500
         EPSR  R5,R5                                                 EX E0252600
         STB   R5,SEPSW+1         SAVE FOR ENTRY INTO ALL SVCS       EX E0252700
         ENDC                                                        EX E0252800
 IFNZ CMPROC*ST                                                         E0252900
         CLHI  R15,TCB.RSAV+22(R8) SPECIAL FOR DELAY START ?      EN012 E0253100
         BNES  SEXADC              NO                                   E0253200
         LHI   R15,SVCRSAV+22      MAKE IT POINT TO SVCRSAV INSTEAD     E0253300
         STH   R15,SVCCSW+2        CHANGE CSW                           E0253400
SEXEX0   BS    SEXEX                                                    E0253600
SEXADC   LHR   R14,R2              GET A(PBLK)                    EN012 E0253700
         CLH   R15,UBOT            DONT CHECK IF SVC IN SYSTEM          E0253710
         BLS   SEXEX                                                    E0253720
         LHI   R15,SEXADR          ERROR EXIT                     EN012 E0253800
         THI   R2,1                ODD ADDRESS ?                        E0253900
         BNZR  R15                 YES, TAKE ERROR                      E0254000
         BAL   R12,ADD.BC          CHECK IT                       EN012 E0254100
SEXEX    EQU   *                   *                              EN012 E0254200
         ENDC                      *                              EN012 E0254300
         LPSW  SEPSW               GET OUT                              E0254400
SVCCODE  DB    0,0,0,SVCTWO!CLK,SVCTWO!CLK,SVCTWO!CLK+SVCSIX,0,0        E0254500
         IFNZ  CMPROC*ST                                                E0254600
SEXADR   LH    R1,SEXINX           GET INDEX                      EN012 E0254700
         LM    R14,SVCCSW(R1)      GET OLD PSW                    EN012 E0254800
         SRLS  R1,1                INDEX FOR XSVC                 EN012 E0254900
         LH    R6,XSVC(R1)         GET RETURN ADDRESS             EN012 E0255000
         B     SVCLA               PROCESS ILGL SVC ADDR          EN012 E0255100
SEXINX   DS    2                   SAVED SVCCSW INDEX             EN012 E0255200
         ENDC                      *                              EN012 E0255300
         IFZ   .60+.61                                                  E0255400
RORG     EQU   *                                                        E0255500
         ORG   ISPTAB+X'60'+X'60'                                       E0255600
         ENDC                                                           E0255700
SEPSW    DC    ETSTAT                                                   E0255800
SEXECR DC 0                                                             E0255900
         IFZ   .60+.61                                                  E0256000
         ORG   RORG                                                     E0256100
         ENDC                                                           E0256200
         EJECT                                                          E0256300
         IFNZ  OVERLAY&CMPROC      IF OV'D SYSTEM AND CMDP IN     EN003 E0256400
*                                                                       E0256500
*        SVC'S RETURN HERE TO PUT TASK INTO WAIT                        E0256600
*                                                                       E0256700
         IFNZ  OVTWO                                                    E0256800
LDS2.R   XHR   R1,R1                                                    E0256900
         BS    SVCWAT                                                   E0257000
         ENDC                                                           E0257100
         IFNZ  OVSIX                                                    E0257200
LDS6.R   LIS   R1,SVCTWO!CLK       SVC 6 ENTRY                    EN003 E0257300
         BS    SVCWAT                                                   E0257400
         ENDC                                                           E0257500
         IFNZ  OVSEVEN                                                  E0257600
LDS7.R   LIS   R1,SVCTWO!CLK+SVCSIX SVC 7 ENTRY                   EN003 E0257700
         ENDC                                                           E0257800
SVCWAT   LHI   R4,SUSTAT                                                E0257900
         EPSR  R5,R4                                                    E0258000
         LHI   R5,TSTT.S2M                                              E0258100
         SRHL  R5,0(R1)                                                 E0258200
         LB    R6,RDBLK(R1)        GET TCB POINTER                      E0258300
         LH    R2,TCBTAB(R6)       A(TCB)                               E0258400
         LH    R4,TCB.STAT(R2)     TASK STATUS                          E0258500
         OHR   R4,R5          SET SVC WAIT                              E0258600
         STH   R4,TCB.STAT(R2)                                          E0258700
         LHR   R7,R1                                                    E0258800
         SLLS  R7,2                INDEX INTO SVCCSW                    E0258900
         LCS   R4,4                                                     E0259000
         AHM   R4,SVCCSW+2(R7)     BACK UP PSW TO RE-ISSUE SVC          E0259100
         XHI   R5,-1               FLIP BITS                            E0259200
         NH    R5,CMTCB+TCB.STAT   RESET SVC WAIT IN CMTCB              E0259300
         STH   R5,CMTCB+TCB.STAT   AND STORE BACK                       E0259400
         B     SVCRTW                                                   E0259500
         ENDC                                                           E0259600
         EJECT                                                          E0259700
*                                                                       E0259800
*        SVC'S RETURN HERE TO RESET ROADBLOCK                           E0259900
*                                                                       E0260000
         IFNZ  SVCTWO!CLK          IF SVC 2 IN SYSTEM             EN003 E0260100
SVC2RTN  XHR   R1,R1                                                    E0260200
         BS    SVCRTN                                                   E0260300
         ENDC                      *                              EN003 E0260400
         IFNZ  SVCSIX+SVCFIVE                                           E0260500
SVC6RTN  LIS   R1,SVCTWO!CLK       *                              EN003 E0260600
         BS    SVCRTN                                                   E0260700
         ENDC                                                           E0260800
         IFNZ  SVCSEVEN            *                              EN003 E0260900
SVC7RN   LIS   R1,SVCTWO!CLK+SVCSIX                               EN003 E0261000
         ENDC                      *                              EN003 E0261100
SVCRTN   EQU   *                                                        E0261200
         LHI   R4,SUSTAT           CHANGE STATUS TO SUPERVISOR          E0261300
         EPSR  R5,R4                                                    E0261400
         LHI   R5,X'FFFF'-TSTT.S2M                                      E0261500
         SRHA  R5,0(R1)                                                 E0261600
         LIS   R6,2                                                     E0261700
NXTTCB   LH    R3,TCBTAB(R6)       A(TCB)                               E0261800
         LH    R4,TCB.STAT(R3)     RESET SVC WAIT BIT                   E0261900
         NHR   R4,R5                                                    E0262000
         STB   R4,TCB.STAT+1(R3)                                        E0262100
         AIS   R6,2                INCREMENT THROUGH TCBTAB             E0262200
         CLHI  R6,TTAB.END                                              E0262300
         BLS   NXTTCB                                                   E0262400
SVCRTW   XHR   R0,R0                                                    E0262500
         STB   R0,RDBLK(R1)        UNSET ROADBLOCK                      E0262600
         SLLS  R1,5                                                     E0262700
         LM    R3,SVCRSAV+6(R1)    RESTORE TCB REGISTERS                E0262800
         LB    R2,ACTTCB                                                E0262900
         LH    R2,TCBTAB(R2)       GET A(TCB)                           E0263000
         STM   R3,TCB.RSAV+6(R2)   SAVE SOME REGISTERS                  E0263100
         LM    R13,SVCRSAV(R1)                                          E0263200
         STM   R13,TCB.RSAV(R2)    SAVE THE REST                        E0263300
         SRLS  R1,3                                                     E0263400
         LM    R14,SVCCSW(R1)      RESTORE TCB PSW                      E0263500
 IFNZ PCLOCK                                                            E0263600
 CLHI R15,SVCRSAV+22                                                    E0263700
  BNES SVCRTM                                                           E0263800
  LHI R15,TCB.RSAV+22(R2)                                               E0263900
  ENDC                                                                  E0264000
SVCRTM    STM   R14,TCB.CPSW(R2)                                        E0264100
         IFNZ  EXTMEM              *                                 EX E0264200
         SETMR R15,R14             *                                 EX E0264300
         ENDC                      *                                 EX E0264400
         CLHI  R15,CMTCB      WAS CALL MADE FROM SYSTEM LEVEL ?         E0264500
         BL    SVCCPR         YES...DO NOT RESET SYSTEM LEVEL FLAG      E0264600
         LH    R4,TCB.FLGS(R2)     RESET SYSTEM LEVEL FLAG        EN001 E0264700
         THI   R4,TFLG.TPM         TASK TRAP PENDING ?                  E0264800
         BZS   SVCCSL                                                   E0264900
         LH    R12,TCB.UBOT(R2)    YES...INITIALIZE FOR TASK SWAP       E0265000
         LHR   R13,R2              A(TCB)                               E0265100
         LHI   R12,UDL.TSKO(R12)   A(OLD TSW AREA)                      E0265200
         IFNZ  EXTMEM                                                EX E0265300
         LPS   TCB.UBSW(R2)       TALK TO UDL                        EX E0265400
         ENDC                                                        EX E0265500
         BAL   R10,TSW.SWP         SWAP TASK TRAP TSW                   E0265600
SVCCSL   NHI   R4,-1-TFLG.SLM-TFLG.TPM  RESET TRAP PENDING FLAG         E0265700
         STH   R4,TCB.FLGS(R2)     *                              EN001 E0265800
SVCCPR   EQU   *                                                        E0265900
         IFNZ  FOREGRND                                                 E0266000
         IFNZ  CMPROC              *                              EN003 E0266100
         CLHI  R2,CMTCB            WAS CALL MADE FROM CMDP ?            E0266200
         BES   SVCRIO             YES...EXIT                            E0266300
         ENDC                      *                              EN003 E0266400
         SRLS  R1,2               NO...RESTORE TASK'S CURRENT PRIORITY  E0266500
         LB    R15,SVCPRI(R1)                                           E0266600
         STB   R15,TCB.CPRI(R2)                                         E0266700
         BAL   R12,PLINK          READJUST SYSTEM PRI TABLE             E0266800
         ENDC                                                           E0266900
SVCRIO   B     IOTERM                                                   E0267000
         ENDC                      *                              EN003 E0267100
         TITLE SVC 1 I/O SERVICE                                        E0267200
*                                                                       E0267300
*##########################################################*            E0267400
*                                                                       E0267500
*                                                                       E0267600
* SVC 1 SERVICE ROUTINE                                                 E0267700
*                                                                       E0267800
*        SVC   1,PBLK             I/O SUPERVISOR CALL                   E0267900
*        '                                                              E0268000
*        '                                                              E0268100
* PBLK   DC    FUNCTION CODE & LOGICAL UNIT                             E0268200
*        DC    STATUS AND  DEVICE NUMBER                                E0268300
*        DC    ADDRESS OF FIRST DATA BYTE                               E0268400
*        DC    ADDRESS OF LAST DATA BYTE                                E0268500
*        DC    FULLWORD RANDOM ACCESS ADDRESS                           E0268600
*        DS    2                   RETURNED LENGTH OF LAST TRANSFER     E0268700
*                                                                       E0268800
*##########################################################*            E0268900
*                                                                       E0269000
*                                                                       E0269100
*              THE FOLLOWING DEPICTS THE FORMAT                         E0269200
*              OF THE SVC 1 PARAMETER BLOCK:                            E0269300
*                                                                       E0269400
*                                                                       E0269500
*         **************************************                        E0269600
* PRBLK+0 *  FUNCTION CODE  *  LOGICAL UNIT    *                        E0269700
*         **************************************                        E0269800
* PRBLK+2 *      STATUS     *  DEVICE ADDRESS  *                        E0269900
*         **************************************                        E0270000
* PRBLK+4 *        ADDRESS OF START OF BUFFER  *                        E0270100
*         **************************************                        E0270200
* PRBLK+6 *        ADDRESS OF END OF BUFFER    *                        E0270300
*         **************************************                        E0270400
* PRBLK+8 *             RANDOM                 *                        E0270500
*         *  ***  ***  ***  ***  ***  ***  *** *                        E0270600
*         *             ADDRESS                *                        E0270700
*         **************************************                        E0270800
* PRBLK+C *          LENGTH OF DATA TRANSFER   *                        E0270900
*         **************************************                        E0271000
         SPACE 2                                                        E0271100
*                                                                       E0271200
*        RETURNED STATUS                                                E0271300
*                                                                       E0271400
*  *  0  *  1  *  2  *  3  *  4  *  5  *  6  *  7  *                    E0271500
*  *************************************************                    E0271600
*  *     *     *     *     *     *     *     *     *                    E0271700
*  * ERR *FUNC *  DU * EOM * EOF *UNRV *RECV * LU  *                    E0271800
*  *     *     *     *     *     *     *     *     *                    E0271900
*  *************************************************                    E0272000
         EJECT                                                          E0272100
SVC1     EQU   *                                                        E0272200
GRSPTR1  EQU   *+2                                                      E0272300
         STM   R0,RSAVE            MODIFIED INSTRUCTION---PNTS TO TCB   E0272400
         IFNZ  JOURNAL0                                                 E0272500
         LIS   R4,4                                                     E0272600
         STH   R4,SAVCC                                                 E0272700
         ENDC                                                           E0272800
         BAL   R7,EXECSUB         SAVE FLT PT REGS                      E0272900
         LM    R14,SVCPSW                                               E0273000
         NHI   RE,PSWCCCL    SET THE CONDITON CODE TO 0                 E0273100
         STM   R14,TCB.CPSW(R8)                                         E0273200
         LHR   R2,R3              GET TCB PNTR IN R2                    E0273300
         LH    R3,SVCARG          GET A(PBLK) IN R3                     E0273400
         IFNZ  EXTMEM             TALK TO PARAM BLOCK                EX E0273500
         SETM  R3,SVCPSW                                             EX E0273600
         EPSR  R10,R10                                            EX    E0273700
         STH   R10,SVCPBW          SAVE PB PSW                       EX E0273800
         ENDC                                                     EX    E0273900
         IFNZ  CMPROC*ST                                                E0274000
         LHI   R6,SUSTAT           *                              EN012 E0274100
         LHI   R10,SVCILA          ERROR EXIT                     EN012 E0274200
         LHR   R14,R3              GET A(PBLK)                    EN012 E0274300
         THI   R14,1               ODD ADDRESS                    EN012 E0274400
         BNZR  R10                 YES, ADRS-ERR                  EN012 E0274500
         BAL   R12,ADDCHK1         VALID ADDRESS ?                EN012 E0274600
         LHR   R3,R14              RESTORE A(PBLK)                EN012 E0274700
         ENDC                      *                              EN003 E0274800
         LH    R4,0(R3)           FUN. CODE + LU                        E0274900
         XHR   R7,R7              CLEAR STATUS REG.                     E0275000
         LHR   R13,R8              SAVE TCB ADDRESS FOR ADDTSKQ         E0275100
         LB    R12,TCB.NLU(R8)     GET NUMBER OF LUS FOR CHECKS         E0275200
         LBR   R5,R4               ISOLATE SPECIFIED LU                 E0275300
         AIS   R5,1                TAKE FMGR LU INTO ACCOUNT            E0275400
         LBR   R5,R5               MASK IT OFF TO A BYTE                E0275500
         CLHR  R5,R12              IS IT A VALID LU #                   E0275600
         BPS   S1.ILB              IF NOT,RETURN ILLEGAL LU             E0275700
         LHR   R5,R5               FMGR LU ?                            E0275800
         BNZS  S1.NFM              NO                                   E0275900
         IFNZ  EXTMEM                                             EX    E0276000
         LB    R1,SVCPSW+1         CHECK IF CALL FROM USER        EX    E0276100
         CLHI  R1,X'70'                                           EX    E0276200
         BNLS  S1.ILB              YES,ERROR                      EX    E0276300
         ENDC                                                     EX    E0276400
         CLH   R15,UBOT            CALL FROM SYSTEM ?                   E0276500
S1.ILB   BNL   ILLU                NO,ILLEGAL LU                        E0276600
S1.NFM   EQU   *                                                        E0276700
         LHI   R1,TCB.LTAB-2(R8)   LU ENTRY = TCB.LTAB - 2              E0276800
         AHR   R1,R5               + 2 *(LU # + 1)                      E0276900
         AHR   R1,R5                                                    E0277000
         LH    R1,0(R1)            PICK UP LU ENTRY                     E0277100
         BZS   S1.ILB              IF ZERO,IT IS UNASSIGNED             E0277200
         LHR   R11,R1              ASSUME DCB                           E0277300
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0277400
         CLH   R1,UBOT             IS IT AN FCB ?                       E0277500
         BLS   S1.DCB    IF BELOW SYSTOP IT IS A DCB                    E0277600
         IFNZ  EXTMEM                                                EX E0277700
         LH    R11,FPSW                                              EX E0277800
         EPSR  R0,R11             TALK TO FCB                        EX E0277900
         ENDC                                                        EX E0278000
         LH    R11,FCB.DCB(R1)  IF FCB LOAD THE DCB ADDRESS TOO         E0278100
         IFNZ  EXTMEM                                                EX E0278200
         LPSR  R0                  RESTORE TO PARAM BLOCK            EX E0278300
         ENDC                                                        EX E0278400
         ENDC                                                           E0278500
S1.DCB   LIS   R7,1                PT R/P ASSIGNMENT IS DCB+1           E0278600
         NHR   R7,R1               IF PTRP R7=1 ELSE R7=0               E0278700
         SHR   R1,R7               RESET BIT 15 IF NECESSARY            E0278800
         SHR   R11,R7    IN R11 ALSO                                    E0278900
         STH   R11,DCBSAV          SAVE THE DCB                         E0279000
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0279100
         STH   R7,FCBSAV           CLEAR  THE FCB SAVE ADDR             E0279200
         ENDC                                                           E0279300
CHKBSY   AHR   R12,R12  ATTRIBUTE BYTE = 2*NLU                          E0279400
         AHI   R12,TCB.LTAB(R8)    + TCB.LTAB                           E0279500
         AHR   R12,R5              + LU# + 1                            E0279600
         LHR   R8,R4               GET FUNCTION CODE                    E0279700
         SRA   R8,8                INTO LOW ORDER BYTE                  E0279800
         BMS   CHKCMD    IF NEGATIVE IT IS A CMD                        E0279900
         LB    R0,0(R12)           PICK UP ATTRIBUTES OF ASSIGNMENT     E0280000
         XHI   R0,-1               FLIP BITS                            E0280100
         NHR   R0,R8               TURN OFF ANY LEGAL BITS              E0280200
         BNZ   ILFUNC              IF ANY BITS LEFT ON THEY ARE ILLEGAL E0280300
         B     OKFUNC              IF NOT IT IS OK                      E0280400
CHKCMD   NHI   R8,X'7F'            AND OUT COMMAND BIT                  E0280500
         IFNZ  HALTIO              IF HALT I/O SUPPORT            EN009 E0280600
         BNZ   S1.CNH              NOT HALT I/O                   EN009 E0280700
         CLHR  R1,R11              IS THIS A FILE REQUEST ?       EN009 E0280800
         BNE   ILFUNC              YES, RETURN ILLEGAL FUNCTION   EN009 E0280900
         LH    R5,DCB.ATRB(R11)    PICK UP DEVICE ATTRIBUTES      EN009 E0281000
         THI   R5,DATR.HIM         SUPPORT HALT I/O ?             EN009 E0281100
         BZ    ILFUNC              NO, ILLEGAL FUNCTION           EN009 E0281200
         IFNZ  BISYNC              IF SYSTEM HAS BISYNC           EN009 E0281300
         LH    R15,DCB.FLGS(R11)   GET DEVICE FLAGS               EN009 E0281400
         THI   R15,DFLG.BIM        BISYNC DEVICE ?                EN009 E0281500
         BZS   S1.HLNB             NO                             EN009 E0281600
         THI   R15,DFLG.BBM        DEVICE BUSY ?                  EN009 E0281700
         BZ    ILHLT               NO, ERROR X'82DN'              EN009 E0281800
         BAL   R12,BISHLT          HALT THE I/O                   EN009 E0281900
         B     S1.SHIO             RETURN STATUS                  EN009 E0282000
S1.HLNB  EQU   *                   *                              EN009 E0282100
         ENDC                      *                              EN009 E0282200
         LH    R15,DCB.ISR(R11)    GET ISR POINTER                EN009 E0282300
         CLHI  R15,DCB.NOPI(R11)   DRIVER BUSY ?                  EN009 E0282400
         BE    ILHLT               NO I/O GOING ON                EN009 E0282500
         CLB   R2,DCB.RSAV(R11)    DRIVER BUSY THIS TASK          EN009 E0282600
S1.ILHLT BNE   ILHLT               NO I/O GOING ON                EN009 E0282700
         CLB   R4,R4-R2*2+1+DCB.RSAV(R11) SAME LU ?               EN009 E0282800
         BNES  S1.ILHLT            NO I/O GOING ON                EN009 E0282900
S1.HLTF  LH    R15,DCB.FLGS(R11)   GET FLAGS                      EN009 E0283000
         OHI   R15,DFLG.HIM        SET HALT I/O FLAG              EN009 E0283100
         STH   R15,DCB.FLGS(R11)   *                              EN009 E0283200
         IFNZ  CMPROC              *                              EN003 E0283300
         CLHI  R11,DMYDCB          HALT I/O ON CONSOLE ?          EN009 E0283400
         BES   HIODUM              YES, GO PROCESS                EN009 E0283500
         ENDC                      *                              EN003 E0283600
         BAL   R12,SVC1HIO         GO ISSUE THE SINT              EN009 E0283700
S1.ZHIO  XHR   R7,R7               *                              EN009 E0283800
S1.SHIO  STH   R7,SVC1.STA(R3)     SET PBLK STATUS                EN009 E0283900
         B     IOTERM              GO SCHEDULE THE TASK           EN009 E0284000
         IFNZ  CMPROC              *                              EN003 E0284100
HIODUM   LH    R15,CFLG            GET CMDP FLAGS                 EN009 E0284200
         THI   R15,X'0040'         HALT TO REAL CONSOLE REQUIRED? EN009 E0284300
         BZS   S1.ZHIO             NO                             EN009 E0284400
         LHI   R11,CNSDCB          POINT TO REAL DCB              EN009 E0284500
         B     S1.HLTF             GO HALT THE REQUEST            EN009 E0284600
         ENDC                      *                              EN003 E0284700
S1.CNH   EQU   *                   COMMAND OTHER THAN HALT I/O    EN009 E0284800
         ENDC                      *                              EN009 E0284900
         THI   R8,S1FC.WFM         WRITE FILE MARK ?              EN009 E0285000
         BZS   S1.CHKC   IF NOT CHECK FOR ALLOWABLE CMD                 E0285100
         LB    R5,0(R12)          IF WFM SEE IF ASSIGNED FOR WRITE      E0285200
         THI   R5,TLAT.WRM                                              E0285300
         BZS   S1.ZST1             IF NOT WRITE ENABLED,IGNORE IT       E0285400
S1.CHKC  LH    R5,DCB.ATRB(R1)     ASSUME DCB PICK UP ATTRIBUTES        E0285500
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0285600
         CLHR  R1,R11              IS IT REALLY AN FCB                  E0285700
         BES   S1.CHKCA            IF EQUAL IT IS A DCB GO CHECK ATTR   E0285800
         IFNZ  EXTMEM                                                EX E0285900
         LPS   FPSW               TALK TO FCB                        EX E0286000
         ENDC                                                        EX E0286100
         LH    R5,FCB.ATRB(R1)     IF NOT PICK UP FCB ATRB              E0286200
S1.CHKCA EQU   *                                                        E0286300
         ENDC                                                           E0286400
         NHR   R8,R5               TURN OFF ANY UNSUPPORTED FUNCTIONS   E0286500
S1.ZST1  BZ    SETZST              IF NOTHING LEFT, RETURN 0 STATUS     E0286600
OKFUNC   EQU   *                                                        E0286700
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0286800
         CLHR  R1,R11   IS IT AN FCB?                                   E0286900
         BE    CHKBSYFG       IF NOT GO CHECK WAIT ONLY                 E0287000
         STH   R1,FCBSAV           SAVE FCB ADDR                        E0287100
         LHR   R5,R11                  A(DCB) FOR BUSY1                 E0287200
         IFNZ  EXTMEM                                                   E0287300
         LPS   FPSW               TALK TO FCB                        EX E0287400
         ENDC                                                        EX E0287500
         LB    R9,FCB.FLGS(R1)     YES ...SET FCB IN USE FLAG           E0287600
         THI   R9,FFLG.IUM             FCB IN USE ?                     E0287700
         BZS   S1.SIU    NO                                             E0287800
         THI   R4,X'E800'              CMD/RD/WR/WAIT ?                 E0287900
         BNZS  BUSY1B                  YES, GO WAIT                     E0288000
         THI   R4,X'0200'              TEST I/O COMP ?                  E0288100
S1.ZST2  BZ    SETZST              NO, IGNORE CALL                      E0288200
BUSY1B   B     BUSY1                   YES, SET CC=F                    E0288300
S1.SIU   OHI   R9,FFLG.IUM                                              E0288400
         BS    S1.CWO                                                   E0288500
CHKBSYFG EQU   *                                                        E0288600
         ENDC                                                           E0288700
         LH    R9,DCB.BUSY(R1)   GET ADDRESS OF BUSY FLAG               E0288800
         LHI   R10,BUSY            SET TRANSFER ADDR                    E0288900
         LHI   R12,ISSTAT                                               E0289000
         EPSR  R6,R12              CHANGE TO IS STATE                   E0289100
         LH    R5,0(R9)     PICK UP THE FLAG ITSELF                     E0289200
         BNZ   S1.SU               IF NOT ZERO DEVICE IS BUSY           E0289300
S1.CWO   EQU   *                                                        E0289400
         LHI   R10,S1.CS           SET TRANSFER ADDRESS                 E0289500
         LHI   R6,SUSTAT                                                E0289600
         THI   R4,X'E000'          IS IT WAIT-ONLY OR TEST I/O          E0289700
         BZ    S1.SU               IF SO JUST RETURN                    E0289800
         IFNZ  CMPROC*ST                                                E0289900
         LHR   R4,R4               COMMAND ?                            E0290000
         BM    S1.OK                                                    E0290100
         IFNZ  EXTMEM             TALK TO PB                         EX E0290200
         LPS   SVCPBW              *                                 EX E0290300
         ENDC                                                        EX E0290400
         LM    R14,SVC1.SAD(R3)                                         E0290500
         LHI   R10,SVCILA          SET TRANSFER ADDR                    E0290600
         THI   R14,1               ODD ADDRESS ?                  EN012 E0290700
         BNZ   S1.SU               YES, ADRS-ERR                  EN012 E0290800
         CLHR  R15,R14   STARTING ADDR < ENDING ADDR ?                  E0290900
         BL    S1.SU     NO...ILLEGAL                                   E0291000
         LH    R8,TCBTAB(R2)  A(TCB)                                    E0291100
         LHR   R5,R15                                                   E0291200
         IFNZ  EXTMEM             TALK TO SAD                        EX E0291300
         SETM  R14,SVCPSW                                            EX E0291400
         ENDC                                                        EX E0291500
         BAL   R12,ADDCHK1         CHECK STARTING ADDR                  E0291600
         IFNZ  EXTMEM                                                EX E0291700
         SETM  R5,SVCPSW          TALK TO EAD                        EX E0291800
         ENDC                                                        EX E0291900
         LHR   R14,R5                                                   E0292000
         BAL   R12,ADDCHK1         CHECK ENDING ADDR                    E0292100
S1.OK    EQU   *                                                        E0292200
         ENDC                      *                              EN003 E0292300
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0292400
         CLHR  R1,R11   IS IT AN FCB???                                 E0292500
         BNES  SETBFCB                 IF SO GO SET FCB IN USE FLAG     E0292600
         ENDC                                                           E0292700
         LHI   R10,SETDCB          SET TRANSFER ADDR                    E0292800
         STH   R1,0(R9)    SET BUSY FLAG TO DCB ADDRESS                 E0292900
S1.SU    EPSR  R12,R6              CHANGE BACK TO SU STAT               E0293000
         BR    R10                                                      E0293100
         IFNZ  DISCMGT&SVCSEVEN    IF FCB SUPPORT                 EN003 E0293200
SETBFCB  EQU   *                                                        E0293300
         IFNZ  EXTMEM                                                EX E0293400
         LPS   FPSW               TALK TO FCB                        EX E0293500
         ENDC                                                        EX E0293600
         STB   R9,FCB.FLGS(R1)     SAVE IN FCB                          E0293700
         ENDC                                                           E0293800
SETDCB   EQU   *                                                        E0293900
         LB    R6,DCB.DN(R11)      GET THE DN INTO R6 FOR DRIVER     EX E0294000
         SLLS  R2,8                SET UP CALLER AND I/O WAIT POINTERS  E0294100
         LH    R3,SVCARG          TALK TO PB(R3)                     EX E0294200
         IFNZ  EXTMEM                                                EX E0294300
         SETM  R3,SVCPSW                                             EX E0294400
         EPSR  R15,R15                                               EX E0294500
         LH    R14,DCB.FLGS(R11)   GET FLAGS                         EX E0294600
         THI   R14,DFLG.BLM+DFLG.SDM DISC, TAPE OR FLOPPY ?          EX E0294700
         BNZS  S1.NPP              YES, DON'T SET PPSW               EX E0294800
         STH   R15,DCB.PPSW(R11)   STORE PB PSW FOR FUTURE USE       EX E0294900
S1.NPP   EQU   *                   *                                 EX E0295000
         ENDC                      *                                 EX E0295100
         IFNZ  CMPROC              *                              EN003 E0295200
         CLHI  R1,CNSDCB       IS IT THE CONSOLE DEVICE                 E0295300
         BE    S1TTY               IF SO GO PROCESS                     E0295400
         CLHI  R1,DMYDCB           HOW ABOUT DUMMY                      E0295500
         BE    S1DUM               IF SO GO PROCESS                     E0295600
         ENDC                      *                              EN003 E0295700
         OHR   R1,R7               OR THE LOW ORDER BIT BACK IN         E0295800
         XHR   R7,R7                                                    E0295900
         LH    R8,DCB.INIT(R11)                                         E0296000
         BR    R8                 GO TO DRIVER                          E0296100
         IFNZ  EXTMEM                                             EX    E0296200
SVCPBW   DS    2                   PB PSW SAVE AREA                  EX E0296300
         ENDC                                                     EX    E0296400
         EJECT                                                          E0296500
.0       EQU .98+.99+.9A+.9B+.9C+.9D+.9E+.9F+.A0+.A1+.A2+.A3            E0296600
         IFZ  .0                                                        E0296700
RORG     EQU   *                                                        E0296800
         ORG   ISPTAB+X'98'+X'98'                                       E0296900
         ENDC                                                           E0297000
*                                                                       E0297100
*        DRIVER RETURNS HERE ON                                         E0297200
*        SUCCESSFUL SETUP CALL                                          E0297300
*                                                                       E0297400
IOTWAT   LHR   R4,R4               COMMAND CALL ?              02*10/73 E0297500
         BM    IOTERM              YES                         02*10/73 E0297600
         THI   R4,X'800'           REQUEST I/O WAIT ?          02*10/73 E0297700
         BZ    IOTERM             NO                                    E0297800
         LH    R1,DCBSAV           GET A(DCB)                           E0297900
         SRLS  R2,8                FETCH CALLER POINTER                 E0298000
         B     IOWAIT                                                   E0298100
         IFZ   .0                                                       E0298200
         ORG   RORG                                                     E0298300
         ENDC                                                           E0298400
*                                                                       E0298500
*        PROCESS A BUSY DEVICE ON AN SVC 1 REQUEST                      E0298600
*                                                                       E0298700
BUSY     EQU   *                                                        E0298800
         IFNZ  DISCMGT                                                  E0298900
         IFZ   PROCL              IF NO LIST HW                      EX E0299000
         LB    RE,SEEKQ+1          GET # OF SLOTS USED            EN008 E0299100
         LHR   RE,RE               ANYTHING THERE ?               EN008 E0299200
         BZS   BUS.NOE             NO, SKIP RBL                   EN008 E0299300
         ENDC  *                   *                              EN008 E0299400
         RBL   RE,SEEKQ            CHECK THE SEEKQ                      E0299500
         IFNZ  PROCL              IF LIST HW                         EX E0299600
         BOS   BUS.NOE             IF NOTHING THERE, SKIP SINT          E0299700
         ENDC  *                   *                              EN008 E0299800
         SINT  0(RE)               FIRE HER UP                          E0299900
BUS.NOE  EQU   *                                                        E0300000
         ENDC                                                           E0300100
         NHI   R5,X'FFFE'          MAKE ADDR EVEN                       E0300200
         LHR   R4,R4                   COMMAND ?                        E0300300
         BM    BUSY7               YES,GO WAIT                          E0300400
         THI   R4,X'6000'   IS IT WAIT ONLY OR TEST I/O                 E0300500
         BNZ   BUSY1   IF NOT THEN GO PUT INTO I/O WAIT                 E0300600
         THI   R4,X'0A00'          IS IT WAIT ONLY OR TEST I/O ?  EN012 E0300700
         BZ    SETZST              IF NOT, IGNORE CALL            EN012 E0300800
         CLB   R2,DCB.RSAV(R5)     SEE IF TCB PTR + LU ARE THE SAME     E0300900
         BNES  BUS.ZST1            IF TCB PTR NOT SAME GO EXIT WITH CC=0E0301000
         LH    RE,DCB.RSAV+2(R5)   PICK UP PARBLK ADDRESS               E0301100
         IFNZ  EXTMEM                                             EX    E0301200
         LPS   SVCPBW              TALK TO PB                        EX E0301300
         ENDC                                                     EX    E0301400
         LB    R6,SVC1.LU(R3)                                        EX E0301500
         IFNZ  EXTMEM                                                   E0301600
         LPS   DCB.PPSW(R5)       TALK TO ALREADY BUSY DCB           EX E0301700
         ENDC                                                           E0301800
         CLB   R6,SVC1.LU(RE)     IS IT THE SAME LU???               EX E0301900
BUS.ZST1 BNE   SETZST              IF NOT, THEN RETURN CC=0       EN012 E0302000
*                                                                 EN012 E0302100
*                                                                 EN012 E0302200
*                                                                 EN012 E0302300
*                                                                 EN012 E0302400
*                                                                 EN012 E0302500
*                                 *                            02*10/73 E0302600
BUSY1    EQU   *                                                        E0302700
         THI   R4,X'200'           UNCONDITIONAL PROCEED                E0302800
BUS.BAB  BZS   BUSY7               IF NOT GO WAIT THE TASK              E0302900
         LH    RE,TCB.CPSW(R13)    PICK UP CURRENT STATUS               E0303000
         OHI   RE,X'F'             SET CC=F                             E0303100
         STH   RE,TCB.CPSW(R13)                                         E0303200
         OHI   R4,X'0800'          SET WAIT SO NO TRAP            EN012 E0303300
         B     SETZST              SET STATUS = 0                 EN012 E0303400
BUSY7    EQU   *                                                        E0303500
         LHR   R1,R5               GET BUSY DCB IN R1                   E0303600
 LCS R7,4 BACK UP CURRENT LOC                                           E0303700
         AHM   R7,TCB.CPSW+2(R13)                                       E0303800
         IFNZ  DISCMGT&SVCSEVEN    *                              EN003 E0303900
         LH    R7,DCB.FLGS(R1)     BULK DEVICE ?                        E0304000
         BNM   IOWAIT              NO...GO PUT TASK IN IO WAIT          E0304100
         LH    R7,STPDIO           STOP DISC I/O IN PROGRESS ?          E0304200
         BZ    IOWAIT              NO...GO PUT TASK IN IO WAIT          E0304300
         LH    R7,FCBSAV           FCB REQUEST ?                        E0304400
         BZS   BUS.W                                                    E0304500
         IFNZ  EXTMEM                                                EX E0304600
         LPS   FPSW               TALK TO FCB                        EX E0304700
         ENDC                                                        EX E0304800
         LB    R6,FCB.FLGS(R7)     YES...RESET FCB IN USE FLAG          E0304900
         NHI   R6,-1-FFLG.IUM                                           E0305000
         STB   R6,FCB.FLGS(R7)                                          E0305100
BUS.W    EQU   *                                                        E0305200
         LH    R7,TCB.STAT(R13)    YES...PUT IN SVC7 WAIT UNTIL         E0305300
         OHI   R7,TSTT.S7M         SLIDE FCB COMPLETED                  E0305400
         STH   R7,TCB.STAT(R13)                                         E0305500
         IFZ   PROCL               IF NO LIST HW                  EN008 E0305600
         LB    RE,SEEKQ+1          GET # OF SLOTS USED            EN008 E0305700
         LHR   RE,RE               ANYTHING THERE ?               EN008 E0305800
         BZS   BUS.SF              NO, SKIP RBL                   EN008 E0305900
         ENDC  *                   *                              EN008 E0306000
         RBL   R7,SEEKQ            REMOVE NEXT ENTRY FROM SEEK QUEUE    E0306100
         IFNZ  PROCL              IF LIST HW                         EX E0306200
         BOS   BUS.SF              NO ENTRIES                           E0306300
         ENDC  *                   *                              EN008 E0306400
         SINT  0(R7)                                                    E0306500
BUS.SF   B     IOTERM                                                   E0306600
         IFZ   .DF                                                      E0306700
RORG     EQU   *                                                        E0306800
         ORG   ISPTAB+X'DF'+X'DF'                                       E0306900
         ENDC                                                           E0307000
FCBSAV   DC    0                                                        E0307100
         IFZ   .DF                                                      E0307200
         ORG   RORG                                                     E0307300
         ENDC                                                           E0307400
         ENDC                                                           E0307500
         EJECT                                                          E0307600
IOWAIT   EQU   *                                                        E0307700
         LHI   R8,DCB.IOW(R1)      GET I/O WAIT POINTER ADDRESS         E0307800
         LH    R7,TCBTAB(R2)      FETCH A(TCB)                          E0307900
         LH    R3,TCB.STAT(R7)     GET TASK STATUS                      E0308000
         THI   R3,TSTT.IOM         IF ALREADY IN I/O WAIT,              E0308100
         BNZ   IOTERM              DO NOT RE-CHAIN                      E0308200
         STH   R8,TCB.WTAD(R7)     STORE POINTER IN TC B                E0308300
*                                                                       E0308400
IOW100   EQU   *                                                        E0308500
         LB    R6,0(R8)                                                 E0308600
         LHR   R6,R6               END OF THREAD IF = ZERO              E0308700
         BES   IOW200                                                   E0308800
         LH    R5,TCBTAB(R6)      GET A (TCB) OF CALLER                 E0308900
         LHI   R8,TCB.WTHR(R5)     AND NEXT I/O WAIT POINTER            E0309000
         BS    IOW100                                                   E0309100
*                                                                       E0309200
IOW200   EQU   *                                                        E0309300
         STB   R2,0(R8)           STORE LAST IOW PTR                    E0309400
         LH    R5,TCBTAB(R2)      THEN SET I/O WAIT BIT                 E0309500
         STB   R6,TCB.WTHR(R5)     IN TASK STATUS                       E0309600
         LH    R1,TCB.STAT(R5)                                          E0309700
         OHI   R1,TSTT.IOM                                              E0309800
         STH   R1,TCB.STAT(R5)                                          E0309900
         B     IOTERM                                                   E0310000
         EJECT                                                          E0310100
S1.CS    LH    R6,DCB.FLGS(R11)    GET DEVICE FLAGS                  EX E0310200
         THI   R6,DFLG.SDM         SELCH DEVICE ?                    EX E0310300
         BZS   S1.NS               NO                                EX E0310400
         LH    R5,DCB.DBSY(R11)    CHECK DISC/CTLR BUSY              EX E0310500
         LH    R5,0(R5)            *                                 EX E0310600
S1.BZ    BNZ   BUSY                IF BUSY, EXIT                     EX E0310700
S1.NS    EQU   *                   *                                 EX E0310800
         IFNZ  BISYNC              IF BISYNC SUPPORT                 EX E0310900
         THI   R6,DFLG.BBM         IS THIS BISYNC DEVICE BUSY ?      EX E0311000
         BNZS  S1.BZ               YES                               EX E0311100
         ENDC                      *                                 EX E0311200
         B     SETZST              *                                 EX E0311300
         IFNZ  HALTIO              IF HALT I/O SUPPORT            EN009 E0311400
ILHLT    EQU   *                   ILLEGAL HALT I/O               EN009 E0311500
         LHI   R7,S1ST.ERM+S1ST.REM                               EN009 E0311600
         BS    SETDN               GET THE DN                     EN009 E0311700
         ENDC                      *                              EN009 E0311800
ILFUNC   EQU   *                                                        E0311900
         LHI   R7,S1ST.ERM+S1ST.IFM                                     E0312000
SETDN    LB    R6,DCB.DN(R11)      GET THE DN                     EN009 E0312100
         BS    SETSTA              GO SET STATUS                        E0312200
*                                                                       E0312300
ILLU     EQU   *                                                        E0312400
         LHI   R7,S1ST.ERM+S1ST.LUM                                     E0312500
SETZSTP  EQU   *                                                  EX    E0312600
         XHR   R6,R6                                                    E0312700
SETSTA   EQU   *                                                        E0312800
         LHR   R7,R7              R7 = STATUS                           E0312900
         BZS   SST.ZER             IF NOT ZERO, INSERT                  E0313000
         STBR  R6,R7               DEVICE NUMBER IN SVC PBLK STAT WD    E0313100
SST.ZER  EQU   *                                                        E0313200
         STH   R7,SVC1.STA(R3)     SET ERROR STATUS IN USERS PARAM BLK  E0313300
  IFNZ EXTMEM                                                           E0313400
 LB R15,TCB.EXAD(R13)                                                   E0313500
 SRLS R15,4    GET EX ADDR BITS                                         E0313600
 ENDC                                                                   E0313700
         LH    R4,SVC1.FC(R3)      LOAD UP FC/LU                        E0313800
         BM    SST.CT              IF MINUS, IT IS A CMD SO DKP WAIT/PR E0313900
         THI R4,X'E000'            IS IT WAIT-ONLY OR TESTI/O ?         E0314000
         BZ    SST.NL              YES - DO NOT RETURN LXF           EX E0314100
         LH    R7,TCB.OPT(R13)     GET OPTIONS                          E0314200
         THI   R7,TOPT.COM         COMPATIBLE ?                         E0314300
         BNZS  SST.NL YES...DO NOT RETURN LXF                           E0314400
         SH    R10,SVC1.SAD(R3)    FIND LENGTH OF DATA TRANSFER         E0314500
         IFNZ  EXTMEM                                                   E0314600
   LHR R15,R15  IN EXT MEM?                                             E0314700
         BZS   SST.LOK                                                  E0314800
         NHI   R10,X'7FFF'         FORCE TO LESS THAN 32KB              E0314900
SST.LOK  EQU   *                                                        E0315000
         ENDC                                                           E0315100
         STH   R10,SVC1.LXF(R3)    PUT LENGTH IN PARAM BLK              E0315200
SST.NL   EQU   *                                                        E0315300
         THI   R4,X'800'           WAIT CALL                            E0315400
 BNZ IOTERM IF SO ,SKIP ADD TO QUEUE                                    E0315500
SST.CT   EQU   *                                                        E0315600
 IFNZ EXTMEM                                                            E0315700
 LHR R3,R3                                                              E0315800
 BMS SST.AM                                                             E0315900
 SIS R15,7                                                              E0316000
 BLS SST.ATQ                                                            E0316100
 OHI R3,X'8000'                                                         E0316200
 BS SST.ATQ                                                             E0316300
SST.AM SIS R15,7                                                        E0316400
 BNES SST.ATQ                                                           E0316500
 NHI R3,X'7FFF'                                                         E0316600
SST.ATQ EQU *                                                           E0316700
 ENDC                                                                   E0316800
         LHR   R15,R3              PUT A(PARBLK) INTO 15 FOR ADDTSKQ    E0316900
         LIS   R14,3          QUEUE SERVICE REASON                      E0317000
         BAL   R8,ADTSKQ           TRAP R13 ALREADY HAS A(TCB)          E0317100
SST.IOT  B     IOTERM              EXIT                                 E0317200
         IFZ   EXTMEM                                             EX    E0317300
SETZST   EQU   SETZSTP                                            EX    E0317400
         ELSE                                                     EX    E0317500
SETZST   LPS   SVCPBW              TALK TO PB                        EX E0317600
         B     SETZSTP                                            EX    E0317700
         ENDC                                                     EX    E0317800
         IFNZ  CMPROC              *                              EN003 E0317900
         TITLE SVC1 REQUEST TO CONSOLE(CMD PROC) OR DUMMY (USER TASKS)  E0318000
S1TTY    EQU   *                                                        E0318100
         LM    RE,SVC1.SAD(R3)    GET BUFFER START END               EX E0318200
         IFNZ  EXTMEM                                                EX E0318300
         SETM  RE,SVCPSW          CONVERT START                      EX E0318400
         SETM  RF,SVCPSW          CONVERT END                           E0318500
         STM   RE,SVC1.SAD(R3)    RESTORE                            EX E0318600
         ENDC                                                        EX E0318700
         THI   R4,X'4000'     READ REQUEST                              E0318800
         BNZ   TTYIO1         IF SO GO TO IT                            E0318900
         LHI   RD,X'200D'     PICK UP BLANK/CR FOR TRUNCATION FOR WRITE E0319000
         IFP   LOGLEN-72                                                E0319100
         CLHI  RF,LOGLEN(RE)  REQUEST OVER LIMIT                        E0319200
         ELSE                                                           E0319300
         CLHI  RF,72(RE)                                                E0319400
         ENDC                                                           E0319500
         BLS   S1WOK     IF NOT DON'T CLIP                              E0319600
         IFP   LOGLEN-72                                                E0319700
         LHI   RF,LOGLEN-1(RE) IF SO CLIP                               E0319800
         ELSE                                                           E0319900
         LHI   RF,71(RE)                                                E0320000
         ENDC                                                           E0320100
S1WOK    THI   R4,X'100'      IS IT AN IMAGE REQUEST?                   E0320200
         BNZ   S1WSEI         IF SO GO SET END ADDRESS FOR IMAGE        E0320300
         LHR   RC,RE          SAVE START FOR CHECK                      E0320400
S1CR     CLB   RD,0(RE)       IS THIS A C/R                             E0320500
         BES   S1TTB     IF SO GO TRIM TRAILING BLANKS                  E0320600
         AIS   RE,1           STEP TO NEXT                              E0320700
         CLHR  RF,RE          PAST LAST                                 E0320800
         BNLS  S1CR IF NOT GO CHECK IT                                  E0320900
S1TTB    EXBR  RD,RD          GET BLANK IN LOW BYTE                     E0321000
         SIS   RE,1       BACK OFF ONE                                  E0321100
S1TTB1   CLHR  RE,RC          DID WE PASS THE START                     E0321200
         BLS   S1NE      IF SO GO SET NEW END TO RE+1                   E0321300
         CLB   RD,0(RE)       IF NOT CHECK FOR BLANK                    E0321400
         BNES  S1WSE     IF NON BLANK GO SET NEW END TO RE              E0321500
         SIS   RE,1           BACK ONE MORE                             E0321600
         BS    S1TTB1    GO CHECK                                       E0321700
S1NE     AIS   RE,1           ATONE FOR EXCESS DECREMENTATION           E0321800
S1WSE    STH   RE,SVC1.EAD(R3)   SET NEW END ADDRESS                    E0321900
         B     TTYIO1         GO TO CONSOLE DRIVER                      E0322000
S1WSEI   LHR   RE,RF          PUT END IN CORRECT REGISTER               E0322100
         BS    S1WSE     AND EXIT                                       E0322200
S1DUM    EQU   *              PROCESS SVC1  REQUEST TO CONSOLE          E0322300
         STH   R2,DCB.RSAV(R1)     SAVE POINTERS                        E0322400
         STH   R3,DCB.RSAV+2(R1)   SAVE A(PARM)                         E0322500
         STH   R4,DCB.RSAV+4(R1)   SAVE FC/LU                     EN009 E0322600
         EXBR  R8,R2                                                    E0322700
         THI   R4,X'4000'     IS IT A READ REQUEST                      E0322800
         BZS   S1DW IF NOT GO CHECK WRITE                               E0322900
         LIS   RD,0   SIGNAL INPUT REQUEST                              E0323000
         AHR   R8,R7               MAKE TASK PTR ODD FOR PT RDR REQUEST E0323100
         BS    S1DEND    GO EXIT                                        E0323200
S1DW     EQU   *                                                        E0323300
         LIS   RD,1   SIGNAL OUTPUT REQUEST                             E0323400
S1DEND   EQU   *                                                        E0323500
         LHI   RF,CIORQ   GET POINTER FOR STORES                        E0323600
         STB   R8,1(RF)            SAVE THE TASK POINTER                E0323700
         STH   R3,2(RF)    AND THE A(PARBLK)                            E0323800
         AHR   RF,RD    ADD IN 0 FOR INPOUT OR 1 FOR  OUTPUT            E0323900
         LH    RD,TCBTAB+2    A(TCB) OF CMD PROC                        E0324000
         LHI   RE,X'8001'   TASK QUEUE SERVICE ADD TO TOP               E0324100
         BAL   R8,ADTSKQ           GO TELL CMD PROC                     E0324200
         IFNZ  HALTIO              IF HALT I/O SUPPORT            EN009 E0324300
         STH   R3,DCB.ISR(R1)      SET ONGOING I/O FLAG           EN009 E0324400
         ENDC                      *                              EN009 E0324500
         B     IOTWAT         EXIT                                      E0324600
         ENDC                      *                              EN003 E0324700
         TITLE QUEUE TERMINATION                                        E0324800
*##########################################################*            E0324900
*                                                                       E0325000
* QUEUE TERMINATION SERVICE                                             E0325100
*                                                                       E0325200
* EXECUTES WITH I/O INTERRUPTS ENABLED                                  E0325300
*                                                                       E0325400
* THE EXECUTIVE ALWAYS EXITS TO 'IOTERM'.                               E0325500
* THIS ALLOWS THE SYSTEM QUEUE (LIOTRM) TO BE EMPTIED                   E0325600
* BEFORE GOING TO THE SCHEDULER.                                        E0325700
*                                                                       E0325800
* THE SYSTEM QUEUE IS USED BY I/O DRIVERS TO SCHEDULE                   E0325900
* THE EXECUTION OF INTERRUPTABLE DRIVER ROUTINES.                       E0326000
* SYSTEM INTERRUPT HANDLERS ALSO USE THE SYSTEM QUEUE,                  E0326100
* BUT IN THE AUTOMATIC I/O (CCW) CONVENTION OF RTOS,                    E0326200
* THAT IS, THE SYSTEM HANDLERS PUT AN EVEN-VALUED ADDRESS               E0326300
* IN LIOTRM (I/O DRIVERS STORE ODD VALUED DCBS) TO WHICH                E0326400
* IOTERM ADDS 8 AND PICKS UP A(DCB).                                    E0326500
* ALSO, THE SYSTEM HANDLERS RETURN TO IOTERM WHILE THE                  E0326600
* I/O DRIVERS NORMALLY RETURN TO IODONE.                                E0326700
*                                                                       E0326800
* HARDWARE NOTE:                                                        E0326900
* A QUEUE SERVICE INTERRUPT WILL OCCUR IF:                              E0327000
* 1. THERE IS AN ENTRY IN THE SYSTEM QUEUE, AND                         E0327100
* 2. THE PROCESSOR EXECUTES A LPSW OR EPSR INSTRUCTION, AND             E0327200
* 3. BIT 6 OF THE NEWLY LOADED PSW IS SET.                              E0327300
*                                                                       E0327400
*##########################################################*            E0327500
IOTERM   EQU   *                                                        E0327600
         IFZ   PROCL              IF NO LIST H/W                     EX E0327700
         LB    R13,LIOTRM+1        GET # OF SLOTS USED            EN008 E0327800
         LHR   R13,R13             ANYTHING THERE ?               EN008 E0327900
         BZ    SCHED               NO, GO SCHEDULE                EN008 E0328000
         ENDC  *                   *                              EN008 E0328100
         RBL   R13,LIOTRM          FETCH A(DCB) FROM TERM. QUEUE        E0328200
         IFNZ  PROCL              IF LIST H/W                        EX E0328300
         BTC   4,SCHED            GO TO SCHED IF EMPTY                  E0328400
         ENDC  *                   *                              EN008 E0328500
         LHR   R1,R13              ZERO VALUE IS NULL ENTRY             E0328600
         IFNZ  JOURNAL0                                                 E0328700
         LB    R12,DCB.RSAV-1(R13)                 TCB PNTR             E0328800
JRNL10   BAL   R8,JOURNAL                                               E0328900
         DC    X'10'                                                    E0329000
         LHR   R1,R1                                                    E0329100
         ENDC                                                           E0329200
         BZS   IOTERM             TO FORCE SCHEDULING                   E0329300
         THI   R1,1               IS IT SYSTEM HANDLER?                 E0329400
         BNZS  IOTRM1             NO                                    E0329500
         LH    R8,8(R1)           YES, GET A(DCB)                       E0329600
         LH    R8,DCB.TERM(R8)     FETCH DRIVER'S TERMINATION ADDRESS   E0329700
         BZS   IODONE0            GO TO IODONIF ZERO                    E0329800
         BR    R8                 GO TO DRIVER TERM.                    E0329900
*                                                                       E0330000
IOTRM1   EQU   *                                                        E0330100
         NHI   R1,X'FFFE'         MAKE ADRS. EVEN                       E0330200
         IFNZ  EXTMEM                                                EX E0330300
         LPS   DCB.PPSW(R1)       TALK TO PB                         EX E0330400
         ENDC                                                        EX E0330500
         LM    R2,DCB.RSAV(R1)     FETCH REGISTERS                      E0330600
         LHR   R8,R2               SET UP ACTIVE TCB PNTR               E0330700
         SRLS  R8,8                                                     E0330800
         STB   R8,ACTTCB                                                E0330900
         LH    R8,DCB.TERM(R1)     FETCH DRIVER'S TERMINATION ADDRESS   E0331000
IODONE0  BZS   IODONE             GO TO IODONE IF ZERO                  E0331100
         BR    R8                 GO TO DRIVER TERM.                    E0331200
         EJECT                                                          E0331300
*                                                                       E0331400
* SVC 1 DRIVERS ENTER HERE AFTER EXECUTING THEIR                        E0331500
* TERMINATION SEQUENCE.  THEY MUST RETURN REGISTERS:                    E0331600
* R1=A(DCB), R2=TCB PNTR, R6=DEV #, R7=LOGICAL STATUS                   E0331700
*                                                                       E0331800
IODONE   EQU   *                                                        E0331900
         LBR   R5,R2               KILL I/O WAIT STATUS                 E0332000
IOD100   EQU   *                                                        E0332100
         LHR   R5,R5               R5=POINTER TO NEXT WAITING           E0332200
         BZS   IOEXIT              TCB, END OF THREAD IF = ZERO         E0332300
         LH    R5,TCBTAB(R5)       R5=WAITING TCB                       E0332400
         LH    R4,TCB.STAT(R5)     R4=STATUS OF TASK                    E0332500
         NHI   R4,X'FFFF'-TSTT.IOM RESET I/O WAIT BIT                   E0332600
         STH   R4,TCB.STAT(R5)     RESTORE                              E0332700
         LB    R5,TCB.WTHR(R5)     GET POINTER FROM THREAD              E0332800
         BS    IOD100             LOOP BACK                             E0332900
*                                                                       E0333000
* DRIVERS RETURN HERE TOO ON                                            E0333100
* UNSUCCESSFUL INITIALIZATION                                           E0333200
*                                                                       E0333300
IOEXIT   EQU   *                                                        E0333400
         SRLS  R2,8                                                     E0333500
         LH    R13,TCBTAB(R2)      A(TCB)                               E0333600
         IFNZ  DISCMGT&SVCSEVEN    *                              EN003 E0333700
         CLH   R1,UBOT        FCB ?                                     E0333800
         BLS   IOEX.DCB       NO ...GO CHECK BULK DEVICE                E0333900
         IFNZ  EXTMEM                                                EX E0334000
         EPSR  R8,R8               SAVE PBPSW (IF FCB)               EX E0334100
         LPS   FPSW               TALK TO FCB                        EX E0334200
         ENDC                                                        EX E0334300
         LB    R9,FCB.FLGS(R1)          YES...RESET FCB IN USE FLAG     E0334400
         NHI   R9,-1-FFLG.IUM                                           E0334500
         STB   R9,FCB.FLGS(R1)     SAVE IN FCB                          E0334600
         LH    R1,FCB.DCB(R1)                                           E0334700
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0334800
         LPSR  R8                  TALK BACK TO PBLK                 EX E0334900
         BS    IOEX.COM            GO TO COMMON                      EX E0335000
         ENDC                      *                                 EX E0335100
IOEX.DCB EQU   *                                                        E0335200
         ENDC                                                           E0335300
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0335400
         LPS   DCB.PPSW(R1)        TALK TO P-BLK                     EX E0335500
IOEX.COM EQU   *                   *                                 EX E0335600
         ENDC                      *                                 EX E0335700
         LH    R15,DCB.FLGS(R1)    GET DEVICE FLAGS               EN009 E0335800
         IFNZ  HALTIO              IF HALT I/O SUPPORT            EN009 E0335900
         NHI   R15,-1-DFLG.HIM     RESET HALT I/O FLAG            EN009 E0336000
         STH   R15,DCB.FLGS(R1)    UPDATE FLAGS                   EN009 E0336100
         ENDC                      *                              EN009 E0336200
         THI   R15,DFLG.SDM+DFLG.BLM IS THIS A SELCH OR BULK DEVICE ?FL E0336300
         BNZS  IOEX.NBY            IF SO, SKIP BUSY RESET         EN004 E0336400
*                                                                 EN004 E0336500
*                                                                 EN004 E0336600
*                                                                 EN004 E0336700
*                                                                 EN004 E0336800
*                                                                 EN004 E0336900
*                                                                 EN004 E0337000
         LH    R5,DCB.BUSY(R1)     GET ADDRESS OF BUSY FLAG             E0337100
         XHR   R4,R4              RESET DEV. BUSY FLAG                  E0337200
         STH   R4,0(R5)                                                 E0337300
         IFNZ  DISCMGT                                                  E0337400
         IFNZ  SVCSEVEN            *                              EN003 E0337500
         BS    IOEX.SQB            GO CHECK SEEK QUEUE                  E0337600
IOEX.NBY EQU   *                                                        E0337700
         LH    R4,DCB.FLGS(R1)     DISC ?                               E0337800
         BNM   IOEX.SQ             NO...DO NOT DECREMENT SDIO COUNT     E0337900
         LH    R4,STPDIO           STOP DISC I/O REQUESTED ?            E0338000
IOEX.SQB BZS   IOEX.SQ                                                  E0338100
         LCS   R4,1                YES...DECREMENT COUNT                E0338200
         AHM   R4,NUMDIO                                                E0338300
         BNZS  IOEX.SQ                                                  E0338400
         LH    R2,TCBSAV           GET FILE MANAGER'S SAVED TCB         E0338500
         LH    R4,TCB.STAT(R2)     RESET SVC 7 WAIT                     E0338600
         NHI   R4,-1-TSTT.S7M                                           E0338700
         STH   R4,TCB.STAT(R2)                                          E0338800
IOEX.SQ  EQU   *                   CHECK THE SEEK QUEUE HERE      EN008 E0338900
         ELSE                      *                              EN003 E0339000
IOEX.NBY EQU   *                   *                              EN003 E0339100
         ENDC                      *                              EN003 E0339200
         IFZ   PROCL              IF NO LIST H/W                     EX E0339300
         LB    R4,SEEKQ+1          GET # OF SLOTS                 EN008 E0339400
         LHR   R4,R4               ANYTHING THERE ?               EN008 E0339500
         BZS   IOEX.NOE            NO,SKIP RBL                    EN008 E0339600
         ENDC  *                   *                              EN008 E0339700
         RBL   R4,SEEKQ            REMOVE THE DISC DN             EN008 E0339800
         IFNZ  PROCL              IF LIST H/W                        EX E0339900
         BOS   IOEX.NOE            NO ENTRIES ON SEEK QUEUE             E0340000
         ENDC  *                   *                              EN008 E0340100
         SINT  0(R4)              START UP TRANSFER                     E0340200
         ELSE                                                           E0340300
IOEX.NBY EQU   *                                                        E0340400
         ENDC                                                           E0340500
IOEX.NOE EQU   *                                                  EX    E0340600
IOEX.9   B     SETSTA              GO TO SET STATUS                  EX E0340700
*                                                                       E0340800
 IFZ .E0+.E1+.E2+.E3+.E4+.E5+.E6+.E7+.E8+.E9+.EA+.EB+.EC+.ED+.EE+.EF    E0340900
IORSAV   EQU  ISPTAB+X'E0'+X'E0'                                        E0341000
         ELSE                                                           E0341100
IORSAV   DS    DISCMGT*16+16                                            E0341200
         ENDC                                                           E0341300
.0 EQU .05+.06+.07+.08+.09+.0A+.0B+.0C+.0D+.0E+.0F                      E0341400
         IFZ   .0                                                       E0341500
RORG     EQU   *                                                        E0341600
         ORG   ISPTAB+X'05'+X'05'                                       E0341700
         ENDC                                                           E0341800
*                                                                  635D E0341900
*        NULL DEVICE DRIVER                                        635D E0342000
*                                                                  635D E0342100
NULDVR   EQU   *                   *                               635D E0342200
         LH    RA,SVC1.SAD(R3)     LXF=0                           635D E0342300
         LHR   R4,R4               COMMAND ?                       635D E0342400
         BMS   NULDVE              YES, EXIT                       635D E0342500
         THI   R4,DATR.RDM         READ ?                          635D E0342600
         BZS   NULDVE              NO, EXIT                        635D E0342700
         LHI   R7,S1ST.ERM+S1ST.EFM SET EOF STATUS                 635D E0342800
NULDVE   B     IOEXIT              EXIT                            635D E0342900
         IFZ   .0                                                       E0343000
         ORG   RORG                                                     E0343100
         ENDC                                                           E0343200
         TITLE CANCEL SVC1 I/O ROUTINES                                 E0343300
         IFNZ  CMPROC+SVCSIX       IF CANCEL CMD OR SVC 6 CANCEL  EN003 E0343400
*                                                                       E0343500
*##########################################################*            E0343600
* CANWAT                                                                E0343700
* SUBROUTINE TO CANCEL SVC1 I/O WAIT THREAD                             E0343800
*                                                                       E0343900
* CALL   BAL   R12,CANWAT                                               E0344000
* WHERE R13=A(TCB)                                                      E0344100
*##########################################################*            E0344200
*                                                                       E0344300
.0       EQU   .63+.64+.65+.66+.67+.68+.69+.6A+.6B+.6C+.6D+.6E+.6F      E0344400
.0       EQU   .0+.70+.71+.72+.73+.74+.75+.76+.77+.78+.79+.7A           E0344500
         IFZ   .0                                                       E0344600
RORG     EQU   *                                                        E0344700
         ORG   ISPTAB+X'63'+X'63'                                       E0344800
         ENDC                                                           E0344900
CANWAT   EQU   *                                                        E0345000
         LH    R14,TCB.STAT(R13)   FETCH TASK STATUS                    E0345100
         THI   R14,TSTT.IOM        WAITING FOR I/O ?                    E0345200
         BZR   R12                 NO...RETURN                          E0345300
         LH    R14,TCB.WTAD(R13)   A(WAIT THREAD)                       E0345400
         LB    R15,TCB.WTHR(R13)   WAIT POINTER IN TCB                  E0345500
CANW01   EQU   *                                                        E0345600
         LB    R11,0(R14)          WAIT POINTER                         E0345700
         LHR   R11,R11             ZERO ?                               E0345800
         BZR   R12                 YES...RETURN                         E0345900
         CLB   R11,TCB.PNT(R13)   EQUAL TO THIS TASK ?                  E0346000
         BES   CANW00              YES                                  E0346100
         LH    R14,TCBTAB(R11)     NEXT TCB                             E0346200
         LHI   R14,TCB.WTHR(R14)   A(WAIT POINTER)                      E0346300
         BS    CANW01                                                   E0346400
CANW00   EQU   *                                                        E0346500
         STB   R15,0(R14)          ADJUST THREAD                        E0346600
         BR    R12                 RETURN                               E0346700
         IFZ   .0                                                       E0346800
         ORG   RORG                                                     E0346900
         ENDC                                                           E0347000
         ENDC                      *                              EN003 E0347100
         EJECT                                                          E0347200
*##########################################################*            E0347300
* SVC1CN                                                                E0347400
* SUBROUTINE TO CANCEL SVC1 I/O                                         E0347500
*                                                                       E0347600
* CALL   BAL   R12,SVC1CN                                               E0347700
* WHERE R11=A(DCB/FCB), R13=A(TCB)   R11,R15 MUST BE RETURNED           E0347800
*##########################################################*            E0347900
*                                                                       E0348000
*                                                                       E0348100
SVC1CN   EQU   *                                                        E0348200
         IFNZ  DISCMGT&SVCSEVEN    *                              EN003 E0348300
         CLH   R11,UBOT            DCB OR FCB ?                         E0348400
         BNL   SCN.FCB                                                  E0348500
         ENDC                                                           E0348600
         LH    R15,DCB.ISR(R11)    GET DCB ISR PNTR                     E0348700
         CLHI  R15,DCB.NOPI(R11)   IS IT THE NOP ISR ?                  E0348800
         BER   R12       YES...NO I/O GOING ON                          E0348900
         LB    R15,TCB.PNT(R13)    GETCH THIS TASK POINTER              E0349000
         CLB   R15,DCB.RSAV(R11)   DCB BUSY THIS TASK ?                 E0349100
         BNER R12                  NO, RETURN                           E0349200
         LB    R15,TCB.WTHR(R13)  FETCH TASK'S WAIT PNTR.               E0349300
         STB   R15,DCB.IOW(R11)    STORE IN DCB                         E0349400
SVC1HIO  EQU   *                   HALT I/O ENTRY POINT           EN009 E0349500
         LH    R15,DCB.ALOC(R11)   FETCH A(ABORT ROUTINE)               E0349600
         BZR   R12                 NO ABORT ROUTINE                     E0349700
         STH   R15,DCB.ISR(R11)    STORE IN DCB                         E0349800
         LB    R11,DCB.DN(R11)     GET DEVICE #                         E0349900
         SINT  0(R11)              SIMULATE INTERRUPT                   E0350000
         BR    R12                 RETURN                               E0350100
         IFNZ  DISCMGT&SVCSEVEN    *                              EN003 E0350200
SCN.FCB  EQU   *                                                        E0350300
         IFNZ  EXTMEM                                                EX E0350400
         LH    R15,FPSW           TALK TO FCB                        EX E0350500
         EPSR  R0,R15                                                EX E0350600
         ENDC                                                        EX E0350700
         LB    R15,FCB.FLGS(R11)                                        E0350800
         NHI   R15,-1-FFLG.IUM                                          E0350900
         STB   R15,FCB.FLGS(R11)                                        E0351000
         IFNZ  EXTMEM             RESTORE PSW                        EX E0351100
         EPSR  R5,R0                                                 EX E0351200
         ENDC                                                        EX E0351300
         BR    R12                                                      E0351400
         ENDC                                                           E0351500
         TITLE TASK CANCEL                                              E0351600
         IFNZ  CMPROC+SVCSIX       IF CANCEL CMD OR SVC 6 CANCEL  EN003 E0351700
*                                                                       E0351800
*        THIS ROUTINE CANCELS A TASK                                    E0351900
*        BY CANCELLING IT'S WAIT THREAD,IT'S ONGOING I/O                E0352000
*        AND IT'S CONSOLE LOG MESSAGE REQUESTS                          E0352100
*                                                                       E0352200
*        CALLED BY THE CANCEL COMMAND                                   E0352300
*        AND BY THE SVC 6 CANCEL FUNCTION                               E0352400
*                                                                       E0352500
*        R13=A(TCB),R8=LINK                                             E0352600
*                                                                       E0352700
CANCEL   EQU   *                                                        E0352800
         IFNZ  CMPROC              *                              EN003 E0352900
CANC04   EQU   CANCEL                                                   E0353000
         ENDC                      *                              EN003 E0353100
         LH    R10,TCB.FLGS(R13)   GET TASK FLAGS                 EN001 E0353200
         OHI   R10,TFLG.CPM   SET CANCEL PENDING FLAG                   E0353300
         NHI   R10,-1-TFLG.PPM     CLEAR THE PAUSE PENDING FLAG         E0353400
         STH   R10,TCB.FLGS(R13)   PUT IN TCB                     EN001 E0353500
         BAL   R12,CANWAT          CANCEL I/O WAIT THREAD               E0353600
         LB    R14,TCB.NLU(R13)    GET # LU'S                           E0353700
         LHI   R9,TCB.LTAB(R13)        START OF LU TABLE                E0353800
IOLOOP   LH    R11,0(R9)               FETCH LU ENTRY                   E0353900
         BZS   IOLEND              IGNORE IF ZERO                       E0354000
         NHI   R11,X'FFFE'         MAKE EVEN                            E0354100
         BAL   R12,SVC1CN          IS LOADED                            E0354200
IOLEND   AIS   R9,2                                                     E0354300
         SIS   R14,1                                                    E0354400
         BPS   IOLOOP              LOOP ON ALL LU'S                     E0354500
         XHR   R9,R9                                                    E0354600
         IFNZ  CMPROC              *                              EN003 E0354700
         LH    R12,CIORQ GET TCB PNTR OF TASK DOING I/O ON CONSOLE      E0354800
         NHI   R12,X'FFFE'                                              E0354900
         CLB   R12,TCB.PNT(R13)    IS IT THIS TASK ?                    E0355000
         BNES  CANCON    NO                                             E0355100
         STH   R9,CIORQ  YES...CANCEL                                   E0355200
 LHI R15,DMYBF ADDR OF BUSY FLAG                                        E0355300
 SIS R15,8                                                              E0355400
 ATL R15,LIOT00 SCHEDULE TERMINATION                                    E0355500
CANCON   LHI   R15,CMDLMQ         CANCEL ALL COMMAND PROCESSOR          E0355600
CONSQ    LB    R14,1(R15)         BUFFER ENTRIES FOR THIS TASK          E0355700
         CLB   R14,TCB.PNT(R13)                                         E0355800
         BNES  CMQNC                                                    E0355900
         STH   R9,0(R15)           ZERO THE 1ST HW OF BUFFER            E0356000
CMQNC    AHI   R15,LOGLEN+12                                            E0356100
         CLHI  R15,CMDLQE                                               E0356200
         BLS   CONSQ                                                    E0356300
         ENDC                      *                              EN003 E0356400
         LHI   R14,ETSTAT          STATUS                            EX E0356500
         LHI   R15,ET.3            A(SVC3,255)                          E0356600
         THI   R10,TFLG.SLM   IS TASK CURRENTLY IN SYSTEM CODE ?        E0356700
         BNZS  CANCEL0             YES                                  E0356800
         STH   R9,TCB.CTSW(R13)    TAKE TASK OUT OF TRAP WAIT           E0356900
*                                                                    EX E0357000
         STM   R14,TCB.CPSW(R13)   SET TASK'S CPSW TO POINT TO SVC3     E0357100
         STH   R9,TCB.STAT(R13)         SET TASK READY                  E0357200
         BR    R8                                                       E0357300
CANCEL0  EQU   *                                                        E0357400
         IFNZ  ROLL                                                     E0357500
         LIS   R12,SVCTWO!CLK      START WITH SVC 6               EN003 E0357600
         ELSE                                                           E0357700
         LIS   R12,SVCTWO!CLK+SVCSIX START WITH SVC 7             EN003 E0357800
         ENDC                                                           E0357900
CCRD     LB    R9,RDBLK(R12)       GET TCB PTR                       EX E0358000
         CLB   R9,TCB.PNT(R13)     THIS TASK ?                       EX E0358100
         BES   CCRDD               YES                                  E0358200
         SIS   R12,1                                                    E0358300
         BNLS  CCRD                                                     E0358400
         IFNZ  ROLL                                                     E0358500
         LIS   R12,SVCTWO!CLK+SVCSIX IF NOT 6 OR 2, MUST BE 7     EN003 E0358600
         ENDC                                                           E0358700
CCRDD    EQU   *                                                        E0358800
         SLLS  R12,2               FOUND IN ROADBLOCK TABLE             E0358900
         STM   R14,SVCCSW(R12)     SAVE PSW IN ALTERNATE             EX E0359000
         BR    R8                  ...SAVE AREA TO POINT TO SVC3        E0359100
         ENDC                      *                              EN003 E0359200
         IFNZ  OVERLAY                                                  E0359300
         TITLE 'ASSIGN' FMGR LU OF CURR TASK TO OS OV FILE              E0359400
*                                                                       E0359500
* SET UP A(DCB) FOR OV LOAD                                             E0359600
*  ALSO UPDATE (RAD REL START OSOV FILE) TO (RAD REL START DISC)        E0359700
*                                                                       E0359800
*        R11   USED                                                     E0359900
*        R12   LINK                                                     E0360000
*        R13   USED                                                     E0360100
*        R15   ON ENTRY = RAD REL TO START OF FILE (H/W)                E0360200
*        R14+R15    ON RETURN = RAD REL TO START OF DISC (F/W)          E0360300
*                                                                       E0360400
.0 EQU .38+.39+.3A+.3B+.3C+.3D+.3E+.3F+.4B+.4C+.4D+.4E+.4F              E0360500
.0 EQU .0+.40+.41+.42+.43+.44+.45+.46+.47+.48+.49+.4A+.50               E0360600
 IFZ .0                                                                 E0360700
RORG EQU *                                                              E0360800
 ORG ISPTAB+X'38'+X'38'                                                 E0360900
 ENDC                                                                   E0361000
OVLU     LB    R13,ACTTCB         CURR TCB PTER                         E0361100
         LH    R13,TCBTAB(R13)     A(TCB)                               E0361200
         LH    R11,OSOVDB          A(DCB) FOR OS FILE                   E0361300
         IFNZ  CMPROC              *                              EN003 E0361400
         BZR   R12                 RETURN CC=0                          E0361500
         ENDC                      *                              EN003 E0361600
         STH   R11,TCB.FMLU(R13)   STORE IN FILE MANAGER LU SLOT        E0361700
         LB    R14,DCB.ATRB(R11)   GET DEVICE ATTRIBUTES                E0361800
         NHI   R14,-1-TLAT.WRM     NO WRITE ALLOWED                     E0361900
         LB    R11,TCB.NLU(R13)    NLU                                  E0362000
         AHR   R11,R11             2*NLU                                E0362100
         AHR   R11,R13             ADD A(TCB)                           E0362200
         STB   R14,TCB.LTAB(R11)   STORE FMLU ATTRIBS                   E0362300
         XHR   R14,R14                                                  E0362400
         AH    R15,OSOVST+2   ADD WITH CARRY TO FORM                    E0362500
         ACH   R14,OSOVST          RAD FROM START OF DISC               E0362600
         BR    R12                 RETURN CC<>0                         E0362700
 IFZ .0                                                                 E0362800
 ORG RORG                                                               E0362900
 ENDC                                                                   E0363000
         IFNZ  SAFE                                                     E0363100
*                                                                       E0363200
*        PROCESS I/O ERRORS ON OVERLAY LOAD                             E0363300
*        R12=LINK                                                       E0363400
 ENTRY OVIO                                                             E0363500
OVIO     EQU   *                                                        E0363600
         LIS   R13,1               ADDRESS DISPLAY PANEL                E0363700
         OC    R13,INCRCN          SELECT MODE                          E0363800
         WH    R13,OVIO9           OUTPUT NINES                         E0363900
         WH    R13,OVIO9                                                E0364000
         OC    R13,NORMCN          BACK TO NORMAL                       E0364100
         LHR   R12,R12             CC<>0                                E0364200
         BR    R12                 GO RETRY                             E0364300
 IFZ .04                                                                E0364400
RORG EQU *                                                              E0364500
  ORG ISPTAB+X'04'+X'04'                                                E0364600
 ENDC                                                                   E0364700
OVIO9    DC    X'9999'                                                  E0364800
 IFZ .04                                                                E0364900
 ORG RORG                                                               E0365000
 ENDC                                                                   E0365100
         ENDC                                                           E0365200
         ENDC                                                           E0365300
         IFNZ  SVCTWO+CLOCK        *                              EN003 E0365400
         TITLE SVC 2  DISPATCHER                                        E0365500
*                                                                       E0365600
*##########################################################*            E0365700
* SVC2 HANDLES TRANSFERS TO PROCESSING ROUTINE FOR                      E0365800
* FUNCTION SPECIFIED IN PARAMETER BLOCK                                 E0365900
* R2=A(PBLK) & R8=A(TCB) FROM SVINT                                     E0366000
*##########################################################*            E0366100
*                                                                       E0366200
         IFZ   .5E+.5F                                                  E0366300
VOLSAVE  EQU   ISPTAB+X'5E'+X'5E'                                       E0366400
         ELSE                                                           E0366500
VOLSAVE  DS    4                                                        E0366600
         ENDC                                                           E0366700
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0366800
SAVPTR   LH    R2,SVCRSAV(R11)     UNMAP REG PTR TO BE RETURNED      EX E0366900
         NHI   R2,X'8000'          GET OLD BIT ZERO                  EX E0367000
         NHI   R5,X'7FFF'          CLEAR TOP BIT OF RESULT           EX E0367100
         OHR   R5,R2               OR IN OLD BIT 0                   EX E0367200
         CLHR  R5,R2               COMPARE REGS                      EX E0367300
         BNLS  SAVPTR2            NEW REG MUST BE GREATER            EX E0367400
         OHI   R5,X'8000'                                            EX E0367500
SAVPTR2  STH   R5,SVCRSAV(R11)                                       EX E0367600
         BR    R14                                                   EX E0367700
SETCON   LH    R12,SVCCSW         SET CC INTO RETURN PSW             EX E0367800
         NHI   R12,X'FFF0'                                           EX E0367900
         OHR   R12,R3                                                EX E0368000
         STH   R12,SVCCSW                                            EX E0368100
         BR    R14                                                   EX E0368200
         ENDC                                                        EX E0368300
*                                                                       E0368400
* OVERLAY HANDLER FOR THE EXEC SVC 2 OVERLAY AREA                       E0368500
*                                                                       E0368600
* OV:    COMPRISES:                                                     E0368700
*                                                                       E0368800
*  0     2.0   2.2                                                      E0368900
*  1     2.3   2.4   2.5   2.20  2.21                                   E0369000
*  2     2.6                                                            E0369100
*  3     2.7   2.8   2.9  2.15(PART 1)                                  E0369200
*  4     2.15 PART 2                                                    E0369300
*  5     2.16 PART 1                                                    E0369400
*  6     2.16 PART 2                                                    E0369500
*  7     2.17                                                           E0369600
*  8     2.18  2.19                                                     E0369700
*  9     SVC2DO  (INITIAL SVC2  PROCESSOR)                              E0369800
* 10     SVC3  PART1                                                    E0369900
* 11     SVC3  PART2                                                    E0370000
* 12     SVC9                                                           E0370100
*                                                                       E0370200
*                                                                       E0370300
*   ENTRY PT. AT LDS2.N  RUNS OFF ACTUAL (OV NO * OV SIZE)              E0370400
*                            R6 = ABOVE VALUE                           E0370500
*                            R4 = BRANCH ADDR                           E0370600
*                                                                       E0370700
         IFP   OVTWO                                                    E0370800
SVC2     EQU   *                                                        E0370900
         IFNZ  PCLOCK                                                   E0371000
         LM    R14,SVCCSW          TALK TO SVC INSTRUCTION              E0371100
         IFNZ  EXTMEM                                                   E0371200
 EPSR R5,R5  SAVE PB PSW                                                E0371300
         SETMR R15,R14                                                  E0371400
         ENDC                                                           E0371500
         LB    R4,-3(R15)          GET SVC NUMBER                       E0371600
 SRLS R4,4                                                              E0371700
 SLLS R4,8                                                              E0371800
         IFNZ EXTMEM                                                    E0371900
 LPSR R5  RESTORE PB PSW                                                E0372000
         ENDC                                                           E0372100
         LB    R5,1(R2)           IF SVC 2,23 THEN GO RIGHT AWAY        E0372200
         OHR   R4,R5                                                    E0372300
         CLHI  R4,X'217'              CAUSE IT'S RESIDENT               E0372400
         BE    S2TIME                                                   E0372500
         ENDC                                                           E0372600
         LHI   R4,SVC2DO          LOAD SVC 2 ROUTINE ADDR               E0372700
         LIS   R6,OV2SIZ*9        LOAD SVC2 INITIAL OVERLAY             E0372800
LDS2.N   STM   R12,RSAV2          SAVE REGS                             E0372900
         LHR   R15,R6             GET RAD OF OV REL TO START AREA       E0373000
         AH    R15,OV2RAD        ADD RAD OF AREA REL TO START FILE      E0373100
         BAL   R12,OVLU       CONNECT FM LU TO OS OV FILE               E0373200
         IFNZ  CMPROC              *                              EN003 E0373300
         BZ    LDS2.R    NO OVERLAY VOLUME                              E0373400
         ENDC                      *                              EN003 E0373500
         STM   R14,SVCOV2+SVC1.RAD     RAD REL TO START DISC            E0373600
         SVC   1,SVCOV2                                                 E0373700
         IFNZ SAFE                                                      E0373800
         LH    R13,SVCOV2+SVC1.STA CHECK STATUS                         E0373900
         BNZ   OVIO                                                     E0374000
         ENDC                                                           E0374100
         LM    R12,RSAV2      RESTORE REGS                              E0374200
         BR    R4                 BRANCH TO ROUTINE                     E0374300
         IFZ   .BC+.BD+.BE+.BF                                          E0374400
RSAV2    EQU   ISPTAB+X'BC'+X'BC'                                       E0374500
         ELSE                                                           E0374600
RSAV2    DS    8                                                        E0374700
         ENDC                                                           E0374800
*                                                                       E0374900
.0 EQU .51+.52+.53+.54+.55+.56+.57                                      E0375000
 IFZ .0                                                                 E0375100
RORG EQU *                                                              E0375200
 ORG ISPTAB+X'51'+X'51'                                                 E0375300
 ENDC                                                                   E0375400
SVCOV2   DC    X'5CFF'                                                  E0375500
         DC    0                                                        E0375600
         DC    OV2                                                      E0375700
         DC    ENDOV2-1                                                 E0375800
         DC    0,0,0                                                    E0375900
 IFZ .0                                                                 E0376000
 ORG RORG                                                               E0376100
 ENDC                                                                   E0376200
 ENDC                                                                   E0376300
         ENDC                                                           E0376400
         IFP   OVTWO                                                    E0376500
*                                                                       E0376600
* START OF CODE FOR SVC 2 OVERLAY AREA                                  E0376700
*                                                                       E0376800
         ALIGN 4                   ALIGN FOR TETR03                     E0376900
OV2      EQU   *                                                        E0377000
ENDOV2   EQU   *                                                        E0377100
*                                                                       E0377200
* OVERLAY 0                                                             E0377300
*                                                                       E0377400
         ORG   0                                                        E0377500
         ORG   OV2                                                      E0377600
         ENDC                                                           E0377700
         IFNZ  SVCTWO              *                              EN003 E0377800
         TITLE SVC 2/0   JOURNAL ENTRY                                  E0377900
         IFNZ  JOURNAL0                                                 E0378000
*#####################################################*                 E0378100
* R2=A(PBLK)                                                            E0378200
* R8=A(TCB)                                                             E0378300
*#####################################################*                 E0378400
S2JRNL   EQU   *                                                        E0378500
         LH    R4,TCB.OPT(R8)      E-TASK ?                        213D E0378600
         BNM   SVC2IL              NO, ILLEGAL SVC                 213D E0378700
         LH    R4,2(R2)            GET JOURNAL CODE                     E0378800
         LBR   R4,R4               CLEAR TOP HALF                  212D E0378900
         OHI   R4,X'0080'          SET USER BIT                    212D E0379000
         STH   R4,JRNLS2+4                                              E0379100
         LM    R12,4(R2)           GET REGISTER CONTENTS                E0379200
         LHI   R5,SUSTAT                                                E0379300
         EPSR  R6,R5                                                    E0379400
JRNLS2   BAL   R8,JOURNAL          MAKE JOURNAL ENTRY                   E0379500
         DC    0                                                        E0379600
         B     SVC2RTN                                                  E0379700
         ENDC                                                           E0379800
         TITLE SVC 2/2 GET STORAGE                                      E0379900
*                                                                       E0380000
*##########################################################*            E0380100
* SVC 2/2 GET STORAGE - ADJUSTS USER TOP PTR IN TB                      E0380200
* PBLK   DC    FUNCTION CODE                                            E0380300
*        DC    G.REG TOBE LOADED WITH STORAGE ADDR                      E0380400
*        DC    NUMBER OF BYTES                                          E0380500
* R2=A(PBLK)                                                            E0380600
* R8=A(TCB)                                                             E0380700
*##########################################################*            E0380800
*                                                                       E0380900
S2GETS   EQU   *                                                        E0381000
         LH    R7,TCB.UBOT(R8)     A(UDL)                               E0381100
         LH    R4,2(R2)            REGISTER NUMBER                      E0381200
         CLHI  R4,16               LESS THAN 15                         E0381300
         BNL   SVC22IL             NO - ERROR                           E0381400
         IFNZ  EXTMEM                                                EX E0381500
         LH    R1,TCB.UBEW(R8)    TALK TO UDL                        EX E0381600
         EPSR  R0,R1                                                 EX E0381700
         ENDC                                                        EX E0381800
         AHR   R4,R4               DOUBLE IT                            E0381900
         LH    R5,UDL.UTOP(R7)     GET UTOP                             E0382000
         LH    R6,UDL.CTOP(R7)     AND CTOP                             E0382100
*                                                                    EX E0382200
         IFNZ  EXTMEM                                                EX E0382300
         EPSR  R1,R0              RESTORE TO PB                      EX E0382400
         ENDC                                                        EX E0382500
         LH    R3,0(R2)            X'80' OPTION?                        E0382600
         BNMS  S2GB                NO                                   E0382700
         LHR   R9,R6               GET CTOP                          EX E0382800
         SHR   R9,R5               MINUS UTOP=# OF BYTES GOT            E0382900
         BS    S2GTOK              GO STORE NEW UTOP                    E0383000
S2GB     EQU   *                                                        E0383100
         LH    R3,4(R2)            GET REQUESTED # OF BYTES             E0383200
         BM    SVC22IL             NEGATIVE SIZE ?  ERROR               E0383300
         LHR   R9,R3               FOR THE STORE                        E0383400
         AHR   R3,R5               ADD TO UTOP                          E0383500
         CLHI  R3,1(R6)            TEST AGAINST CTOP+3                  E0383600
         BNL   SVC22IL            TOO MUCH REQUESTED-ERROR              E0383700
         LHR   R6,R3                                                    E0383800
S2GTOK   XHR   R3,R3                                                    E0383900
         AIS   R6,1                ALIGN TO HW                          E0384000
         SRLS  R6,1                                                     E0384100
         SLLS  R6,1                                                     E0384200
         IFNZ  EXTMEM                                                EX E0384300
         EPSR  R0,R1              TALK TO UDL                           E0384400
         ENDC                                                        EX E0384500
         STH   R6,UDL.UTOP(R7)     STORE NEW UTOP                       E0384600
         IFNZ  EXTMEM                                                EX E0384700
         EPSR  R1,R0              RESTORE TO PB                      EX E0384800
         ENDC                                                        EX E0384900
S2GET2   EQU   *                                                     EX E0385000
         IFZ   EXTMEM                                                EX E0385100
         STB   R3,SVCCSW+1        STORE CONDITION CODE               EX E0385200
         ELSE                                                        EX E0385300
         BAL   R14,SETCON                                            EX E0385400
         ENDC                                                        EX E0385500
         STH   R5,SVCRSAV(R4)      STORE ADDR IN REG                    E0385600
         STH   R9,4(R2)            RETURN # OF BYTES                    E0385700
         BR    R15                                                      E0385800
SVC22IL  XHR   R5,R5                                                    E0385900
         LIS   R3,PSWCCV           CC = 4                               E0386000
         BS    S2GET2                                                   E0386100
         IFP   OVTWO                                                    E0386200
         IFP   *-ENDOV2                                                 E0386300
ENDOV2   EQU   *                                                        E0386400
         ENDC                                                           E0386500
*                                                                       E0386600
* OVERLAY 1                                                             E0386700
*                                                                       E0386800
         ORG   0                                                        E0386900
         ORG   OV2                                                      E0387000
         ENDC                                                           E0387100
         TITLE SVC 2/3 RELEASE STORAGE                                  E0387200
*                                                                       E0387300
*##########################################################*            E0387400
* SVC 2/3 RELEASE STORAGE - UNDO SVC 2/2                                E0387500
* PBLK   DC    FUNCTION BYTE                                            E0387600
*        DC    NUMBER OF BYTES                                          E0387700
* R8=A(TCB)                                                             E0387800
*##########################################################*            E0387900
*                                                                       E0388000
S2RELS   EQU   *                                                        E0388100
         LH    R7,TCB.UBOT(R8)     A(UDL)                               E0388200
         LH    R4,2(R2)            GET # BYTES                          E0388300
         BMS   S2ERR                                                    E0388400
         IFNZ  EXTMEM                                                EX E0388500
         LPS   TCB.UBEW(R8)       TALK TO UDL                        EX E0388600
         ENDC                                                        EX E0388700
         LH    R5,UDL.UTOP(R7)     GET UTOP                             E0388800
         SHR   R5,R4                                                    E0388900
         CLH   R5,UDL.UBOT(R7)     COMPARE UBOT                         E0389000
         BNLS  S2REL1                                                   E0389100
S2ERR    EQU   *                                                        E0389200
         LIS   R3,PSWCCV           ERROR - CC = 4                       E0389300
         BS    S2CC                                                     E0389400
S2REL1   XHR   R3,R3                                                    E0389500
         AIS   R5,1                ALIGN TO HW                          E0389600
         SRLS  R5,1                                                     E0389700
         SLLS  R5,1                                                     E0389800
         STH   R5,UDL.UTOP(R7)     RETURN UTOP                          E0389900
S2CC     EQU   *                                                     EX E0390000
         IFZ   EXTMEM                                                EX E0390100
         STB   R3,SVCCSW+1        SET CONDITION CODE                 EX E0390200
         ELSE                                                        EX E0390300
         BAL   R14,SETCON                                            EX E0390400
         ENDC                                                        EX E0390500
         BR    R15                                                      E0390600
         TITLE SVC 2/4 SET STATUS                                       E0390700
*                                                                       E0390800
*##########################################################*            E0390900
* SVC 2/4 SET STATUS -A DJUST PSW BITS                                  E0391000
* PBLK   DC    FUNCTION BYTE                                            E0391100
*        DC    PSW STATUS & CC                                          E0391200
* R2=A(PBLK)                                                            E0391300
* R8=A(TCB)                                                             E0391400
*##########################################################*            E0391500
*                                                                       E0391600
S2SETS   EQU   *                                                        E0391700
         LH    R3,2(R2)       GET STATUS & CC                           E0391800
         LH    R4,SVCCSW           GET USERS OLD PSW                    E0391900
         LH    R5,0(R2)       GET SVC2 OPTION                           E0392000
         BNMS  S2CCC                                              EX    E0392100
         LBR   R3,R3                                                 EX E0392200
         BS    S2CCC1                                             EX    E0392300
S2CCC    NHI   R4,X'FFFF'-X'140F'  RESET  AF BITS AND CC IF SET      EX E0392400
S2CCC1   NHI   R3,X'140F'          LEAVE ONLY AF BITS AND CC      EX    E0392500
         OHR   R4,R3               ENABLE UNDER MASK              EN012 E0392600
         STH   R4,SVCCSW                                                E0392700
         BR    RF                  RETURN                               E0392800
         TITLE SVC 2/5 FETCH POINTER                                    E0392900
*                                                                       E0393000
*##########################################################*            E0393100
* SVC 2/5 FETCH POINTER TO TASK BLOCK                                   E0393200
* PBLK   DC    FUNCTION CODE                                            E0393300
*        DC    REGISTER TO BE LOADED WITH TB ADDR                       E0393400
* R2=A(PBLK)                                                            E0393500
* R8=A(TCB)                                                             E0393600
*##########################################################*            E0393700
*                                                                       E0393800
S2FPTR   EQU   *                                                        E0393900
         LH    R3,TCB.UBOT(R8)     A(UDL)                               E0394000
         LH    R4,2(R2)       PARAMETER RETURN REG                      E0394100
         IFNZ  EXTMEM                                                EX E0394200
         LPS   TCB.UBEW(R8)       TALK TO UDL                        EX E0394300
         LH    R3,UDL.UBOT(R3)    GET POINTER FROM UDL (ITS UNMAPED) EX E0394400
         ENDC                                                        EX E0394500
         NHI   R4,15                                                    E0394600
         AHR   R4,R4                                                    E0394700
         STH   R3,SVCRSAV(R4)                                           E0394800
         BR    RF                  RETURN                               E0394900
         TITLE SVC 20 AND 21    EXPAND AND CONTRACT                     E0395000
*####################################################*                  E0395100
* EXPAND AND CONTRACT                                                   E0395200
* INCLUDED FOR COMAPTIBILITY                                            E0395300
*####################################################*                  E0395400
S2EXP    EQU   *                                                        E0395500
         LH    R4,0(R2)            GET OPTIONS                          E0395600
         BMS   S2ZPB               GO SET P BLOCK ZERO                  E0395700
         LIS   R3,4                                                     E0395800
         BS    S2CON1                                                EX E0395900
S2ZPB    XHR   R3,R3                                                    E0396000
         STH   R3,2(R2)            ZERO # BLOCKS                        E0396100
S2CON    EQU   *                                                        E0396200
         XHR   R3,R3                                                    E0396300
S2CON1   EQU   *                                                     EX E0396400
         IFZ   EXTMEM                                                EX E0396500
         STB   R3,SVCCSW+1                                           EX E0396600
         ELSE                                                        EX E0396700
         BAL   R14,SETCON                                            EX E0396800
         ENDC                                                        EX E0396900
         BR    R15                                                      E0397000
         IFP   OVTWO                                                    E0397100
         IFP   *-ENDOV2                                                 E0397200
ENDOV2   EQU   *                                                        E0397300
         ENDC                                                           E0397400
*                                                                       E0397500
* OVERLAY 2                                                             E0397600
*                                                                       E0397700
         ORG   0                                                        E0397800
         ORG   OV2                                                      E0397900
         ENDC                                                           E0398000
         TITLE SVC 2/6 UNPACK                                           E0398100
*                                                                       E0398200
*##########################################################*            E0398300
* SVC 2/6 UNPACK - CONVERT FOUR HEX DIGITS TO ASCII CHARS               E0398400
* PBLK   DC    FUNCTION CODE                                            E0398500
*        DC    A(DESTINATION)                                           E0398600
* R2=A(PBLK)                                                            E0398700
* R8=A(TCB)                                                             E0398800
*##########################################################*            E0398900
*                                                                       E0399000
S2UPAK   EQU   *                                                        E0399100
         LH    R13,2(R2)           DESTINATION ADDR                     E0399200
         IFNZ  EXTMEM                                                EX E0399300
         EPSR  R4,R4              SAVE PB PSW                        EX E0399400
         SETM  R13,SVCCSW          MAP DEST ADDR                     EX E0399500
         ENDC                      *                                 EX E0399600
         LHR   R6,R13              SAVE IT                        EX    E0399700
         IFNZ  CMPROC*ST                                                E0399800
         LHR   R14,R13                                                  E0399900
         BAL   R12,ADDCHK2         CHECK DEST ADDR                      E0400000
         ENDC                      *                              EN003 E0400100
         IFNZ  EXTMEM                                                EX E0400200
         EPSR  R5,R4              TALK TO PB                         EX E0400300
         ENDC                                                        EX E0400400
         LB    R14,0(R2)                                                E0400500
         LH    R0,SVCRSAV         R0,R1=BINARY WORD TO UNPACK        EX E0400600
         LH    R1,SVCRSAV+2                                          EX E0400700
         NHI   R14,X'1F'          LENGTH                                E0400800
         BNZS  S2UD                                                     E0400900
         LIS   R14,4               LENGTH = 4                           E0401000
S2UD     LHR   R8,R14                                                   E0401100
         LHI   R9,X'30'                                                 E0401200
         LH    R7,0(R2)            OPTIONS                              E0401300
         BM    DECIMAL                                                  E0401400
CHKLNGH  EQU   *                                                     EX E0401500
         IFNZ  EXTMEM                                                EX E0401600
         EPSR  R4,R5              TALK TO DESTINATION                EX E0401700
         ENDC                                                        EX E0401800
         CLHI  R14,9                                                 EX E0401900
         BNL   FILZERO                                                  E0402000
         SIS   R14,1               SET UP SHIFT                         E0402100
         SLLS  R14,2                                                    E0402200
         THI   R7,X'2000'         CHECK FOR EXTENDED PRECISION       EX E0402300
         BNZS  S2VOK              YES                                EX E0402400
         SRL   0,16               ENTIRE VALUE WAS IN R0             EX E0402500
S2VOK    BAL   R12,UNPK1                                             EX E0402600
RTN      THI   R7,X'4000'          SUPPRESS LEADING ZERO'S ?            E0402700
         BZS   S2UR                                                     E0402800
         LHI   R5,X'20'                                                 E0402900
         LHI   R9,X'30'                                                 E0403000
NXTCHR   SIS   R8,1                DECREMENT CHAR COUNT                 E0403100
S2UR     BZ    SVC2RTN                                                  E0403200
         CLB   R9,0(R6)                                              EX E0403300
         BNE   SVC2RTN                                                  E0403400
         STB   R5,0(R6)                                              EX E0403500
         AIS   R6,1                                                  EX E0403600
         BS    NXTCHR              RETURN                               E0403700
FILZERO  STB   R9,0(R13)                                                E0403800
         AIS   R13,1                                                    E0403900
         SIS   R14,1                                                    E0404000
         B     CHKLNGH                                                  E0404100
DECIMAL  EQU   *                                                     EX E0404200
         LHR   R15,R0                                                EX E0404300
         IFNZ  EXTMEM                                                EX E0404400
         EPSR  R4,R5              TALK TO DESTINATION                EX E0404500
         ENDC                                                        EX E0404600
         LIS   R10,10             CONSTANT OF 10                        E0404700
         LHR   R9,R14              LENGTH                               E0404800
         AHR   R13,R9              GET RT JUSTIFIED POSITION IN BUFFER  E0404900
DIV10    XHR   R14,R14             ZERO REMAINDER                       E0405000
         DHR   R14,R10                                                  E0405100
         OHI   R14,X'30'           CONVERT TO ASCII                     E0405200
         SIS   R13,1                                                    E0405300
         STB   R14,0(R13)          SAVE REMAINDER IN USER BUFFER        E0405400
         SIS   R9,1                                                     E0405500
         BNZS  DIV10                                                    E0405600
         B     RTN                                                      E0405700
         IFP   OVTWO                                                    E0405800
         IFP   *-ENDOV2                                                 E0405900
ENDOV2   EQU   *                                                        E0406000
         ENDC                                                           E0406100
*                                                                       E0406200
* OVERLAY 3                                                             E0406300
*                                                                       E0406400
         ORG   0                                                        E0406500
         ORG   OV2                                                      E0406600
         ENDC                                                           E0406700
         IFNZ  CMPROC              *                              EN003 E0406800
         TITLE SVC 2/7    LOG MESSAGE                                   E0406900
*                                                                       E0407000
*##########################################################*            E0407100
* SVC 2/7 LOG MESSAGE                                                   E0407200
* PBLK   DC    FUNCTION CODE                                            E0407300
*        DC    L(TEXT)                                                  E0407400
*        DC    TEXT                                                     E0407500
* R2=A(PBLK) FROM SVINT                                                 E0407600
* R5= FUN CODE FROM SVC2                                                E0407700
* R8=A(TCB) FROM SVINT                                                  E0407800
*##########################################################*            E0407900
*                                                                       E0408000
SVCLG    EQU   *                                                        E0408100
         LH    R5,2(R2)       PICK UP LENGTH                            E0408200
         LB    R0,0(R2)       PICK UP OPTIONS BYTE                      E0408300
         LHI   R4,4(R2)       ASSUME DIRECT TEXT                        E0408400
         THI   R0,X'40'       IS INDIRECT OPTION SET                    E0408500
         BZS   ATEXT1   IF NOT SET THEN SKIP INDIRECT PROCESS           E0408600
         LH    R4,4(R2)       PICK UP INDIRECT POINTER                  E0408700
         IFNZ  EXTMEM                                                EX E0408800
         SETM  R4,SVCCSW           MAP INDIRECT ADDR                 EX E0408900
         ENDC                                                        EX E0409000
         IFNZ  ST                                                       E0409100
         LHR   R14,R4                                                   E0409200
         BAL   R12,ADDCHK2                                              E0409300
         ENDC                                                           E0409400
         LHI   R15,SVC2RTN                                              E0409500
ATEXT1   EQU   *     GET READY FOR ATEXT                                E0409600
         SRLS  R0,7           SHIFT IMAGE OPTION TO LOW ORDER BIT       E0409700
         EPSR  R1,R1                                                 EX E0409800
         NHI   R1,X'7CF0'         CHANGE TO SU STATE FOR ATEXT       EX E0409900
         EPSR  R9,R1                                                 EX E0410000
         B     ATEXT     GO GIVE MESSAGE TO CMP                         E0410100
         ENDC                      *                              EN003 E0410200
         ENDC                      *                              EN003 E0410300
         TITLE SVC 2/8 REQUEST TIME                                     E0410400
         IFNZ  CLOCK                                                    E0410500
*                                                                       E0410600
*##########################################################*            E0410700
* SVC 2/8 GET TIME                                                      E0410800
* PBLK   DC    FUNCTION CODE                                            E0410900
*        DC    BUFFER ADDRESS                                           E0411000
*                                                                       E0411100
* FUNCTION CODE X'0008': CURRENT VALUE OF CLOCK IS                      E0411200
* MOVED INTO THE BUFFER SPECIFIED IN FORM HH:MM:SS.                     E0411300
* USER MUST ALLOCATE 8 BYTES. NO CHECK IS MADE ON                       E0411400
* BUFFER SIZE.                                                          E0411500
*                                                                       E0411600
* FUNCTION CODE  X'8008':  CURRENT BINARY VALUE OF                      E0411700
* CLOCK (SECONDS SINCE MIDNIGHT) IS PLACED INTO                         E0411800
* USERS BUFFER. BUFFER ADDRESS MUST BE ON HALFWORD                      E0411900
* BOUNDARY.                                                             E0412000
*##########################################################*            E0412100
*                                                                       E0412200
SVCLK    EQU   *                                                        E0412300
         LH    R14,2(R2)           GET BUFFER ADDR                      E0412400
         LH    R4,0(R2)           GET FUNCTION CODE                  EX E0412500
         IFNZ  EXTMEM                                                EX E0412600
         SETM  R14,SVCCSW          MAP BUFFER ADDR                   EX E0412700
         ENDC                                                        EX E0412800
         IFNZ  CMPROC*ST                                                E0412900
         BAL   R12,ADDCHK2                                              E0413000
         ENDC                      *                              EN003 E0413100
         LHR   R5,R14              SAVE BUFFER ADDR                     E0413200
         LHR   R4,R4                                                    E0413300
         BNMS  SVCLKA    GET ASCII TIME ?                               E0413400
         IFNZ  CMPROC*ST                                                E0413500
         THI   R5,1                ODD ADDR ?                           E0413600
         BNZ   SVC2LA              ILLEGAL ADDR IN SVC                  E0413700
         ENDC                      *                              EN003 E0413800
         LM    R14,SECPM           GET SECONDS PAST MIDNITE             E0413900
         STM   R14,0(R5)           PUT IN USER BUFFER                   E0414000
         BS    SCL.RTN                                                  E0414100
SVCLKA   EQU   *                                                        E0414200
         LIS   R4,8                                                     E0414300
         XHR   R4,R4                                                    E0414400
SVCLKB   LB    R14,CBUF(R4)        GET TIME IN HH:MM:SS                 E0414500
         STB   R14,0(R5)                                                E0414600
         AIS   R5,1                                                     E0414700
         AIS   R4,1                                                     E0414800
         CLHI  R4,8                                                     E0414900
         BLS   SVCLKB                                                   E0415000
SCL.RTN  B     SVC2RTN                                                  E0415100
         TITLE SVC 2/9 REQUEST DATE                                     E0415200
*                                                                       E0415300
*##########################################################*            E0415400
* SVC2/9 MOVES DATE FROM SYSTEM STORAGE TO USER                         E0415500
* SUPPLIED BUFFER IN FORM MM/DD/YY (OR DD/MM/YY IF DATE IS DEFINED)     E0415600
* 8 BYTES MUST BE ALLOCATED IN USER BUFFER                              E0415700
* R2=A(PBLK) FROM SVINT                                                 E0415800
*##########################################################*            E0415900
*                                                                       E0416000
SVCDT    EQU   *                                                        E0416100
         LH    R14,2(R2)           GET A(DEST)                          E0416200
         IFNZ  EXTMEM                                                EX E0416300
         SETM  R14,SVCCSW          MAP IT                            EX E0416400
         ENDC                                                        EX E0416500
         IFNZ  CMPROC*ST                                                E0416600
         BAL   R12,ADDCHK2                                              E0416700
         ENDC                      *                              EN003 E0416800
         XHR   R4,R4                                                    E0416900
SVCDTA   LB    R5,CALDAT(R4)                                            E0417000
         STB   R5,0(R14)                                                E0417100
         AIS   R14,1                                                    E0417200
         AIS   R4,1                                                     E0417300
         CLHI  R4,8                                                     E0417400
         BLS   SVCDTA                                                   E0417500
         B     SVC2RTN                                                  E0417600
         ENDC                                                           E0417700
         IFNZ  SVCTWO+CLOCK              *                              E0417800
         TITLE SVC 2/15 PACK DECIMAL-HEXIDECIMAL                        E0417900
*#####################################################                  E0418000
* SVC 2/15 PACK - CONVERT ASCII HEX OF DEC CHAR ACTERS TO BINARY        E0418100
*                                                                       E0418200
* R2 = A(PBLK)                                                          E0418300
* R8 = A(TCB)                                                           E0418400
*#####################################################                  E0418500
S2PAK    EQU   *                                                        E0418600
         LH    R4,0(R2)            GET OPTIONS                          E0418700
         LH    R13,2(R2)           GET REGISTER # WITH ADDRESS    EN008 E0418800
         AHR   R13,R13             DOUBLE IT                      EN008 E0418900
         LH    R5,SVCRSAV(R13)     R5=A(CHAR STRING)              EN008 E0419000
         IFNZ  EXTMEM                                                EX E0419100
         SETM  R5,SVCCSW           MAP ADDR OF CHAR STRING           EX E0419200
         ENDC                                                        EX E0419300
         IFNZ  CMPROC*ST                                                E0419400
         LHR   R14,R5                                                   E0419500
         BAL   R12,ADDCHK2         CHECK BUFFER ADDR                    E0419600
         ENDC                      *                              EN003 E0419700
         THI   R4,X'4000'          REMOVE LEADING BLANKS ?              E0419800
         BZS   RMVD                NO...                                E0419900
         LHI   R9,X'20'                                                 E0420000
RMVBLK   CLB   R9,0(R5)            REMOVE LEADING BLANKS                E0420100
         BNES  RMVD                                                     E0420200
         AIS   R5,1                                                     E0420300
         BS    RMVBLK                                                   E0420400
RMVD     XHR   R3,R3                                                    E0420500
         XHR   R0,R0                                                    E0420600
         XHR   R1,R1                                                 EX E0420700
 LHR R14,R4 SAVE OPTIONS                                                E0420800
 IFP OVTWO                                                              E0420900
 LHI R4,RMVD2 PACK PART 2                                               E0421000
         LIS   R6,OV2SIZ*4                                              E0421100
 B LDS2.N                                                               E0421200
         IFP   *-ENDOV2                                                 E0421300
ENDOV2   EQU   *                                                        E0421400
         ENDC                                                           E0421500
*                                                                       E0421600
* OVERLAY 4                                                             E0421700
*                                                                       E0421800
         ORG   0                                                        E0421900
         ORG   OV2                                                      E0422000
         ENDC                                                           E0422100
RMVD2 LHR R11,R13 PUT REG PTR IN R11                                    E0422200
 LHR R4,R14 DECIMAL PACK?                                               E0422300
         BM    DECPAK                   !ES...                          E0422400
PAKHEX   LB    R6,0(R5)            HEXIDECIMAL PACK                     E0422500
         SHI   R6,X'30'                                                 E0422600
         BC    NONHEX                                                   E0422700
         CLHI  R6,X'A'             CHECK FOR VALID HEX CHAR             E0422800
         BLS   HEXNUM                                                   E0422900
         SHI   R6,X'11'                                                 E0423000
         CLHI  R6,6                                                     E0423100
         BNLS  NONHEX                                                   E0423200
         AIS   R6,10                                                    E0423300
HEXNUM   SLL   R0,4               SHIFT 4 BITS                          E0423400
         OHR   R1,R6              ADD NEXT CHAR                         E0423500
         AIS   R5,1           ADJUST ADDR                               E0423600
         AIS   R3,1                ADJUST CHAR COUNT                    E0423700
         B     PAKHEX                                                   E0423800
NONHEX   LIS   R14,9               SET MAX DIGIT COUNT            EX    E0423900
         THI   R4,X'2000'          CHECK IF EXTENDED PRECISION    EX    E0424000
         BNZS  NONHEX2            YES                                EX E0424100
         LIS   R14,5               SET SINGLE PREC DIGIT CNT      EX    E0424200
NONDEC   LHR   R0,R1               NO,PUT ENTIRE ANSWER IN R0     EX    E0424300
         LH    R1,SVCRSAV+2       SET UP R1 NOT OT DESTROY R1        EX E0424400
         CLHI  R11,2               IS R1 HAVE PNTR                 EX   E0424500
         BNES  NONHEX1             NO                              EX   E0424600
         LHR   R1,R5               MOVE PTR R1                     EX   E0424700
NONHEX1  EQU   *                                                   EX   E0424800
NONHEX2  LHR   R3,R3                                                 EX E0424900
         BZS   NOCHAR              NO CHAR PROCESSED                    E0425000
         SHR   R3,R14                                             EX    E0425100
         BNLS  ERRPAK              TOO MANY CHAR PROCESSED              E0425200
ZEROCC   XHR   R3,R3                                                    E0425300
SAVARG   EQU   *                                                     EX E0425400
         IFZ   EXTMEM                                                EX E0425500
         STB   R3,SVCCSW+1        SAVE CC                            EX E0425600
         ELSE                                                        EX E0425700
         BAL   R14,SETCON                                            EX E0425800
         ENDC                                                        EX E0425900
         IFZ   EXTMEM                                                EX E0426000
         STH   R5,SVCRSAV(R11)    SAVE POINTER                       EX E0426100
         ELSE                                                        EX E0426200
         BAL   R14,SAVPTR                                            EX E0426300
         ENDC                                                        EX E0426400
         STH   R0,SVCRSAV          SAVE PACKED RESULT IN USER R0        E0426500
         STH   R1,SVCRSAV+2                                          EX E0426600
         B     SVC2RTN             RETURN                               E0426700
NOCHAR   LIS   R3,PSWCCL           SET CC=NO CHAR PROCESSED             E0426800
         BS    SAVARG                   R0 = 0                          E0426900
ERRPAK   LIS   R3,PSWCCV           SET CC=V...NUMBER TOO LARGE          E0427000
         BS    SAVARG                                                   E0427100
DECPAK   LIS   R10,10                                                   E0427200
         LCS   R14,1               SET MAX CHAR FOR DECIMAL          EX E0427300
PAKDEC   LB    R6,0(R5)            DECIMAL PACK                         E0427400
         SHI   R6,X'30'                                                 E0427500
         BL    NONDEC                                             EX    E0427600
         CLHI  R6,X'0A'                                                 E0427700
         BNL   NONDEC                                             EX    E0427800
         AIS   R3,1                                                     E0427900
         MHUR  R0,R10              NUMBER * 10 + NEXT CHAR              E0428000
         LHR   R0,R0                                                    E0428100
         BZS   *+4                                                      E0428200
         LCS   R3,1                                                     E0428300
         AHR   R1,R6                                                    E0428400
         BNCS  PAKND               NUMBER TOO LARGE                     E0428500
         LCS   R3,1                YES....SET INDICATOR                 E0428600
PAKND    AIS   R5,1                                                     E0428700
         B     PAKDEC                                                   E0428800
*                                                                 EN008 E0428900
*                                                                 EN008 E0429000
*                                                                 EN008 E0429100
*                                                                 EN008 E0429200
*                                                                 EN008 E0429300
         IFP   OVTWO                                                    E0429400
         IFP   *-ENDOV2                                                 E0429500
ENDOV2   EQU   *                                                        E0429600
         ENDC                                                           E0429700
*                                                                       E0429800
* OVERLAY 5                                                             E0429900
*                                                                       E0430000
         ORG   0                                                        E0430100
         ORG   OV2                                                      E0430200
         ENDC                                                           E0430300
         TITLE SVC 2/16 PACK FILE DESCRIPTOR                            E0430400
*#######################################################*               E0430500
* SVC 2/16 PACK FILE DESCRIPTOR                                         E0430600
* R2 = A(PBLK)                                                          E0430700
* R8 = A(TCB)                                                           E0430800
*#######################################################*               E0430900
S2PKFILE EQU   *                                                        E0431000
         LCS   R4,1         INITIALIZE FOR MOVE SUBROUTINE              E0431100
         LH    R5,2(R2)                                                 E0431200
         AHR   R5,R5                                                    E0431300
         LHR   R13,R5                                                   E0431400
         LH    R6,4(R2)           A(DEST)                            EX E0431500
         LH    R2,0(R2)           OPTIONS                            EX E0431600
         LH    R5,SVCRSAV(R5)                                           E0431700
         IFNZ  EXTMEM                                                EX E0431800
         SETM  R6,SVCCSW           MAP DESTINATION                   EX E0431900
         EPSR  R1,R1              SAVE PSW                           EX E0432000
         SETM  R5,SVCCSW           MAP SOURCE                        EX E0432100
         EPSR  R0,R0              SAVE PSW                           EX E0432200
         ENDC                                                        EX E0432300
         IFNZ  CMPROC*ST                                                E0432400
         LHR   R14,R5                                                   E0432500
         BAL   R12,ADDCHK2         CHECK SOURCE ADDR                    E0432600
         IFNZ  EXTMEM                                                EX E0432700
         EPSR  R12,R1                                                EX E0432800
         ENDC                                                        EX E0432900
         LHR   R14,R6                                                   E0433000
         BAL   R12,ADDCHK2         CHECK DEST ADDR                      E0433100
         ENDC                                                        EX E0433200
         LHR   R10,R6                                                   E0433300
         LHR   R12,R2                                                EX E0433400
         LHI   R3,X'20'                                              EX E0433500
         THI   R12,X'4000'         SKIP LEADING BLANKS ?                E0433600
         BZS   VOLUME                                                   E0433700
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0433800
         LPSR  R0                  TALK TO SOURCE                    EX E0433900
         ENDC                      *                                 EX E0434000
SKIPBLNK CLB   R3,0(R5)                                              EX E0434100
         BNES  VOLUME                                                   E0434200
         AIS   R5,1                                                     E0434300
         BS    SKIPBLNK                                                 E0434400
VOLUME   EQU   *                   *                                 EX E0434500
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0434600
         LPSR  R1                  TALK TO DEST                      EX E0434700
         ENDC                      *                                 EX E0434800
         LM    R14,0(R6)           SAVE VOLUME                       EX E0434900
         STM   R14,VOLSAVE                                              E0435000
         LHR   R8,R5                                                    E0435100
         LHI   R9,16                                                    E0435200
FILBLNK  STB   R3,0(R6)           BLANK THE ENTIRE DESTINATION FIELD EX E0435300
         AIS   R6,1                                                     E0435400
         SIS   R9,1                                                     E0435500
         BNZS  FILBLNK                                                  E0435600
 LIS R7,5    LENGTH =4                                                  E0435700
*                                                                       E0435800
*                                                                       E0435900
         IFP   OVTWO                                                    E0436000
         LHI   R4,PKFL2                                                 E0436100
         LIS   R6,OV2SIZ*6                                              E0436200
         B     LDS2.N         LOAD NEXT OVERLAY FOR 2.16 PART 2         E0436300
         IFP   *-ENDOV2                                                 E0436400
ENDOV2   EQU   *                                                        E0436500
         ENDC                                                           E0436600
*                                                                       E0436700
* OVERLAY 6                                                             E0436800
*                                                                       E0436900
         ORG   0                                                        E0437000
         ORG   OV2                                                      E0437100
         ENDC                                                           E0437200
*                                                                       E0437300
PKFL2    LHR   R6,R10                                                   E0437400
         XHR   R11,R11             INITIALIZE FOR CC                    E0437500
         BAL   R15,FMOVE          GO MOVE VOLUME                        E0437600
         BNM   NOVOL          IF NOT MINUS MORE THAN 4 CHARS WERE MOVED E0437700
         CLHI  R9,C':'        DELIMETER = ':' " NO                      E0437800
         BNE   NOVOL                                                    E0437900
 AIS R5,1                                                               E0438000
FILENAME        LHI   R6,4(R10)      DEST+4 IS FILE NAME TARGET         E0438100
  LIS   R7,9                LENGTH = 8                           E031230E0438200
         BAL   R15,FMOVE      MOVE FILE NAME                            E0438300
 BNMS SYNT2 IF MORE THAN 8 CHARS, SYNTAX ERROR                          E0438400
         CLHI  R7,9                FILENAME FOUND ?                     E0438500
         BE    NOFNAME             NO...NO FILENAME FOUND               E0438600
         CLHI  R9,C'.'             DELIMETER = '.' ?                    E0438700
         BNE   NOEXT          IF NOT GO SET CC                          E0438800
         LHI   R6,12(R10)     DEST+12 IS EXT TARGET                     E0438900
         AIS   R5,1                                                     E0439000
         LIS   R7,4                LENGTH = 3                           E0439100
         BAL   R15,FMOVE1     MOVE EXT (ALPHANUMERIC ALLOWED FIRST)     E0439200
SYNT2    BNMS  SYNTAX              IF MORE THAN 3 -> SYNTAX             E0439300
PKFLRTN  EQU   *                                                     EX E0439400
         IFZ   EXTMEM                                                EX E0439500
         STH   R5,SVCRSAV(R13)    SAVE PTR                           EX E0439600
         ELSE                                                        EX E0439700
         LHR   R3,R11                                                EX E0439800
         LHR   R11,R13                                               EX E0439900
         BAL   R14,SAVPTR         SAVE PTR                           EX E0440000
         LHR   R11,R3                                                EX E0440100
         ENDC                                                           E0440200
PKFLRTN1 EQU   *                                                     EX E0440300
         IFZ   EXTMEM                                                EX E0440400
         STB   R11,SVCCSW+1       SAVE CC                            EX E0440500
         ELSE                                                        EX E0440600
         LHR   R3,R11                                                EX E0440700
         BAL   R14,SETCON         SAVE CC                            EX E0440800
         ENDC                                                        EX E0440900
         B     SVC2RTN                                                  E0441000
NOFNAME  EQU   *                                                        E0441100
         THI   R11,PSWCCL         IF NO VOL EITHER IT IS A SYNTAX       E0441200
         BZS   NOEXT                                                    E0441300
SYNTAX   AIS   R11,PSWCCV          SET CC = SYNTAX                      E0441400
         BS    PKFLRTN1                                                 E0441500
NOEXT    AIS   R11,PSWCCC          SET CC = NO EXTENSION                E0441600
         B     PKFLRTN                                                  E0441700
NOVOL    EQU   *                                                        E0441800
         LHR   R5,R8               GET A(SOURCE)                        E0441900
 LM R14,SYSVOL                                                          E0442000
         LHR   R12,R12                                                  E0442100
         BNMS  RESV             SYSTEM VOLUME OPTION SET ?           E03E0442200
         LM    R14,VOLSAVE                                              E0442300
RESV     EQU   *                                                     EX E0442400
         IFNZ  EXTMEM                                                EX E0442500
         EPSR  R6,R1              TALK TO DESTINATION                EX E0442600
         ENDC                                                        EX E0442700
         STM   R14,0(R10)         RESTORE VOL FIELD                  EX E0442800
         AIS   R11,PSWCCL          SET CC = NO VOLUME                   E0442900
         B     FILENAME                                                 E0443000
         TITLE FMOVE  MOVE SUBROUTINE USED BY SVC 2,16                  E0443100
*###########################################################            E0443200
*        R3 AND R9 USED                                                 E0443300
*        R5 - A(INPUT)                                                  E0443400
*        R6 - A(DEST)                                                   E0443500
*        R7 - LENGTH                                                    E0443600
*        R15 - EXIT ADDRESS                                             E0443700
*        FMOVE ENTRY REQUIRES ALPHA 1ST FOLLOWED BY ALPHANUMERIC        E0443800
*        FMOVE1 ALPHANUMERIC                                            E0443900
*        R9 CONTAINS LAST CHARACTER CHECKED ON EXIT                     E0444000
*        IF CC=0 ALL CHARACTERS WERE MOVED                              E0444100
*        IF CC#0 A TERMINATING CHAR WAS FOUND                           E0444200
*                                                                       E0444300
*###########################################################            E0444400
FMOVE2   EQU   *                                                     EX E0444500
         IFNZ  EXTMEM                                                EX E0444600
         EPSR  R14,R1             TALK TO DEST                       EX E0444700
         ENDC                                                        EX E0444800
         STB   R9,0(R6)           STORE CHARACTER                    EX E0444900
         AIS   R5,1           INCREMENT INPUT                           E0445000
         AIS   R6,1           AND DEST PTRS                             E0445100
         SIS   R7,1           DECREMENT COUNT                           E0445200
         BZR   R15            IF NO MORE LEFT EXIT WITH CC=0            E0445300
FMOVE1   EQU   *                                                        E0445400
         IFNZ  EXTMEM                                                EX E0445500
         EPSR  R14,R0             TALK TO SOURCE                     EX E0445600
         ENDC                                                        EX E0445700
         LB    R9,0(R5)       GET INPUT CHAR                            E0445800
         CLHI  R9,C'0'        CHECK NUMERICS                            E0445900
         BLS   FMEXIT              IF NOT EXIT                          E0446000
         CLHI  R9,C'9'+1                                                E0446100
FMOVE4   BLS   FMOVE2         IF OK MOVE IT                             E0446200
FMOVE3   CLHI  R9,C'A'        CHECK ALPHABETIC                          E0446300
         BLS   FMEXIT                                                   E0446400
         CLHI  R9,C'Z'+1                                                E0446500
         BLS   FMOVE4              IF OK,MOVE IT                        E0446600
FMEXIT   LCS   R3,1           SET L BIT IN CC                           E0446700
         BR    R15            EXIT                                      E0446800
FMOVE    EQU   *                                                     EX E0446900
         IFNZ  EXTMEM                                                EX E0447000
         EPSR  R14,R0             TALK TO SOURCE                     EX E0447100
         ENDC                                                        EX E0447200
         LB    R9,0(R5)           PICK UP CHARACTER                  EX E0447300
         BS    FMOVE3              GO CHECK ALPHA ONLY FIRST            E0447400
         IFP   OVTWO                                                    E0447500
         IFP   *-ENDOV2                                                 E0447600
ENDOV2   EQU   *                                                        E0447700
         ENDC                                                           E0447800
*                                                                       E0447900
* OVERLAY 7                                                             E0448000
*                                                                       E0448100
         ORG   0                                                        E0448200
         ORG   OV2                                                      E0448300
         ENDC                                                           E0448400
         TITLE SVC 2/17 SCAN MNEUMONIC TABLE                            E0448500
*########################################################*              E0448600
*                                                                       E0448700
* R2 = A(PBLK)                                                          E0448800
* R8 = A(TCB)                                                           E0448900
*########################################################*              E0449000
S2SCAN   EQU   *                                                        E0449100
         XHR   R7,R7                                                    E0449200
         LH    R6,4(R2)            GET A(MNEMONIC TABLE)                E0449300
         LB    R10,2(R2)          GET REG1                           EX E0449400
         LB    R1,3(R2)           GET REG2                           EX E0449500
         IFNZ  EXTMEM                                                EX E0449600
         SETM  R6,SVCCSW           MAP A(MNEM TABLE)                 EX E0449700
         EPSR  R0,R0              SAVE PSW                           EX E0449800
         ENDC                                                        EX E0449900
         IFNZ  CMPROC*ST                                                E0450000
         LHR   R14,R6                                                   E0450100
         BAL   R12,ADDCHK2                                              E0450200
         ENDC                      *                              EN003 E0450300
         AHR   R10,R10             DOUBLE THEM                          E0450400
         AHR   R1,R1                                                    E0450500
         XHR   R4,R4               INITIALZE TABLE POSITION             E0450600
         LH    R14,SVCRSAV(R10)    A(SOURCE)                            E0450700
         IFNZ  EXTMEM                                                EX E0450800
         SETM  R14,SVCCSW          MAP SOURCE                        EX E0450900
         EPSR  R2,R2               SAVE PSW                          EX E0451000
         ENDC                                                        EX E0451100
         IFNZ  CMPROC*ST                                                E0451200
         BAL   R12,ADDCHK2                                              E0451300
         ENDC                      *                              EN003 E0451400
BEGSOURC LHR   R5,R14              GET A(SOURCE)                        E0451500
         BS    TABCOMP                                                  E0451600
CHKALPHA EQU   *                                                     EX E0451700
         IFNZ  EXTMEM                                                EX E0451800
         LPSR  R2                  TALK TO SOURCE                    EX E0451900
         ENDC                                                        EX E0452000
         LB    R11,0(R5)                                             EX E0452100
         BAL   R13,ALPHAC          SOURCE = ALPHA ?                     E0452200
         BTC   15,NOALPHA          NO..                                 E0452300
TABCOMP  EQU   *                                                     EX E0452400
         IFNZ  EXTMEM                                                EX E0452500
         LPSR  R0                 TALK TO TABLE                      EX E0452600
         ENDC                                                        EX E0452700
         LB    R9,0(R6)                                              EX E0452800
         NHI   R9,X'7F'                                                 E0452900
         IFNZ  EXTMEM                                                EX E0453000
         LPSR  R2                  TALK TO SOURCE                    EX E0453100
         ENDC                                                        EX E0453200
         CLB   R9,0(R5)            = SOURCE CHAR ?                      E0453300
         BNES  SCAN00                                                   E0453400
         AIS   R5,1                BUMP TABLE AND SOURCE ADDRS          E0453500
         AIS   R6,1                                                     E0453600
         IFNZ  EXTMEM                                                EX E0453700
         LPSR  R0                 TALK TO TABLE                      EX E0453800
         ENDC                                                        EX E0453900
         CLB   R7,0(R6)            END OF TABLE ENTRY ?                 E0454000
         BZ    RTRST                                                    E0454100
         B     CHKALPHA                                                 E0454200
SCAN00   AIS   R6,1                                                     E0454300
         IFNZ  EXTMEM                                                EX E0454400
         LPSR  R0                 TALK TO TABLE                      EX E0454500
         ENDC                                                        EX E0454600
         CLB   R7,0(R6)                                                 E0454700
SCAN01   BNES  SCAN00                                                   E0454800
SF00     AIS   R6,1           SET POINTER TO 1ST CHAR OF NEXT ENTR      E0454900
         AIS   R4,1                KEEP COUNT OF TABLE ENTRY            E0455000
         IFNZ  EXTMEM             TALK TO TABLE                      EX E0455100
         LPSR  R0                                                    EX E0455200
         ENDC                                                        EX E0455300
         LB    R9,0(R6)            GET CHAR FROM TABLE                  E0455400
         LHR   R9,R9                                                    E0455500
         BZ    NOMATCH   = 0 ?   YES...END OF TABLE                     E0455600
         B     BEGSOURC                                                 E0455700
NOALPHA  EQU   *                                                     EX E0455800
         IFNZ  EXTMEM                                                EX E0455900
         LPSR  R0                 TALK TO TABLE                      EX E0456000
         ENDC                                                        EX E0456100
         LB    R9,0(R6)                                              EX E0456200
         THI   R9,X'80'                                                 E0456300
         BNZ   SCAN01             GO TRY NEXT LABEL ENTRY               E0456400
GDRST    EQU   *                                                     EX E0456500
         IFZ   EXTMEM                                                EX E0456600
         STH   R5,SVCRSAV(R10)    RETURN POINTER                     EX E0456700
         ELSE                                                        EX E0456800
         LHR   R11,R10                                               EX E0456900
         BAL   R14,SAVPTR          *                                 EX E0457000
         ENDC                                                        EX E0457100
SAVRESLT EQU   *                                                     EX E0457200
         IFZ   EXTMEM                                                EX E0457300
         STB   R7,SVCCSW+1        RETURN CC                          EX E0457400
         ELSE                                                        EX E0457500
         LHR   R3,R7                                                 EX E0457600
         BAL   R14,SETCON                                            EX E0457700
         ENDC                                                        EX E0457800
         STH   R4,SVCRSAV(R1)      RETURN REG2                          E0457900
         B     SVC2RTN                                                  E0458000
NOMATCH  LCS   R4,1                REG2 = -1                            E0458100
         LIS   R7,PSWCCV           CC = 4 ********************          E0458200
         BS    SAVRESLT                                                 E0458300
RTRST    EQU   *                                                     EX E0458400
         IFNZ  EXTMEM             TALK TO SOURCE                     EX E0458500
         LPSR  R2                  *                                 EX E0458600
         ENDC                                                        EX E0458700
         LB    R11,0(R5)                                             EX E0458800
         BAL   R13,ALPHAC     CHECK NEXT CHAR OF SOURCE                 E0458900
         BTC   15,GDRST           =ALPHA?                               E0459000
         B     SF00           YES...CHECK NEXT TABLE ENTRY              E0459100
         IFP   OVTWO                                                    E0459200
         IFP   *-ENDOV2                                                 E0459300
ENDOV2   EQU   *                                                        E0459400
         ENDC                                                           E0459500
*                                                                       E0459600
* OVERLAY 8                                                             E0459700
*                                                                       E0459800
         ORG   0                                                        E0459900
         ORG   OV2                                                      E0460000
         ENDC                                                           E0460100
         TITLE SVC 2/18 MOVE ASCII CHAR                                 E0460200
*                                                                       E0460300
*######################################################*                E0460400
* R2=A(PBLK)                                                            E0460500
* R8=A(TCB)                                                             E0460600
*######################################################*                E0460700
S2MOV    EQU   *                                                        E0460800
         LB    R6,3(R2)                                                 E0460900
         LB    R5,2(R2)           GET REG1                           EX E0461000
         AHR   R6,R6                DOUBLE IT                           E0461100
         LH    RD,SVCRSAV(R6) GET A(TARGET)                             E0461200
         LH    RB,0(R2)            GET OPTIONS...BIT 0:1=USE END STRING E0461300
         BNMS  S2MOV.NC            SKIP CHECK IF NO ENDING STRING       E0461400
         LH    RA,4(R2)       GET A(END CHAR STRING)                    E0461500
         IFNZ  EXTMEM                                                EX E0461600
         SETM  RA,SVCCSW           MAP IT                            EX E0461700
         EPSR  R1,R1                                                 EX E0461800
         ENDC                                                        EX E0461900
         IFNZ  CMPROC*ST                                                E0462000
         LHR   R14,R10                                                  E0462100
         BAL   R12,ADDCHK2                                              E0462200
         ENDC                      *                              EN003 E0462300
S2MOV.NC EQU   *                                                        E0462400
         IFNZ  EXTMEM                                                EX E0462500
         SETM  R13,SVCCSW          MAP A(TARGET)                     EX E0462600
         EPSR  R4,R4                                                 EX E0462700
         ENDC                                                        EX E0462800
         IFNZ  CMPROC*ST                                                E0462900
         LHR   R14,R13                                               EX E0463000
         BAL   R12,ADDCHK2                                           EX E0463100
         ENDC                                                        EX E0463200
         AHR   R5,R5                DOUBLE IT                           E0463300
         LH    R12,SVCRSAV(R5)                                       EX E0463400
         IFNZ  EXTMEM                                                EX E0463500
         SETM  R12,SVCCSW          MAP A(SOURCE)                     EX E0463600
         EPSR  R2,R2                                                 EX E0463700
         ENDC                                                        EX E0463800
         IFNZ  CMPROC*ST                                                E0463900
         LHR   R14,R12                                               EX E0464000
         BAL   R12,ADDCHK2                                              E0464100
         LHR   R12,R14                                                  E0464200
         ENDC                      *                              EN003 E0464300
         LCS   RF,1                SET END NOT FOUND               296D E0464400
         LHR   RE,RB              GET LENGTH                         EX E0464500
         AHR   RE,RE              KILL BIT 0                         EX E0464600
         SRLS  RE,9               SET IN BOTTOM OF REGISTER          EX E0464700
         BZS   S2MOV.Z             EXIT IF LENGTH = 0              296D E0464800
         BAL   R8,MOVE        GO MOVE                                   E0464900
S2MOV.Z  EQU   *                   *                               296D E0465000
         LHR   RB,RB          END STRING OPTION                         E0465100
         BNMS  ENDFND              IF JUST MOVE, SET CC=0          296D E0465200
         LHR   RF,RF          END CHAR FOUND ?                          E0465300
         BNMS  ENDFND                                                   E0465400
         LIS   R7,PSWCCV           SET CC = 4 (NCHARS MOVED WITH NO     E0465500
         BS    S2MOVRTN                ENDING CHAR)                     E0465600
ENDFND   XHR   R7,R7               CC = 0  (ENDING CHAR FOUND)          E0465700
S2MOVRTN EQU   *                                                     EX E0465800
         IFZ   EXTMEM                                                EX E0465900
         STB   R7,SVCCSW+1                                           EX E0466000
         STH   RD,SVCRSAV(R6) UPDATE TARGET POINTER                     E0466100
         STH   RC,SVCRSAV(R5) AND INPUT POINTER                         E0466200
         ELSE                                                        EX E0466300
         LHR   R11,R5                                                EX E0466400
         LHR   R5,RC                                                 EX E0466500
         BAL   R14,SAVPTR                                            EX E0466600
         LHR   R3,R7               EX                                   E0466700
         BAL   R14,SETCON                                         EX    E0466800
         LHR   R11,R6                                                EX E0466900
         LHR   R5,RD                                                 EX E0467000
         BAL   R14,SAVPTR                                            EX E0467100
         ENDC                                                        EX E0467200
         B     SVC2RTN                                                  E0467300
         TITLE SVC 2/19 PEEK                                            E0467400
*########################################################*              E0467500
*                                                                       E0467600
* R2 = A(PBLK)                                                          E0467700
* R8 = A(TCB)                                                           E0467800
*########################################################*              E0467900
S2PEEK   EQU   *                                                        E0468000
         LB    R4,TCB.NLU(R8)      GET # LU'S                           E0468100
         STB   R4,2(R2)            MAXIMUM LUS                          E0468200
         LB    R4,TCB.MPRI(R8)                                          E0468300
         STB   R4,3(R2)            MAXIMUM PRIORETY                     E0468400
         LM    R12,LEVEL           REVISION LEVEL                       E0468500
         STM   R12,4(R2)                                                E0468600
         LM    R12,TCB.ID(R8)                                           E0468700
         STM   R12,12(R2)                                               E0468800
         LH    R4,TCB.CTSW(R8)     CURRENT TSW                          E0468900
         STH   R4,20(R2)                                                E0469000
         LH    R4,TCB.OPT(R8)      TASK OPTIONS                         E0469100
         STH   R4,22(R2)                                                E0469200
         LH    R4,TCB.STAT(R8)     STATUS                               E0469300
         STH   R4,24(R2)                                                E0469400
         B     SVC2RTN                                                  E0469500
LEVEL    DC    C'OS16MT23'         OSID RETURNED ON PEEK *****          E0469600
         TITLE SVC 2 INITIAL OVERLAY                                    E0469700
         IFP   OVTWO                                                    E0469800
         IFP   *-ENDOV2                                                 E0469900
ENDOV2   EQU   *                                                        E0470000
         ENDC                                                           E0470100
*                                                                       E0470200
*        OVERLAY 9                                                      E0470300
*                                                                       E0470400
         ORG   0                                                        E0470500
         ORG   OV2                                                      E0470600
         ELSE                                                           E0470700
SVC2     EQU   *                                                        E0470800
         ENDC                                                           E0470900
SVC2DO   LHI   R15,SVC2RTN        SET RETURN ADDR                       E0471000
         LH    R6,SVCCSW+2        GET SVC LOC                           E0471100
         IFNZ  EXTMEM                                                   E0471200
 EPSR R5,R5  SAVE PB PSW                                                E0471300
         SETM  R6,SVCCSW          MAP IF EXTMEM                         E0471400
         ENDC                                                           E0471500
    LB R6,-3(R6)   GET SVC NUMBER                                       E0471600
         IFNZ  EXTMEM                                                   E0471700
 LPSR R5   RESTORE PB PSW                                               E0471800
         ENDC                                                           E0471900
         SRLS  R6,4               GET SVC # IN BITS 12-15               E0472000
         LHI   R5,24              ASSUME SVC3                           E0472100
         CLHI  R6,3               IS IT?                                E0472200
         BES   SVC2D1             YES                                   E0472300
         AIS   R5,1               ASSUME SVC 9                          E0472400
         SIS   R6,9               IS IT?                                E0472500
         BES   SVC2D1             YES                                   E0472600
         LB    R5,1(R2)           FETCH FUNCTION CODE                   E0472700
         CLHI  R5,24                                                    E0472800
         BNL   SVC2IL                                                   E0472900
SVC2D1   LHR   R6,R5              FETCH BRANCH POINTER                  E0473000
         AHR   R6,R6              GET TABLE INDEX                       E0473100
         LH    R4,STAB(R6)                                              E0473200
         IFP   OVTWO                                                    E0473300
         SRLS  R6,1                                                     E0473400
         LB    R6,S2OVN(R6)       GET OVERLAY NUMBER                    E0473500
         B     LDS2.N             GO LOAD OVERLAY                       E0473600
         ELSE                                                           E0473700
         BR    R4                                                       E0473800
         ENDC                                                           E0473900
STAB     EQU   *                                                        E0474000
         IFNZ  SVCTWO              *                              EN003 E0474100
         IFP   JOURNAL0                                                 E0474200
         DC    S2JRNL                                                   E0474300
         ELSE                                                           E0474400
         DC    SVC2RTN             IF NO JOURNAL,IGNORE SVC 2 CODE 0    E0474500
         ENDC                                                           E0474600
         DC    S2PAUS                                                   E0474700
         DC    S2GETS                                                   E0474800
         DC    S2RELS                                                   E0474900
         DC    S2SETS                                                   E0475000
         DC    S2FPTR                                                   E0475100
         DC    S2UPAK                                                   E0475200
         IFNZ  CMPROC              *                              EN003 E0475300
         DC    SVCLG                                                    E0475400
         ELSE                      *                              EN003 E0475500
         DC    SVC2RTN             *                              EN003 E0475600
         ENDC                      *                              EN003 E0475700
         ELSE                      *                              EN003 E0475800
         DO    8                   *                              EN003 E0475900
         DC    SVC2IL              *                              EN003 E0476000
         ENDC                      *                              EN003 E0476100
         IFNZ  CLOCK                                                    E0476200
         DC    SVCLK                                                    E0476300
         DC    SVCDT                                                    E0476400
         ELSE                                                           E0476500
         DC    SVC2RTN                                                  E0476600
         DC    SVC2RTN                                                  E0476700
         ENDC                                                           E0476800
         DC    SVC2IL                                                   E0476900
         DC    SVC2IL                                                   E0477000
         DC    SVC2IL                                                   E0477100
         DC    SVC2IL                                                   E0477200
         DC    SVC2IL                                                   E0477300
         IFNZ  SVCTWO              *                              EN003 E0477400
         DC    S2PAK                                                    E0477500
         DC    S2PKFILE                                                 E0477600
         DC    S2SCAN                                                   E0477700
         DC    S2MOV                                                    E0477800
         DC    S2PEEK                                                   E0477900
         DC    S2EXP                                                    E0478000
         DC    S2CON                                                    E0478100
         ELSE                      *                              EN003 E0478200
         DO    7                   *                              EN003 E0478300
         DC    SVC2IL              *                              EN003 E0478400
         ENDC                      *                              EN003 E0478500
         DC    SVC2IL                                                   E0478600
         IFNZ  PCLOCK                                                   E0478700
         DC    S2TIME                                                   E0478800
         ELSE                                                           E0478900
         DC    SVC2RTN                                                  E0479000
         ENDC                                                           E0479100
         DC    SVC3                                                     E0479200
         DC    SVC9                                                     E0479300
         IFP   OVTWO                                                    E0479400
*                                                                       E0479500
* TABLE OF (OV NO * SECTS/OV) FOR EACH ROUTINE CALLED OFF STAB          E0479600
*                                                                       E0479700
S2OVN    EQU   *                                                        E0479800
         IFP   JOURNAL0                                                 E0479900
         DB    OV2SIZ*0            2.0                                  E0480000
         ELSE                                                           E0480100
         DB    -1             2.0  ILG                                  E0480200
         ENDC                                                           E0480300
         DB    -1                  RESIDENT                             E0480400
         DB    OV2SIZ*0            2.2                                  E0480500
         DB    OV2SIZ*1            2.23                                 E0480600
         DB    OV2SIZ*1            2.24                                 E0480700
         DB    OV2SIZ*1            2.25                                 E0480800
         DB    OV2SIZ*2            2.26                                 E0480900
         DB    OV2SIZ*3            2.27                                 E0481000
         IFP   CLOCK                                                    E0481100
         DB    OV2SIZ*3            2.8                                  E0481200
         DB    OV2SIZ*3            2.9                                  E0481300
         ELSE                                                           E0481400
         DB    -1             2.8  IGNORED                              E0481500
         DB    -1             2.9  IGNORED                              E0481600
         ENDC                                                           E0481700
         DB    -1             2.10 ILG                                  E0481800
         DB    -1             2.11 ILG                                  E0481900
         DB    -1             2.12 ILG                                  E0482000
         DB    -1             2.13 ILG                                  E0482100
         DB    -1             2.14 ILG                                  E0482200
         DB    OV2SIZ*3            2.15                                 E0482300
         DB    OV2SIZ*5            2.16 PART 1                          E0482400
         DB    OV2SIZ*7            2.17                                 E0482500
         DB    OV2SIZ*8            2.18                                 E0482600
         DB    OV2SIZ*8            2.19                                 E0482700
         DB    OV2SIZ*1            2.20                                 E0482800
         DB    OV2SIZ*1            2.21                                 E0482900
         DB    -1             2.22 ILG                                  E0483000
         DB    -1             2.23 RESIDENT                             E0483100
         DB    OV2SIZ*10                                                E0483200
         DB    OV2SIZ*12                                                E0483300
         ALIGN 2                                                        E0483400
         IFP   *-ENDOV2                                                 E0483500
ENDOV2   EQU   *                                                        E0483600
         ENDC                                                           E0483700
*                                                                       E0483800
*        OVERLAY 10                                                     E0483900
*                                                                       E0484000
         ORG   0                                                        E0484100
         ORG   OV2                                                      E0484200
         ENDC                                                           E0484300
         TITLE SVC 3 END OF JOB                                         E0484400
*                                                                       E0484500
*##########################################################*            E0484600
* END OF JOB ROUTINE                                                    E0484700
*                                                                       E0484800
* CALL SVC 3,N(RX)                                                      E0484900
* R2=N,R8=A(TCB) FROM SVINT                                             E0485000
*                                                                       E0485100
*                                                                       E0485200
*##########################################################*            E0485300
*                                                                       E0485400
SVC3     EQU   *                                                        E0485500
  LHI R4,SUSTAT    GO TO SU STATE                                       E0485600
   EPSR R7,R4                                                           E0485700
         LH    R7,TCB.FLGS(R8)     SET CANCEL PENDING             EN001 E0485800
         OHI   R7,TFLG.CPM                                              E0485900
         STH   R7,TCB.FLGS(R8)     *                              EN001 E0486000
         STH   R2,TCB.RC(R8)       STORE RETURN CODE                    E0486100
         LH    R7,TCB.OPT(R8)      GET TASK OPTIONS               EN001 E0486200
         IFNZ  FOREGRND*CMPROC     *                              EN003 E0486300
         THI   R7,TOPT.MRM+TOPT.BGM  MEMORY RESIDENT OR BG TASK         E0486400
         BNZS  SVC3.CCT                                                 E0486500
         LHR   R13,R3                                                   E0486600
         BAL   R12,CLRC10          CLEAR CMP CURRENT TASK IF SET        E0486700
SVC3.CCT EQU   *                                                        E0486800
         ENDC                                                           E0486900
         XHR   R14,R14                                                  E0487000
         STH   R14,TCB.CTSW(R8)    ZERO TSW TO PREVENT TRAPS            E0487100
         IFNZ  PCLOCK                                                   E0487200
         AIS   R3,1                TCB PTR IS ODD FOR 'Q' WAIT    EN007 E0487300
         BAL   R14,TIMCAN          RMVE Q WT FROM TIMTSV          EN007 E0487400
         SIS   R3,1                NORMAL TCB PT FOR TIME WAIT    EN007 E0487500
         BAL   R14,TIMCAN          RMVE TIME WT FROM TIMTSV       EN007 E0487600
         ENDC                                                           E0487700
         LHI   R4,ETSTAT           GO TO ET STATE                       E0487800
         EPSR  R6,R4                                                    E0487900
         LHR   R13,R8              A(TCB) FOR SVC1CN                    E0488000
         IFNZ  SVCSEVEN            *                              EN003 E0488100
         LHI   R12,S7CM.CLM        CLOSE                                E0488200
         THI   R7,TOPT.MRM         MEMORY RESIDENT ?                    E0488300
         BZS   SVC3.NR                                                  E0488400
         LHI   R12,S7CM.CPM        YES...CHECKPT LU'S                   E0488500
SVC3.NR  EQU   *                   *                              EN003 E0488600
         ENDC                      *                              EN003 E0488700
         LHR   R10,R8              GET A(TCB)                     EN003 E0488800
         XHR   R6,R6               LU # = 0                             E0488900
         IFNZ  SVCSEVEN            *                              EN003 E0489000
          STH   R12,TCB.TVAL(R8)    CLOSE/CHECKPT FUNCTION CODE         E0489100
         ENDC                      *                              EN003 E0489200
LUEOJ    LH    R11,TCB.LTAB(R10)   GET A(DCB/FCB) FROM LU TABLE         E0489300
         BZ    LUEND               UNASSIGNED                           E0489400
         NHI   R11,X'FFFE'         MAKE EVEN                            E0489500
         IFNZ  DISCMGT&SVCSEVEN    *                              EN003 E0489600
         CLH   R11,UBOT            FCB ?                                E0489700
         BNLS  LUCC                YES...NO READ CHECK                  E0489800
         ENDC                      *                              EN003 E0489900
         LB    R12,DCB.RSAV(R11)   GET TCB POINTER                      E0490000
         CLB   R12,TCB.PNT(R8)     THIS TASK ?                          E0490100
         BNES  LUCC                                                     E0490200
         LH    R12,DCB.RSAV+4(R11) GET FUNCTION CODE                    E0490300
         BMS   LUCC                COMMAND                              E0490400
         THI   R12,DATR.RDM        READ ?                               E0490500
         BZS   LUCC                NO...OK TO CLOSE/CHECKPT             E0490600
         BAL   R12,SVC1CN          CANCEL READ                          E0490700
LUCC     EQU   *                   *                              EN003 E0490800
         IFNZ  SVCSEVEN            *                              EN003 E0490900
         STB   R6,SVC7.LU+TCB.TVAL(R8)  SET UP LU                 EN003 E0491000
         SVC   7,TCB.TVAL(R8)      TIME-OUT FIELD USED FOR SVC7 PBLK    E0491100
         ENDC                      *                              EN003 E0491200
LUEND    AIS   R6,1                BUMP TO NEXT LU                      E0491300
         AIS   R10,2               LOOP THROUGH ALL LU'S                E0491400
         CLB   R6,TCB.NLU(R8)      DONE ?                               E0491500
         BL    LUEOJ                                                    E0491600
         XHR   R15,R15                                                  E0491700
         IFNZ  TGD                IF TRAP GENERATING DEVICES         EX E0491800
         XHR   R5,R5                                                    E0491900
SVC3.D   LH    R12,DMT+DMT.NAME(R5) DISCONNECT ALL CONNECTED TGD'S      E0492000
         BZ    SVC3.ED0            ...TO THIS TASK                      E0492100
         LH    R14,DMT+DMT.DCB(R5)    A(DCB)                            E0492200
         LH    R12,DCB.FLGS(R14)                                        E0492300
         THI   R12,DFLG.S6M        CONNECTABLE DEVICE ?                 E0492400
         BZS   SVC3.EB                                                  E0492500
         LB    R12,DCB.RSAV(R14)   YES...PRESENTLY CONNECTED ?          E0492600
         LHR   R12,R12                                                  E0492700
SVC3.EB  BZ    SVC3.E                                                   E0492800
         CLB   R12,TCB.PNT(R8)     CONNECTED TO THIS TASK ?             E0492900
         BNE   SVC3.E                                                   E0493000
         LHI   R12,X'A0'           YES...DISABLE FUNCTION               E0493100
         STB   R12,DCB.RSAV+4(R14)                                      E0493200
         LH    R10,DCB.INIT(R14)                                        E0493300
         LHR   R6,R9               SAVE RETURN ADDR                     E0493400
         BAL   R12,0(R10)          ENTER DRIVER INIT TO DISABLE         E0493500
         LHR   R9,R6               RESTORE RETURN ADDR                  E0493600
         XHR   R15,R15                                                  E0493700
         STH   R15,DCB.RSAV+6(R14) DISCONNECT THIS TASK                 E0493800
         STH   R15,DCB.RSAV(R14)                                        E0493900
SVC3.E   AIS   R5,DMT.             TO NEXT DEVICE IN DMT                E0494000
         B     SVC3.D              LOOP THROUGH ALL DEVICES             E0494100
SVC3.ED0 EQU   *                                                        E0494200
         ENDC                                                           E0494300
         IFP  OVTWO                                                     E0494400
         LHI  R4,SVC3.ED          LOAD PART2 OF SVC3                    E0494500
 LIS R6,OV2SIZ*11                                                       E0494600
         B    LDS2.N                                                    E0494700
         IFP   *-ENDOV2                                                 E0494800
ENDOV2   EQU   *                                                        E0494900
         ENDC                                                           E0495000
*                                                                       E0495100
*        OVERLAY 11                                                     E0495200
*                                                                       E0495300
         ORG   0                                                        E0495400
         ORG   OV2                                                      E0495500
         ENDC                                                           E0495600
SVC3.ED  EQU   *                   *                              EN003 E0495700
   LHI R15,SUSTAT    GO TO SU STATE                                     E0495800
   EPSR  R0,R15                                                         E0495900
         LHI   R12,TSTT.DMM        *                               297D E0496000
         LH    R7,TCB.FLGS(R8)     GET TASK FLAGS                 EN001 E0496100
         STH   R12,TCB.STAT(R8)    SET TASK DORMANT                297D E0496200
         NHI   R7,-1-TFLG.CPM-TFLG.SLM  RESET FLAGS                380D E0496300
         STH   R7,TCB.FLGS(R8)     *                              EN001 E0496400
         IFNZ  CMPROC              *                              EN003 E0496500
         LHI   R0,X'66'                                                 E0496600
  XHR R9,R9  KILL PSW SO SVC3 NO DOESNT GET MAPPED                      E0496700
         LHR   R4,R2              INITIALIZE FOR EOJ MESSAGE            E0496800
         BAL   R15,ATEXT          OUTPUT MESSAGE                        E0496900
         ENDC                      *                              EN003 E0497000
         IFNZ  1-CMPROC!FOREGRND!ROLL IF NO CMDP/FGR PART/ROLL    EN003 E0497100
         IFNZ  CMPROC              IF CMDP IN SYSTEM                    E0497200
         IFZ   ST                  IF ST SYSTEM                         E0497300
         BNZ   SVC2RTN             EXIT IF NO LOG BUFFERS               E0497400
         ENDC                                                           E0497500
         ENDC                                                           E0497600
         LH    R6,TCB.OPT(R8)                                           E0497700
         IFNZ  ROLL                                                     E0497800
         LH    R7,TCB.FLGS(R8)     PICK UP FLAGS                        E0497900
         THI   R6,TOPT.BGM         .BG TASK                             E0498000
         BNZS  SVC3.ROL                                                 E0498100
         THI   R6,TOPT.MRM         MEMORY RESIDENT                      E0498200
         ELSE                                                           E0498300
         THI   R6,TOPT.MRM+TOPT.BGM  MEMORY RESIDENT OR BG TASK ?       E0498400
         ENDC                                                           E0498500
         BNZ   SVC2RTN                                                  E0498600
         XHR   R14,R14                                                  E0498700
         STH   R14,TCB.ID(R8)     DELETE TASK                           E0498800
         STH   R14,TCB.FLGS(R8)    *                              EN001 E0498900
         LCS   R15,1                                                    E0499000
         STB   R15,TCB.CPRI(R8)    SET PRI TO 255                       E0499100
         IFNZ  ROLL                                                     E0499200
SVC3.ROL THI   R7,TFLG.ROM         WAS A ROLL PENDING?             208E E0499300
         BZ    SVC3.RI             IF SO...ROLLOUT NO LONG NECESSARY    E0499400
         LB    R13,TCB.ADQP(R8)    GET CALLER'S TCB POINTER       EN008 E0499500
*                                                                 EN008 E0499600
         LH    R12,TCBTAB(R13)     CALLER'S A(TCB)                      E0499700
         LIS   R15,2               SKIP BS IN SVC6                EN008 E0499800
         AHM   R15,TCB.CPSW+2(R12) BUMP CALLER'S PSW LOC PAST THE ROLL  E0499900
*                                                                 EN008 E0500000
         LH    R14,TCB.STAT(R12)                                        E0500100
         NHI   R14,-1-TSTT.S6M     TASK CALLER OUT OF LOAD WAIT         E0500200
         STH   R14,TCB.STAT(R12)                                        E0500300
         B     SVC2RTN                                                  E0500400
SVC3.RI  EQU   *                                                        E0500500
         LHR   R3,R8                                                    E0500600
         BAL   R7,ROLL.IN          ROLL IN IF REQUIRED                  E0500700
         ENDC                                                           E0500800
         ENDC                                                           E0500900
         B     SVC2RTN                                                  E0501000
         IFP   OVTWO                                                    E0501100
         IFP   *-ENDOV2                                                 E0501200
ENDOV2   EQU   *                                                        E0501300
         ENDC                                                           E0501400
*                                                                       E0501500
*        OVERLAY 12                                                     E0501600
*                                                                       E0501700
         ORG   0                                                        E0501800
         ORG   OV2                                                      E0501900
         ENDC                                                           E0502000
         TITLE SVC 9 LOAD TSW                                           E0502100
SVC9     EQU   *                                                        E0502200
   EPSR R15,R15                                                         E0502300
 NHI R15,X'FDFF'  SET TO SU STATE                                       E0502400
  EPSR R14,R15                                                          E0502500
         LM    R14,0(R2)                                                E0502600
         THI   R14,TTSW.QSM        QUEUE SERVICE ENABLED                E0502700
         BNZ   SVC9.CQ                                                  E0502800
SVC9.S   STH   R14,TCB.CTSW(R8)    SET NEW TSW                          E0502900
         NHI   R14,X'F'                                                 E0503000
         IFNZ  EXTMEM                                                EX E0503100
         LB    R12,SVCCSW+1                                             E0503200
         NHI   R12,X'F0'                                             EX E0503300
         OHR   R14,R12                                               EX E0503400
         ENDC                                                        EX E0503500
         STB   R14,SVCCSW+1                                             E0503600
         LHR   R14,R15             LOC=0?                         EX    E0503700
         BZS   SVC9.EX                                                  E0503800
*                                                                 EX    E0503900
         STH   R14,SVCCSW+2  SET NEW LOCATION                           E0504000
         IFNZ  EXTMEM                                                EX E0504100
         SETM  R14,SVCCSW                                               E0504200
         ENDC                                                        EX E0504300
         IFNZ  CMPROC*ST                                                E0504400
         LHI   R15,SVC2LA          ERROR RETURN                         E0504500
         BAL   R12,ADD.BC          CHECK TSW LOC                        E0504600
         ENDC                      *                              EN003 E0504700
SVC9.EX  B     SVC2RTN                                                  E0504800
SVC9.CQ  LH    R11,TCB.UBOT(R8)    GET A(PARTITION)                     E0504900
         IFNZ  EXTMEM                                                EX E0505000
         LPS   TCB.UBSW(R8)       TALK TO UDL                        EX E0505100
         ENDC                                                        EX E0505200
         LH    R10,UDL.TSKQ(R11)   GET A(TASK QUEUE)                    E0505300
SVC9.SB  BZ    SVC9.S              NO QUEUE                       EN012 E0505400
         IFNZ  EXTMEM                                                EX E0505500
         SETM  R10,SVCCSW                                               E0505600
         ENDC                                                        EX E0505700
         LB    R9,1(R10)           QUEUE EMPTY ?                        E0505800
         LHR   R9,R9                                                    E0505900
         BZS   SVC9.SB             YES, GO SET NEW TSW            EN012 E0506000
         LHR   R15,R15             NO, TAKE TASK TRAP TO SERVICE QUEUE  E0506100
         BNZS  SVC9.O                                                   E0506200
         LH    R15,SVCCSW+2                                             E0506300
SVC9.O   EQU   *                                                        E0506400
         IFNZ  EXTMEM                                                EX E0506500
         LPS   TCB.UBSW(R8)       TALK TO UDL                        EX E0506600
         ENDC                                                        EX E0506700
         STM   R14,UDL.TSKO(R11)  SAVE SVC 9 TSW IN UDL              EX E0506800
         LM    R14,UDL.TSKN(R11)   GET TASK TRAP TSW                    E0506900
         B     SVC9.S                                                   E0507000
         IFP   OVTWO                                                    E0507100
         IFP   *-ENDOV2                                                 E0507200
ENDOV2   EQU   *                                                        E0507300
         ENDC                                                           E0507400
*                                                                       E0507500
* NO MORE OVERLAYS TO USE THIS AREA                                     E0507600
*                                                                       E0507700
         ORG   2                                                        E0507800
         ORG   ENDOV2                                                   E0507900
*                                                                       E0508000
* SPECIAL INFORMATION ABOUT AREA - RAD OF START OVS ON DISC             E0508100
*                                  EQUATE OF NO OF SECTS TO HOLD 1 OV   E0508200
*                                                                       E0508300
OV2RAD   DS    2                                                        E0508400
OV2SIZ   EQU   ENDOV2-OV2+255/256                                       E0508500
         ENDC                                                           E0508600
         TITLE SVC 2/23 TIME INTERVAL WAIT/ADD QUEUE                    E0508700
 IFNZ PCLOCK                                                            E0508800
S2TIME   EQU *                                                          E0508900
         LB    R3,TCB.PNT(R8)     TCB PNTR                              E0509000
         LH    R6,0(R2)            GET OPTIONS                    EN007 E0509100
         THI   R6,X'1000'          TEST FOR X'10'-CANCEL OPTION   EN007 E0509200
         BNZ   TIMRMVE             CANCEL REQUEST;RMVE TIMER ENT  EN007 E0509300
         LM    R14,4(R2)           GET TIME                             E0509400
         THI   R14,X'1000'         CHECK TYPE OF TIMEOUT                E0509500
         BZS   SECONDS             *                              EN008 E0509600
         NHI   R14,X'FFF'         CLEAR UPPER 4 BITS                    E0509700
CHKTQUE  EQU   *                   *                              EN007 E0509800
         LHR   R6,R6               TEST FOR 'WAIT' OR 'QUEUE' OPT EN007 E0509900
         BNM   ADDQUE              QUEUE REQUEST                  EN007 E0510000
         STM   R14,TCB.TVAL(R8)    PUT INTERVAL IN TCB FOR TIMER        E0510100
         B     TABTIM                                                   E0510200
SECONDS  EQU   *                                                        E0510300
         IFNZ  CLOCK                                                    E0510400
         LH    R4,SECPM            GET PRESENT TIME(SEC PAST MIDNITE)   E0510500
         LH    R5,SECPM+2                                               E0510600
         SHR   R15,R5    SUBTRACT INTERVAL PAST MIDNIGHT                E0510700
         SCHR  R14,R4              SUBTRACT THE REST                    E0510800
         BNCS  NOCARRY            INTERVAL  > TIME PAST MIDNIGHT ?      E0510900
         AHI   R15,X'5180'         NO...ADD ONE DAY                     E0511000
         LIS   R4,1                                                     E0511100
         ACHR  R14,R4                                                   E0511200
NOCARRY  LHR   R4,R14                                                   E0511300
         MHU   R14,MIL            MULTIPLY SEC BY 1000                  E0511400
         LHR   R4,R4              ADD IN LEADING BIT                    E0511500
         BZS   CHKTQUE1                                                 E0511600
         AH    R14,MIL             LEADING BIT SET                      E0511700
CHKTQUE1 LH    R5,TCB.FLGS(R8)     SET TOD FLAG                   EN001 E0511800
         OHI   R5,TFLG.TOD                                              E0511900
         STH   R5,TCB.FLGS(R8)     SAVE IN TCB                    EN001 E0512000
         B     CHKTQUE                                                  E0512100
         ELSE                                                           E0512200
         B     SVC2RTN                                                  E0512300
         ENDC                                                           E0512400
         EJECT                                                    EN007 E0512500
ADDQUE   EQU   *                                                        E0512600
*                                                                       E0512700
*                                                                       E0512800
*                                                                       E0512900
         LH    R4,2(R2)           GET REG # CONTAINING PARM             E0513000
         AHR   R4,R4               DOUBLE IT                            E0513100
         LH    R4,SVCRSAV(R4)     GET PARAMETER                         E0513200
         STH   R4,TCB.ADQP(R8)     SAVE PARAMETER IN TCB                E0513300
         STM   R14,TCB.ADQT(R8)                                         E0513400
*                                                                 EN007 E0513500
TIMRMVE  AIS   R3,1                MAKE TABLE ENTRY ODD           EN007 E0513600
*                                                                 EN007 E0513700
*                                                                 EN007 E0513800
TABTIM   EQU   *                   *                              EN007 E0513900
         LHI   R4,SUSTAT           CHANGE TO SUPERVISOR STATE     EN007 E0514000
         EPSR  R5,R4               *                              EN007 E0514100
         BAL   R14,TIMCAN          SCAN TABLE; DELETE DUPL ENTRY  EN007 E0514200
         EPSR  R5,R5               SAVE CC                        EN007 E0514300
         THI   R6,X'1000'          TEST OPTION                    EN007 E0514400
         BZS   S2T.ND              BRANCH IF NOT DELETE           EN007 E0514500
         EPSR  R4,R5               PUT CC BACK                    EN007 E0514600
         BZS   S2T.D4              BRANCH IF NOTHING TO CANCEL    EN007 E0514700
         XHR   R4,R4               SET CC=0                       EN007 E0514800
         BS    S2T.DE              GO SET IT                      EN007 E0514900
S2T.D4   LIS   R4,PSWCCV           SET CC=4                       EN007 E0515000
S2T.DE   EQU   *                                                     EX E0515100
         IFZ   EXTMEM                                                EX E0515200
         STB   R4,SVCCSW+1        SET CC                             EX E0515300
         ELSE                                                        EX E0515400
         LHR   R3,R4               GET CC TO R3                      EX E0515500
         BAL   R14,SETCON                                            EX E0515600
         ENDC                                                        EX E0515700
         BS    S2T.EX              GET OUT                        EN007 E0515800
S2T.ND   STB   R3,TIMTSV(R4)       ENTER TCB POINTER              EN007 E0515900
         LB    R4,TIMERD           GET DEVICE NO., OF PIC               E0516000
         OC    R4,TIMERE           START TIMER                          E0516100
         SRLS  R3,1                ADTSKQ WAIT ?                  EN008 E0516200
         BCS   S2T.EX              EXIT IF SO                     EN008 E0516300
*                                                                       E0516400
*                                                                       E0516500
         LH    R4,TCB.STAT(R8)     SUSPEND THIS TASK UNTIL TIME IS UP   E0516600
         OHI   R4,TSTT.TIM                                              E0516700
         STH   R4,TCB.STAT(R8)                                          E0516800
S2T.EX   B     SVC2RTN                                                  E0516900
MIL      DC    1000                                                     E0517000
         ENDC                                                           E0517100
         ENDC                      *                              EN003 E0517200
         TITLE SVC 2/1 PAUSE                                            E0517300
*                                                                       E0517400
*##########################################################*            E0517500
* SVC 2/1 PAUSE                                                         E0517600
* PBLK   DC    FUNCTION CODE                                            E0517700
*                                                                       E0517800
* R8=A(TCB) FROM SVINT                                                  E0517900
*##########################################################*            E0518000
*                                                                       E0518100
S2PAUS   EQU   *                                                        E0518200
         LHI   R5,SUSTAT                                                E0518300
         EPSR  R7,R5               CHANGE TO SUPERVISOR STATE           E0518400
         LH    R5,TCB.STAT(R8)     GET CURRENT STATUS                   E0518500
         OHI   R5,TSTT.CWM         SET CONSOLE WAIT STATUS              E0518600
         STH   R5,TCB.STAT(R8)                                          E0518700
         IFNZ  PFREC+SVCSIX+CMPROC IF PWR RSTR/PAUSE CMD/SVC6 LOADEN003 E0518800
         LH    R5,TCB.FLGS(R8)     GET FLAGS                      EN001 E0518900
         NHI   R5,-1-TFLG.PPM      RESET PAUSE PENDING                  E0519000
         STH   R5,TCB.FLGS(R8)     *                              EN001 E0519100
         ENDC                      *                              EN003 E0519200
         IFNZ  CMPROC              *                              EN003 E0519300
         LHI   R0,X'7A'+TFLG.PPM            INITIALIZE FOR MESSAGE      E0519400
         B     ATEXT               OUTPUT PAUSE MESSAGE (RETURN TO R15) E0519500
         ELSE                      *                              EN003 E0519600
         BR    R15                 *                              EN003 E0519700
         ENDC                      *                              EN003 E0519800
         IFNZ  SVCFIVE+SVCSIX                                           E0519900
         IFP   SVCSIX                                                   E0520000
         TITLE RESIDENT PART OF SVC 6                                   E0520100
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0520200
*                                                                       E0520300
*                                                                       E0520400
*                                                                       E0520500
         IFP   OVSIX               IF SVC 6 IS OVERLAYED          EN008 E0520600
SVC6.NFC EQU   *                   NEXT FUNCTION CODE             EN008 E0520700
         LHI   RC,SVC6.OFC         FUNCTION DETERMINATION         EN008 E0520800
         LIS   RF,OV6SIZ*1         OV #                           EN008 E0520900
         B     LDS6.N              LOAD IT AND BRANCH DIRECTLY    EN008 E0521000
SVC6.LEX EQU   *                   LOAD EXECUTOR                  EN008 E0521100
         BAL   RC,LDS6.T           LOAD IT                        EN008 E0521200
         IFNZ  EXTMEM                                                EX E0521300
         STM   R0,S6.SAV          SAVE REGS                          EX E0521400
         ENDC                                                        EX E0521500
         LPSW  SVC6.PSW            GO TO IT IN SU STATE           EN008 E0521600
         ENDC                      *                              EN008 E0521700
SVC6.NFD LIS   R15,4               TASK NOT FOUND                       E0521800
         BS    SVC6.ERR            *                              EN008 E0521900
SVC6.LTE LIS   R15,3                                                    E0522000
         BS    SVC6.ERR                                                 E0522100
SVC6.ER2 LIS   R15,2               ILLEGAL FUNCTION CODE                E0522200
         ENDC                                                           E0522300
SVC6.ERR SLLS  R0,8                PUT POSITION PNTR IN LEFT BYTE       E0522400
         OHR   R0,R15              ERROR CODE IN RIGHT BYTE             E0522500
SVC6.RST STH   R0,SVC6.STA(R2)                                          E0522600
         B     SVC6RTN                                                  E0522700
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0522800
SVC6.PSW DC    SUSTAT,0                                                 E0522900
SVC6.RT  DC    ETSTAT,SVC6.NFC                                          E0523000
         IFNZ  EXTMEM                                                EX E0523100
S6.SAV   DS    32                 SAVE AREA FOR SVC 6 REGS           EX E0523200
         ENDC                                                        EX E0523300
         TITLE VERIFY TASK HAS NOT GONE TO EOT                          E0523400
*########################################################*              E0523500
* ROUTINE TO VERIFY CALLED TASK HAS NOT GONE TO END OF TASK             E0523600
*      CALLED BY ALL SVC6 FUNCTIONS EXCEPT LOADER                       E0523700
* R1= CALLER'S A(TCB)                                                   E0523800
* R2= A(PBLK)                                                           E0523900
* R3=CALLED TASK'S A(TCB)                                               E0524000
* R11=RETURN ADDR                                                       E0524100
*########################################################*              E0524200
LOCCHK   EQU   *                                                        E0524300
         LH    R9,TCB.FLGS(R3)     CHECK TASK FLAGS               EN001 E0524400
         THI   R9,TFLG.CPM         IS A CANCEL PENDING FOR THIS TASK ?  E0524500
         BNZS  LOC.NF              YES, RETURN ERROR (CODE 4)     EN008 E0524600
         CLHR  R1,R3               SELF DIRECTED ?                      E0524700
         BER   R11                 YES...RETURN                         E0524800
LOCCHK1  LHR   R9,R14              ENTRY PT FOR START                   E0524900
         LM    R12,TCB.ID(R3)      NO...MAKE SURE THIS TASK HAS NOT     E0525000
         SH    R15,SVC6.ID+6(R2)   .    GONE TO                   EN008 E0525100
         SCH   R14,SVC6.ID+4(R2)   .    END                       EN008 E0525200
         SCH   R13,SVC6.ID+2(R2)   .    OF                        EN008 E0525300
         SCH   R12,SVC6.ID(R2)     .    TASK                      EN008 E0525400
LOC.NF   BNE   SVC6.NFD            TASK NO LONGER AROUND (CODE 4) EN008 E0525500
         LHR   R14,R9              RESTORE DCB ADDRESS (TGD)      EN008 E0525600
         BR    R11                 RETURN                         EN008 E0525700
*                                                                 EN008 E0525800
*                                                                 EN008 E0525900
*                                                                 EN008 E0526000
         TITLE CONNECTED CHECK ROUTINE                                  E0526100
         IFZ   OVSIX               IF SVC 6 IS NOT OVERLAYED      EN008 E0526200
         IFNZ  TGD                 IF TGD SUPPORT                    OP E0526300
*###########################################################*           E0526400
* SUBROUTINE TO CHECK IF THE DEVICE IS CONNECTED AND IF IT IS CONNECTED E0526500
* TO THE SPECIFIED TASK                                                 E0526600
* R12=RETURN ADDR                                                       E0526700
* R14=A(DCB)                                                            E0526800
*###########################################################*           E0526900
CNCTCHK  EQU   *                                                        E0527000
         LB    R15,DCB.RSAV(R14)   GET TCB PNTR OF CONNECTED TASK       E0527100
         LHR   R15,R15                                                  E0527200
         BZS   CNCT.UNC           DEVICE NOT CONNECTED                  E0527300
         CLB   R15,TCB.PNT(R3)     CONNECTED TO THE CALLED TASK ?       E0527400
         BER   R12                 YES...RETURN                         E0527500
CNCT.ERR LHI   R15,16              ERROR - DEVICE NOT CONNECTED TO      E0527600
         BR    R12                 SPECIFIED DEVICE                     E0527700
CNCT.UNC CLHI  R0,20               IS THIS THE UNCONNECT COMMAND ?      E0527800
         BER   R12                 YES...OK,DEVICE ALREADY NOT CONNECTD E0527900
         BS    CNCT.ERR                                                 E0528000
         ENDC                      *                                 OP E0528100
         ENDC                      *                              EN008 E0528200
         ENDC                                                           E0528300
         ENDC                                                           E0528400
         TITLE IF OS OVERLAYS, LOAD SVC 5 / SVC 6 INIT CODE             E0528500
         IFP   SVCSIX+SVCFIVE                                           E0528600
SVC6     EQU   *                                                        E0528700
         IFNZ  SVCSIX                                                   E0528800
         IFNZ  SVCFIVE                                                  E0528900
         IFNZ  EXTMEM                                                EX E0529000
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS      EX E0529100
         EPSR  R0,R0                                                 EX E0529200
         STB   R0,SVC6.RT+1       SAVE PB PSW IN PSW WORDS           EX E0529300
         STB   R0,SVC6.PSW+1                                         EX E0529400
         ENDC                      *                                 EX E0529500
         ENDC                                                        EX E0529600
         LH    RF,SVCTWO!CLK*4+SVCCSW+2                           EN003 E0529700
         IFNZ  EXTMEM                                                EX E0529800
         SETM  RF,SVCTWO!CLK*4+SVCCSW   TALK TO SVC INSTRUCITON      EX E0529900
         ENDC                                                        EX E0530000
         LB    RF,-3(RF)      GET SVC #                                 E0530100
         IFNZ  EXTMEM                                                EX E0530200
         EPSR  R1,R0                    RESTORE PSW TO PB.           EX E0530300
         ENDC                                                        EX E0530400
         CLHI  RF,X'60'       WHICH ONE IS IT ?                         E0530500
         BLS   SVC5                                                     E0530600
         ENDC                                                           E0530700
         IFP   OVSIX                                                    E0530800
         LIS   RF,OV6SIZ*1                                              E0530900
         BAL   RC,LDS6.N           LOAD INIT CODE OF SVC 6 IF OV'D      E0531000
         ENDC                                                           E0531100
         B     SVC6R                                                    E0531200
         ENDC                                                           E0531300
         ENDC                                                           E0531400
         IFP   SVCFIVE                                                  E0531500
SVC5     EQU   *                                                        E0531600
         IFP   OVSIX                                                    E0531700
         LIS   RF,OV6SIZ*0                                              E0531800
         BAL   RC,LDS6.N           LOAD SVC 5 CODE IF OVERLAYED         E0531900
         ENDC                                                           E0532000
         B     SVC5R                                                    E0532100
         ENDC                                                           E0532200
         IFP   OVSIX                                                    E0532300
*                                                                       E0532400
* OVERLAY HANDLER FOR THE EXEC SVC 5 AND 6 OVERLAY AREA                 E0532500
*                                                                       E0532600
* OV:    COMPRISES:                                                     E0532700
*                                                                       E0532800
*  0     SVC 5                                                          E0532900
*  1     SVC 6 INTRO                                                    E0533000
*  2     SVC 6 ET FIX ATQ PRR CON                                       E0533100
*  3     SVC 6 TGD UNF STR                                              E0533200
*  4     SVC 6 LT PART 1                                                E0533300
*  5     SVC 6 LT PART 2                                                E0533400
*  6     SVC 6 LT PART 3                                                E0533500
*                                                                       E0533600
*                                                                       E0533700
* 1ST ENTRY PT AT LDS6.T RUNS OFF TABLE OF (OV NO * OV SIZE)            E0533800
*                         R4 = TABLE INDEX FROM M/S OF ADDRS            E0533900
*                         RC = BRANCH ADDR                              E0534000
*                                                                       E0534100
* 2ND ENTRY PT AT LDS6.N  RUNS OFF ACTUAL (OV NO * OV SIZE)             E0534200
*                         RF = ABOVE VALUE                              E0534300
*                         RC = BRANCH ADDR                              E0534400
*                                                                       E0534500
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0534600
LDS6.T   LHR   RF,R4                                                    E0534700
         SHI   RF,SVC6.FTB                                              E0534800
         SRLS  RF,1                FORM INDEX TO BYTE TABLE             E0534900
         LB    RF,S6OVN(RF)        GET OV NO * OV SIZE IN SECTORS       E0535000
         CLHI  RF,X'FF'            IS THIS ROUTINE RESIDENT?            E0535100
         BES   LDS6.2              YES                                  E0535200
         ENDC                                                           E0535300
LDS6.N   CLH   RF,CURR6            NO, IS IT ALREADY IN MEM?            E0535400
LDS6.2   BE    LDS6.E              YES                                  E0535500
         STM   R11,RSAV6          SAVE REGS R11 - R15                   E0535600
         AH    RF,OV6RAD           ADD RAD OF AREA REL TO START FILE    E0535700
         BAL   R12,OVLU            CONNECT FM LU TO OS OV FILE          E0535800
         IFNZ  CMPROC              *                              EN003 E0535900
         BZ    LDS6.R                                                   E0536000
         ENDC                      *                              EN003 E0536100
         STM   R14,SVCOV6+SVC1.RAD   RAD REL TO START DISC              E0536200
         SVC   1,SVCOV6                                                 E0536300
         IFNZ  SAFE                                                     E0536400
         LH    R13,SVCOV6+SVC1.STA CHECK STATUS                         E0536500
         BNZ   OVIO                                                     E0536600
         ENDC                                                           E0536700
         LM    R11,RSAV6           RESTORE REGS                         E0536800
         STH   RF,CURR6            RAD OF OV REL TO START AREA          E0536900
LDS6.E   BR    RC                  BRANCH TO ROUTINE                    E0537000
RSAV6    DS    10                                                       E0537100
*                                                                       E0537200
*                                                                       E0537300
SVCOV6   DC    X'5CFF'                                                  E0537400
         DC    0                                                        E0537500
         DC    OV6                                                      E0537600
         DC    ENDOV6-1                                                 E0537700
         DC    0,0,0                                                    E0537800
         ENDC                                                           E0537900
         IFP   OVSIX                                                    E0538000
         ALIGN 4                                                        E0538100
OV6      EQU   *                                                        E0538200
ENDOV6   EQU   *                                                        E0538300
*                                                                       E0538400
* OVERLAY 0                                                             E0538500
*                                                                       E0538600
         ORG   0                                                        E0538700
         ORG   OV6                                                      E0538800
         ENDC                                                           E0538900
         TITLE SVC 5 - LOAD OVERLAY                                     E0539000
         IFNZ  SVCFIVE                                                  E0539100
*#########################################################*             E0539200
* SVC5  FETCH OVERLAY                                                   E0539300
* RUN IN EXECUTIVE STATE                                                E0539400
* R2=A(PBLK)                                                            E0539500
* R8=A(TCB)                                                             E0539600
*#########################################################*             E0539700
SVC5R    EQU   *                                                        E0539800
         LHR   R3,R2               A(PBLK)                              E0539900
         LH    R7,TCB.OPT(R8)      TEST FOR OPTION COMPATIBLE           E0540000
         THI   R7,TOPT.COM                                              E0540100
         BZS   SVC5.NC                                                  E0540200
         SIS   R3,2                OFFSET FOR COMPATIBLE PARAM BLK      E0540300
SVC5.NC  LH    R5,SVC5.LU(R3)      GET LOAD LU                          E0540400
         STB   R5,S5.S1+SVC1.LU    PUT IN SVC 1 PBLK                    E0540500
         LHR   R1,R8               SAVE A(TCB)                          E0540600
         LB    R4,SVC5.OPT(R3)     GET SVC 5 OPTIONS                    E0540700
         SIS   R4,S5OP.NPM         LOAD WITHOUT POSITIONING ?           E0540800
         BZS   S5.LIB              YES, GO READ LIB                     E0540900
         SIS   R4,S5OP.RWM-S5OP.NPM LOAD AFTER REWINDING?               E0541000
         BNZ   SVC6IL    NO, ILLEGAL SVC 5                              E0541100
         LHI   R5,S1FC.RWM+S1FC.CMM                                     E0541200
         STB   R5,S5.S1+SVC1.FC    SET UP REWIND FUNCTION CODE          E0541300
         SVC   1,S5.S1             DO THE REWIND                        E0541400
         LH    R5,S5.S1+SVC1.STA   CHECK STATUS                         E0541500
         BMS   S5.EIOB        I/O ERROR                                 E0541600
S5.LIB   EQU   *                                                        E0541700
         LHI   R14,TCB.RSAV+32-LIB(R1)                                  E0541800
         LHI   R15,LIB-1(R14)                                           E0541900
         STM   R14,S5.S1+SVC1.SAD  SET UP TO READ LIB INTO REGISTERS    E0542000
         LHI   R5,S1FC.RDM+S1FC.BIM+S1FC.WTM                            E0542100
         STB   R5,S5.S1+SVC1.FC    SET UP FOR READ/BINARY/WAIT          E0542200
         SVC   1,S5.S1             READ LIB                             E0542300
         LH    R5,S5.S1+SVC1.STA   CHECK STATUS                         E0542400
S5.EIOB  BM    S5.E10              I/O ERROR                            E0542500
         THI   R6,LFLG.OVM         IS IT AN OVERLAY ?                   E0542600
         BZ    S5.E10              ERROR-NOT AN OVERLAY MODULE          E0542700
         SH    R14,SVC5.ID+4(R2)   CHECK OVERLAY                        E0542800
         SCH   R13,SVC5.ID+2(R2)   NAME                                 E0542900
         SCH   R12,SVC5.ID(R2)     WITH PBLK                            E0543000
         BNE   S5.E20              OVERLAY NAME MISMATCH                E0543100
         LHR   R11,R15             SAVE OBOT                            E0543200
         LB    R13,TCB.PNT(R1)     TCBTAB INDEX                    346D E0543300
         IFNZ  EXTMEM                                                EX E0543400
         SIS   R13,4               CALC PARTITIOON INDEX             EX E0543500
         AHR   R13,R13            EXTEND MEM PARTAB IN TWICE AS BIG  EX E0543600
         ENDC                                                        EX E0543700
         LM    R12,PARTAB-4+EXTM+EXTM(R13)  GET PART AND NEXT PART   EX E0543800
         CLHR  R8,R12+EXTMEM       CHECK PARTION START ADDR          EX E0543900
         BNE   S5.E10              INVALID PARTITION ADDRESS       346D E0544000
         IFNZ  EXTMEM                                                EX E0544100
         CLHR  R12,R14             CHECK IF NEXT PART  IN DIFF 32KB  EX E0544200
         BNES  S5.X                YES                             EX   E0544300
         ENDC                                                        EX E0544400
         CLHR  R9,R13+EXTM         CHECK  IF OVELAY FITS             EX E0544500
         BNL   S5.E40              OVERLAY DOES NOT FIT                 E0544600
S5.X     CLHR  R11,R8                                                EX E0544700
         BL    S5.E40              IF A(OVERLAY)<A(TASK),ERROR          E0544800
         LHI   R12,S5.S1                                                E0544900
         LH    R13,SVC5.LU(R3)     LOAD LU                              E0545000
         LHR   R14,R11             OBOT = START OF OVERLAY              E0545100
         IFNZ  EXTMEM                                                EX E0545200
         LH    R0,TCB.UBEW(R1)                                       EX E0545300
         EPSR  R2,R0              TALK TO UDL                        EX E0545400
         ENDC                                                        EX E0545500
         BAL   R5,LOAD.MOD         LOAD OVERLAY                         E0545600
         LHR   R14,R11             OBOT                            EX   E0545700
         BAL   R15,CHKSUM          VERIFY GOOD CHECKSUM            EX   E0545800
         IFNZ  EXTMEM                                              EX   E0545900
         LPSR  R2                  RESRORE PSW TO PB               EX   E0546000
         ENDC                                                      EX   E0546100
         LHR   R5,R13                                                   E0546200
         BNZS  S5.E10                                                   E0546300
*                                                                  EX   E0546400
*                                                                  EX   E0546500
         AIS   R10,1                                                    E0546600
         BZS   S5.EXZ              GOOD STATUS                    EN008 E0546700
         LIS   R5,3                CHECKSUM ERROR                       E0546800
         BS    S5.ECM                                                   E0546900
S5.E10   EQU   *                                                        E0547000
         LIS   R5,1                ERROR IN LIB                         E0547100
         BS    S5.ECM                                                   E0547200
S5.E20   EQU   *                   OVERLAY NAME MISMATCH                E0547300
         LIS   R5,2                                                     E0547400
         BS    S5.ECM                                                   E0547500
S5.E40   EQU   *                                                        E0547600
         LIS   R5,4                OVERLAY DOES NOT FIT                 E0547700
S5.ECM   EQU   *                                                        E0547800
         SLLS  R5,4                GET PROPER STATUS                    E0547900
         STB   R5,SVC5.STA(R3)     RETURN STATUS                        E0548000
         B     SVC6RTN   GET OUT                                        E0548100
S5.EXZ   EQU   *                                                        E0548200
         XHR   R5,R5               NO ERROR                             E0548300
         BS    S5.ECM                                                   E0548400
S5.S1    DS    SVC1.               SVC1 PARM                            E0548500
         ENDC                                                           E0548600
         IFP   OVSIX                                                    E0548700
         IFP   *-ENDOV6                                                 E0548800
ENDOV6   EQU   *                                                        E0548900
         ENDC                                                           E0549000
*                                                                       E0549100
* OVERLAY 1                                                             E0549200
*                                                                       E0549300
         ORG   0                                                        E0549400
         ORG   OV6                                                      E0549500
         ENDC                                                           E0549600
         TITLE SVC6 MAIN MODULE                                         E0549700
         IFNZ  SVCSIX                                                   E0549800
*################################################################*      E0549900
*SVC6   ENTERED FROM SVCEXEC WITH THE FOLLOWING:                        E0550000
*                                                                       E0550100
* R2=A(SVC PBLK)                                                        E0550200
* R3=TCB PNTR                                                           E0550300
* R7=SVC LOC.                                                           E0550400
* R8=A(TCB)                                                             E0550500
*################################################################*      E0550600
SVC6R    EQU   *                                                        E0550700
         XHR   R0,R0               INITIALIZE POSITION PNTR             E0550800
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0550900
         LH    R4,TCB.OPT(R8)      GET TASK OPTIONS                     E0551000
         THI   R4,TOPT.BGM         BACKGROUND TASK ?                    E0551100
         BZS   SVC6.CSD                                                 E0551200
         THI   R4,TOPT.S6M             SVC6 CONTINUE ?                  E0551300
         BNZ   SVC6.RST                YES  NOP FUNCTION                E0551400
         B     SVC6IL                  NO...PAUSE THIS TASK             E0551500
SVC6.CSD EQU   *                                                        E0551600
         ENDC                      *                              EN003 E0551700
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0551800
         LH    R4,SVC6.FC1(R2)     GET THE FIRST HW OF FUNC CODE        E0551900
         BNM   SVC6.ER2            ILLEGAL FUNCTION                     E0552000
         ENDC                                                           E0552100
         LHR   R1,R8              A(TCB) CALLER                         E0552200
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0552300
         LHR   R11,R8                                                   E0552400
         LHR   R15,R4              *                              EN012 E0552500
         NHI   R15,SFC1.DSM        CHECK THE DIRECTION CODE       EN012 E0552600
         CLHI  R15,SFC1.DSM        SELF-DIRECTED ?                EN012 E0552700
         BE    SVC6.FND            YES, SKIP                      EN012 E0552800
         LH    R4,SVC6.FC1(R2)                                          E0552900
         LHR   R7,R2                                                    E0553000
         LIS   R10,4                                                    E0553100
         BAL R8,LOCT1              LOCATE CALLED TASK'S TCB             E0553200
         BZS   SVC6.FND            TASK FOUND, GO CHECK FOR LOAD  EN008 E0553300
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0553400
         NHI   R4,SFC1.EDM+SFC1.ECM+SFC1.LM                       EN008 E0553500
         CLHI  R4,SFC1.LM          LOAD FIRST ?                   EN008 E0553600
         BE    SVC6.IF             YES, GO PROCESS                EN008 E0553700
         ENDC                      *                              EN003 E0553800
         B     SVC6.NFD            ERROR CODE 4-TASK NOT FOUND    EN008 E0553900
SVC6.FND EQU   *                   *                              EN003 E0554000
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0554100
SVC6.FND EQU   *                   *                              EN003 E0554200
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0554300
         CLHI  R11,BGTCB           REQUEST TO .BG?                EN003 E0554400
         BES   SVC6.SS             YES...LOAD REQUEST O.K.              E0554500
         ENDC                      *                              EN003 E0554600
         THI   R4,SFC1.LM          LOAD SPECIFIED ?               EN008 E0554700
         BZS   SVC6.SS             NO, CONTINUE                   EN008 E0554800
         LIS   R15,3               ERROR CODE 3-TASK ALREADY PRES EN008 E0554900
         B     SVC6.ERR            GO SET ERROR                   EN008 E0555000
         ENDC                      *                              EN003 E0555100
SVC6.SS  EQU   *                                                        E0555200
         LH    R4,TCB.STAT(R11)                                         E0555300
         STH   R4,SVC6.TST(R2)     PUT TASK'S STATUS IN PBLK            E0555400
         LB    R4,TCB.CPRI(R11)                                         E0555500
         LH    R12,TCB.FLGS(R11)   TASK FOUND                     EN001 E0555600
         THI   R12,TFLG.SLM        IN SYSTEM LEVEL CODE ?               E0555700
         BZS   SVC6.SP             NO                                   E0555800
         IFNZ  ROLL                                                     E0555900
         LIS   R4,1                                                     E0556000
         ELSE                                                           E0556100
         LIS   R4,2                YES...                               E0556200
         ENDC                                                           E0556300
SVC6.PP  LB    R6,RDBLK(R4)        FIND THE SYSTEM RESOURCE THIS TASK   E0556400
         CLB   R6,TCB.PNT(R11)     IS USING                             E0556500
         BES   SVC6.PF                                                  E0556600
         SIS   R4,1                                                     E0556700
         BNLS  SVC6.PP                                                  E0556800
         IFNZ  ROLL                                                     E0556900
         LIS   R4,2                                                     E0557000
         ENDC                                                           E0557100
SVC6.PF  LB    R4,SVCPRI(R4)       GET PRI OUT OF SYSTEM TABLE          E0557200
SVC6.SP  EQU   *                                                        E0557300
         STB   R4,SVC6.RPI(R2)     PUT TASK'S PRIORITY IN PBLK          E0557400
SVC6.IF  LHR   R3,R11              CALLED TASK'S TCB ADDRESS      EN008 E0557500
         LHI   R4,SVC6.FTB         INIT A(FUNC TABLE START)       EN008 E0557600
         LHI   R6,SVC6.FHW         INIT A(FUNC TABLE CENTER)      EN008 E0557700
         LIS   R5,2                BXLE INCREMENT                 EN008 E0557800
         LH    R7,SVC6.FC1(R2)     GET FIRST HALF OF FUNC CODE    EN008 E0557900
         SLLS  R7,2                REMOVE DIRECTION               EN008 E0558000
         LIS   R0,2                INIT POSITION POINTER          EN008 E0558100
SVC6.TFC AHR   R7,R7               SHIFT FUNCTION CODE            EN008 E0558200
         BNCS  SVC6.OFX            BRANCH IF NOT ON               EX    E0558300
         LH    R9,0(R4)            GET ROUTINE ADDRESS            EN008 E0558400
         STH   R9,SVC6.PSW+2       SET UP TRANSFER ADDRESS        EN008 E0558500
         IFP   OVSIX               IF SVC 6 IS OVERLAYED          EN008 E0558600
         B     SVC6.LEX            GO INTO NON-OVERLAYED CODE     EN008 E0558700
         ELSE                      SVC 6 IS NOT OVERLAYED         EN008 E0558800
         IFNZ  EXTMEM                                                EX E0558900
         STM   R0,S6.SAV          SAVE REGS                          EX E0559000
         ENDC                                                        EX E0559100
         LPSW  SVC6.PSW            GO TO IT IN SU STATE           EN008 E0559200
SVC6.NFC EQU  *                    *                              EN008 E0559300
         ENDC                      *                              EN008 E0559400
SVC6.OFC EQU   *                                                     EX E0559500
         IFNZ  EXTMEM                                                EX E0559600
         LM    R0,S6.SAV                                             EX E0559700
         ENDC                                                        EX E0559800
SVC6.OFX AIS   R0,1                BUMP POSITION PTR              EX    E0559900
         BXLE  R4,SVC6.TFC         LOOP FOR THIS HALF             EN008 E0560000
         CLHI  R6,SVC6.FFW         ARE WE DONE WITH BOTH H/W ?    EN008 E0560100
         BE    SVC6.0ST            IF SO, GO SET ZERO STATUS      EN008 E0560200
         LH    R7,SVC6.FC2(R2)     GET SECOND HALF OF FUNC CODE   EN008 E0560300
         IFNZ  TGD                 IF TGD SUPPORT                    OP E0560400
         THI   R7,SFC2.OM+SFC2.TM+SFC2.IM+SFC2.FM+SFC2.UM 8 LINE? EN008 E0560500
         BZ    SVC6.NDV            BRANCH IF NOT                  EN008 E0560600
         LHR   R9,R3               SAVE A(CALLED TCB)             EN008 E0560700
         LHR   R13,R1              SAVE A(CALLER TCB)             EN008 E0560800
         LHI   R3,SVC6.DMN-SVC7.VOL(R2) A(DM)                     EN008 E0560900
         BAL   R8,VOLCHK           LOOK UP DEVICE IN DMT          EN008 E0561000
         BPS   SVC6.DOK            FOUND IT                       EN008 E0561100
         LIS   R15,13              NO SUCH DEVICE                 EN008 E0561200
         BS    SVC6.ERB            GO SET ERROR                   EN008 E0561300
SVC6.DOK LHR   R14,R1              GET A(DCB)                     EN008 E0561400
         LHR   R1,R13              RESTORE A(CALLER TCB)          EN008 E0561500
         LHR   R3,R9               RESTORE A(CALLED TCB)          EN008 E0561600
         LH    R9,DCB.FLGS(R14)    GET DEVICE FLAGS               EN008 E0561700
         THI   R9,DFLG.S6M         CONNECTABLE ?                  EN008 E0561800
         BNZS  SVC6.NDV            YES                            EN008 E0561900
         LIS   R15,14              DEVICE NOT CONNECTABLE         EN008 E0562000
SVC6.ERB B SVC6.ERR                                                     E0562100
         ENDC                      *                                 OP E0562200
SVC6.NDV LHI   R6,SVC6.FFW         POINT TO END OF TABLE          EN008 E0562300
         B     SVC6.TFC            GO CHECK SECOND HALF OF FUNC   EN008 E0562400
SVC6.0ST XHR   R0,R0               CLEAR STATUS                   EN008 E0562500
         B     SVC6.RST            GO SET IT                      EN008 E0562600
*                                                                       E0562700
*                                                                       E0562800
SVC6.FTB DO    2                                                        E0562900
         DC    SVC6.ET             END TASK                             E0563000
         DO    2                                                        E0563100
         DC    SVC6.ER2                                                 E0563200
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0563300
         DC    SVC6.LT             LOAD TASK                            E0563400
         ELSE                      NO IMAGE LOAD SUPPORT          EN003 E0563500
         DC    SVC6.ER2            *                              EN003 E0563600
         ENDC                      *                              EN003 E0563700
         DC    SVC6.ER2                                                 E0563800
         DC    SVC6.FIX            FIX TASK                             E0563900
         DO    2                   *                              EN006 E0564000
         DC    SVC6.ER2            *                              EN006 E0564100
         DC    SVC6.SEN            SEND MESSAGE                   EN006 E0564200
         DC    SVC6.ATQ            ADD PARAMETER TO TASK QUEUE          E0564300
         DC    SVC6.PRR            CHANGE PRIORITY                      E0564400
         DO    2                                                        E0564500
         DC    SVC6.ER2                                                 E0564600
SVC6.FHW EQU   *-1                                                      E0564700
         IFNZ  TGD                 IF TGD SUPPORT                    OP E0564800
         DC    SVC6.CON            CONNECT DEVICE                       E0564900
         DC    SVC6.TGD           THAW                                  E0565000
         DC    SVC6.TGD           SINT                                  E0565100
         DC    SVC6.TGD           FREEZE                                E0565200
         DC    SVC6.TGD           UNCONNECT                             E0565300
         ELSE                      NO TGD SUPPORT                    OP E0565400
         DO    5                   ILLEGAL FUNCTION                  OP E0565500
         DC    SVC6.ER2            *                                 OP E0565600
         ENDC                      *                                 OP E0565700
         DO    4                                                        E0565800
         DC    SVC6.ER2                                                 E0565900
         DC    SVC6.UNF            UNFIX                                E0566000
         DO    3                                                        E0566100
         DC    SVC6.ER2                                                 E0566200
         DO    2                                                        E0566300
         DC    SVC6.STR            START TASK                           E0566400
         DC    SVC6.ER2                                                 E0566500
SVC6.FFW EQU   *-1                                                      E0566600
         IFP   OVSIX                                                    E0566700
*                                                                       E0566800
* TABLE OF (OV NO * SECTS/OV) FOR EACH ROUTINE CALLED OFF M/S           E0566900
*                                                                       E0567000
S6OVN    EQU   *                                                        E0567100
         DB    OV6SIZ*2            ET                                   E0567200
         DB    OV6SIZ*2            ET                                   E0567300
         DB    -1                  ILG                                  E0567400
         DB    -1                  ILG                                  E0567500
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0567600
         DB    OV6SIZ*4            LT                                   E0567700
         ELSE                      NO IMAGE LOAD SUPPORT          EN003 E0567800
         DB    -1                  ILG LT                         EN003 E0567900
         ENDC                      *                              EN003 E0568000
         DB    -1                  ILG                                  E0568100
         DB    OV6SIZ*2            FIX                                  E0568200
         DB    -1                  ILG                                  E0568300
         DB    -1                  ILG                                  E0568400
         DB    OV6SIZ*2            MSG                            EN006 E0568500
         DB    OV6SIZ*2            ATQ                                  E0568600
         DB    OV6SIZ*2            PRR                                  E0568700
         DB    -1                  ILG                                  E0568800
         DB    -1                  ILG                                  E0568900
         DB    OV6SIZ*2            CON                                  E0569000
         DB    OV6SIZ*3            TGD  THAW                            E0569100
         DB    OV6SIZ*3            TGD  SINT                            E0569200
         DB    OV6SIZ*3            TGD  FREEZE                          E0569300
         DB    OV6SIZ*3            TGD  UNCONN                          E0569400
         DB    -1                  ILG                                  E0569500
         DB    -1                  ILG                                  E0569600
         DB    -1                  ILG                                  E0569700
         DB    -1                  ILG                                  E0569800
         DB    OV6SIZ*3            UNFIX                                E0569900
         DB    -1                  ILG                                  E0570000
         DB    -1                  ILG                                  E0570100
         DB    -1                  ILG                                  E0570200
 IFNZ PCLOCK                                                            E0570300
         DB    OV6SIZ*3            START                                E0570400
 ELSE                                                                   E0570500
 DB -1                                                                  E0570600
 ENDC                                                                   E0570700
         DB    OV6SIZ*3            START                                E0570800
         DB    -1                  ILG                                  E0570900
         ALIGN 2                                                        E0571000
         ENDC                                                           E0571100
         ELSE                                                           E0571200
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0571300
         LH    RF,SVC6.FC1(R2)     PICK UP THE FUNCTION CODE      EN006 E0571400
         THI   RF,SFC1.LM          LOAD ?                         EN006 E0571500
         IFNZ  OVSIX               IF SVC6 IS OV                  EN006 E0571600
         BNZS  S6.LOAD             BRANCH IF SO                   EN006 E0571700
         ELSE                      SVC 6 IS NOT OV                EN006 E0571800
         BNZ   SVC6.LT             BRANCH IF LOAD                 EN006 E0571900
         ENDC                      *                              EN006 E0572000
         ENDC                      *                              EN003 E0572100
         IFNZ  OVSIX               IF SVC 6 IS OV                 EN006 E0572200
         LIS   RF,OV6SIZ*2         *                              EN006 E0572300
         LHI   RC,SVC6.SEN         *                              EN006 E0572400
         B     LDS6.N              LOAD SEND COMMAND              EN006 E0572500
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0572600
S6.LOAD  EQU   *                   *                              EN006 E0572700
         LIS   RF,OV6SIZ*4                                              E0572800
         LHI   RC,SVC6.LT                                               E0572900
S6.LDL   B     LDS6.N              LOAD THE OVERLAY               EN006 E0573000
         ENDC                      *                              EN003 E0573100
         ENDC                                                           E0573200
         ENDC                                                           E0573300
         ENDC                                                           E0573400
         IFP   OVSIX                                                    E0573500
         IFP   *-ENDOV6                                                 E0573600
ENDOV6   EQU   *                                                        E0573700
         ENDC                                                           E0573800
*                                                                       E0573900
* OVERLAY 2                                                             E0574000
*                                                                       E0574100
         ORG   0                                                        E0574200
         ORG   OV6                                                      E0574300
         ENDC                                                           E0574400
         IFP   SVCSIX                                                   E0574500
         TITLE SVC6  END OF TASK                                        E0574600
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0574700
*#######################################################*               E0574800
* R1=CALLER'S A(TCB)                                                    E0574900
* R2=A(SVC6 PBLK)                                                       E0575000
* R3=CALLED TASK'S A(TCB)                                               E0575100
* R8=RETURN ADDR                                                        E0575200
*#######################################################*               E0575300
SVC6.ET  EQU   *                                                        E0575400
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0575500
         CLHI  R0,2                DELETE?                              E0575600
         BNES  ET.ND                                                    E0575700
         LH    R9,TCB.OPT(R3)                                           E0575800
         NHI   R9,X'FFFF'-TOPT.MRM YES...MAKE IT NON-RESIDENT           E0575900
         STH   R9,TCB.OPT(R3)                                           E0576000
ET.ND    LHR   R13,R3    A(TCB)                                         E0576100
         BAL   R8,CANCEL           CANCEL  I/O                          E0576200
         CLHR  R1,R3                                                    E0576300
         BE    SVC6RTN             TERMINATE SVC6 PROCESSING            E0576400
         IFZ   EXTMEM                                                EX E0576500
         AIS   R0,1                BUMP POSITION PNTR                   E0576600
         AIS   R4,2                BUMP FUNCTION TBL PNTR               E0576700
         ELSE                                                        EX E0576800
         LIS   R8,1               BUMP POSITION PTR (R0)             EX E0576900
         AHM   R8,S6.SAV                                             EX E0577000
         LIS   R8,2               BUMP FUNCTION TABLE PTR(R4)        EX E0577100
         AHM   R8,S6.SAV+8                                           EX E0577200
         ENDC                                                        EX E0577300
ET.RT    LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0577400
         TITLE SVC6  FIX FUNCTION                                       E0577500
*#######################################################*               E0577600
* R1=CALLER'S A(TCB)                                                    E0577700
* R3=CALLED TASK'S A(TCB)                                               E0577800
* R8=RETURN ADDR                                                        E0577900
*#######################################################*               E0578000
SVC6.FIX EQU   *                                                        E0578100
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0578200
         LH    R9,TCB.OPT(R3)      PICK UP OPTIONS                 268D E0578300
         OHI   R9,TOPT.MRM         SET TASK MEMORY RESIDENT             E0578400
         STH   R9,TCB.OPT(R3)                                           E0578500
         LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0578600
         TITLE SVC6 ADD TO QUEUE                                        E0578700
*################################################################*      E0578800
* R1=CALLER'S A(TCB)                                                    E0578900
* R3=CALLED TASK'S A(TCB)                                               E0579000
* R8=RETURN ADDR                                                        E0579100
*################################################################*      E0579200
SVC6.ATQ EQU   *                                                        E0579300
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0579400
         LIS   R14,1               REASON CODE FOR ADDTSKQ              E0579500
         LHR   R13,R3              GET A(TCB)                           E0579600
         LH    R15,SVC6.PAR(R2)    GET PARAMETER                        E0579700
         BAL   R8,ADTSKQ           ADD PARAMETER TO TASK QUEUE          E0579800
         BNZS  ATQ.NEN            BAD COMPLETION                        E0579900
         LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0580000
ATQ.NEN  LIS   R15,12              NO QUEUE/FULL QUEUE/ENTRY DISABLED   E0580100
         B     SVC6.ERR            *                              EN006 E0580200
         ENDC                      *                              EN006 E0580300
         TITLE SVC6 SEND MESSAGE FUNCTION                         EN006 E0580400
*###########################################################      EN006 E0580500
* R1 = CALLER'S A(TCB)                                            EN006 E0580600
* R3 = CALLED TASK'S A(TCB)                                       EN006 E0580700
* R8 = RETURN ADDR                                                EN006 E0580800
* R2 = ADDR OF SVC 6 PARAM BLOCK                                  EN006 E0580900
*###########################################################      EN006 E0581000
SVC6.SEN EQU   *                   *                              EN006 E0581100
         IFNZ  1-CMPROC!FOREGRND   *                              EN003 E0581200
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND       EN006 E0581300
         ENDC                      *                              EN003 E0581400
         LH    R9,TCB.UBOT(R3)     ADDR OF CALLED TASK UDL        EN006 E0581500
         IFNZ  EXTMEM                                                EX E0581600
         LH    R14,TCB.UBSW(R3)   TALK TO CALLED TASK UDL            EX E0581700
         EPSR  R0,R14             SAVE PB PSW                        EX E0581800
         ENDC                                                        EX E0581900
         LH    R14,UDL.MSGR(R9)   GET ADDRESS OF MESS BUFFER         EX E0582000
         BZ    MSG.ERR            NO BUFFER                          EX E0582100
         STH   R14,MSG.SAV        SAVE UNMAPPED BUFFER ADDR             E0582200
         IFNZ  EXTMEM                                                EX E0582300
         SETM  R14,TCB.CPSW(R3)   MAP MESSAGE BUFFER ADDR            EX E0582400
         EPSR  R4,R4              SAVE PSW                           EX E0582500
         ENDC                                                        EX E0582600
         LHR   R8,R3              CALLED TASK'S TCB ADDR             EX E0582700
         LHI   R15,MSG.ERR        ERROR RETURN                       EX E0582800
         IFNZ  CMPROC*ST                                                E0582900
         BAL   R12,ADD.BC                                            EX E0583000
         ENDC                                                        EX E0583100
         LHR   R10,R8             SAVE A(CALLED TASK'S TCB)          EX E0583200
         LHR   R11,R14                                               EX E0583300
         IFNZ  EXTMEM                                                EX E0583400
         EPSR  R5,R0              TALK TO PB                         EX E0583500
         ENDC                                                        EX E0583600
         LH    R14,SVC6.MSG(R2)   ADDRESS OF SENDING BUFFER          EX E0583700
         IFNZ  EXTMEM                                             EX    E0583800
         SETM  R14,SVCTWO!CLK*4+SVCCSW  MAP SENDING BUFF ADDR        EX E0583900
         EPSR  R5,R5              SAVE PSW                           EX E0584000
         ENDC                                                        EX E0584100
         LHR   R6,R14             SAVE ADDR                          EX E0584200
         THI   R14,1              ODD ADDRESS?                       EX E0584300
         BNZ   MSG.ERR            YES,ERROR RETURN                   EX E0584400
         LHR   R8,R1              CALLER'S TCB ADDR                  EX E0584500
         IFNZ  CMPROC*ST                                                E0584600
         BAL   R12,ADD.BC         CHECK THE BUFFER ADDRESS           EX E0584700
         ENDC                                                        EX E0584800
         LHR   R3,R10             RESTORE R3, TO A(CALLED TCB)       EX E0584900
         IFNZ  EXTMEM                                                EX E0585000
         EPSR  R8,R4              TALK TO RECEIVING AREA             EX E0585100
         ENDC                                                        EX E0585200
         LH    R8,0(R11)          GET MESSAGE LINK FIELD             EX E0585300
         THI   R8,1               CHECK IF EMPTY                     EX E0585400
         BNZ   MSG.ERR            BUFFER FULL ERROR                  EX E0585500
         IFNZ  EXTMEM                                                EX E0585600
         LPS   TCB.UBSW(R3)       TALK TO CALLED TASK'S UDL          EX E0585700
         ENDC                                                        EX E0585800
         STH   R8,UDL.MSGR(R9)    UPDATE UDL WITH NEXT BUFFER ADDR   EX E0585900
         AIS   R8,1               MARK BUFFER FULL (BIT 15=1)        EX E0586000
         IFNZ  EXTMEM                                                EX E0586100
         EPSR  R12,R4             TALK TO RECEIVING AREA             EX E0586200
         ENDC                                                        EX E0586300
         STH   R8,0(R11)          PUT IN LINK FIELD                  EX E0586400
         LM    R12,TCB.ID(R1)     GET TASK ID OF CALLER              EX E0586500
         STM   R12,2(R11)         STORE TASK ID IN BYTES 3-11        EX E0586600
         LHR   R8,R6              GET ADDR OF SENDING BUFFER         EX E0586700
         LIS   R9,8               INCREMENT                          EX E0586800
         LHI   R10,60(R8)         COMPARAND                          EX E0586900
MSG.SEND EQU   *                                                     EX E0587000
         IFNZ  EXTMEM                                                EX E0587100
         EPSR  R7,R5              TALK TO SENDING BUFFER             EX E0587200
         ENDC                                                        EX E0587300
         LM    R12,0(R8)          GET 8 BYTES OF MESSAGE             EX E0587400
         IFNZ  EXTMEM                                                EX E0587500
         EPSR  R7,R4              TALK TO RECEIVING BUFFER           EX E0587600
         ENDC                                                        EX E0587700
         STM   R12,10(R11)        STORE 8 BYTES OF MESSAGE           EX E0587800
         AIS   R11,8              UPDATE SENDING BUFFER ADDRESS      EX E0587900
         BXLE  R8,MSG.SEND        REPEAT                             EX E0588000
         LHR   R13,R3             CALLED TASK'S A(TCB)               EX E0588100
         LH    R15,MSG.SAV        PARAMETER FOR TASK QUEUE           EX E0588200
         LIS   R14,5              REASON CODE = SEND MESSAGE         EX E0588300
         BAL   R8,ADTSKQ          ADD TO TASK QUEUE                  EX E0588400
         BNZS  MSG.RES            NO ADD TO QUEUE                    EX E0588500
         IFNZ  1-CMPROC!FOREGRND                                     EX E0588600
         LPSW  SVC6.RT            OK,RETURN TO EXEC STATE            EX E0588700
         ELSE                                                        EX E0588800
         XHR   R0,R0              STATUS=0                           EX E0588900
         B     SVC6.RST           EXIT                               EX E0589000
         ENDC                                                        EX E0589100
MSG.RES  LH    R9,TCB.UBOT(R3)    UNSEND MESSAGE                     EX E0589200
         IFNZ  EXTMEM                                                EX E0589300
         LPS   TCB.UBEW(R3)       TALK TO RECEIVING UDL              EX E0589400
         ENDC                                                        EX E0589500
         LH    R11,MSG.SAV        GET ADDRESS OF MESSAGE             EX E0589600
         STH   R11,UDL.MSGR(R9)   RESTORE BUFFER ADDRESS             EX E0589700
         IFNZ  EXTMEM                                                EX E0589800
         SETM  R11,TCB.CPSW(R3)   TALK TO RECEIVING BUFFER              E0589900
         ENDC                                                        EX E0590000
         LH    R10,0(R11)         GET LINK FIELD                     EX E0590100
         SIS   R10,1              RESET BIT 15                       EX E0590200
         STH   R10,0(R11)         RESTORE LINK FIELD                 EX E0590300
MSG.ERR  EQU   *                                                     EX E0590400
         LIS   R15,11             ERROR CODE                         EX E0590500
    IFNZ    EXTMEM                                                      E0590600
         LIS   R0,11               GET POSITION POINTER FOR ERROR    EX E0590700
   ENDC                                                                 E0590800
         B     SVC6.ERR                                              EX E0590900
MSG.SAV  DS    2                  SAVE AREA FOR A(MESSAGE)           EX E0591000
         TITLE SVC6 PRIORITY FUNCTION                                EX E0591100
         IFNZ  1-CMPROC!FOREGRND  IF NO CMD PROC OR FGR PARTITIONS   EX E0591200
*##########################################################          EX E0591300
* R1= CALLER'S A(TCB)                                                EX E0591400
* R3= CALLED TASK'S A(TCB)                                           EX E0591500
* R8=RETURN ADDR                                                        E0591600
*#######################################################*               E0591700
SVC6.PRR EQU   *                                                        E0591800
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0591900
         LB    R9,TCB.MPRI(R3)     GET MAX.ESTABLISHED PRIORITY         E0592000
         LB    R10,SVC6.PRI(R2)    GET NEW PRIORITY IN PBLK             E0592100
         LHR   R12,R10                                                  E0592200
         LH    R13,TCB.OPT(R3)     E-TASK ?                             E0592300
         BMS   PRR.CM              YES...DO NOT CHECK 9<PRI<250         E0592400
         CLHI  R12,250                                                  E0592500
         BNL   PRR.ERR             >249?                                E0592600
PRR.CM   EQU   *                                                        E0592700
         LH    R13,TCB.FLGS(R3)    GET TASK FLAGS                 EN001 E0592800
         SHR   R12,R9                                                   E0592900
         BNMS  PRR.CS             PRI HIGHER THAN MAX EST PRI ?         E0593000
         LHR   R10,R9              CHANGE TO MAX PRI                    E0593100
PRR.CS   THI   R13,TFLG.SLM        IN SYSTEM LEVEL CODE ?               E0593200
         BZS   PRR.PG              NO, UT/ET LEVEL PRI IS IN TCB  EN008 E0593300
         IFNZ  ROLL                                                     E0593400
         LIS   R12,1                                                    E0593500
         ELSE                                                           E0593600
         LIS   R12,2               YES...FIND SYSTEM RESOURCE THE       E0593700
         ENDC                                                           E0593800
PRR.FS   LB    R13,RDBLK(R12)     ...TASK IS USING                      E0593900
         CLB   R13,TCB.PNT(R3)                                          E0594000
         BES   PRR.TF                                                   E0594100
         SIS   R12,1                                                    E0594200
         BNLS  PRR.FS                                                   E0594300
         IFNZ  ROLL                                                     E0594400
         LIS   R12,2                                                    E0594500
         ENDC                                                           E0594600
PRR.TF   STB   R10,SVCPRI(R12)    CHANGE ITS PRIORITY                   E0594700
         BS    PRR.EX                                                   E0594800
PRR.PG   STB   R10,TCB.CPRI(R3)    O.K. TO CHANGE PRIORITY              E0594900
         IFNZ  FOREGRND            *                              EN003 E0595000
         BAL   R12,PLINK           ADJUST PRITAB                        E0595100
         ENDC                      *                              EN003 E0595200
PRR.EX   LPSW  SVC6.RT            RETURN TO EXEC STATE                  E0595300
PRR.ERR  LIS   R15,5               ERROR - INVALID PRIORITY             E0595400
         B     SVC6.ERR                                                 E0595500
         TITLE SVC6  CONNECT                                            E0595600
         IFNZ  TGD                 IF TGD SUPPORT                    OP E0595700
*##########################################################*            E0595800
* R1=CALLER'S A(TCB)                                                    E0595900
* R3=CALLED TASK'S A(TCB)                                               E0596000
* R8=RETURN ADDR                                                        E0596100
*##########################################################*            E0596200
SVC6.CON EQU   *                                                        E0596300
         BAL   R11,LOCCHK         VERIFY TASK STILL AROUND              E0596400
         LH    R10,DCB.RSAV(R14)   DEVICE ALREADY CONNECTED ?           E0596500
         BNZS  CON.ERR                                                  E0596600
         LH    R11,SVC6.PAR(R2)                                         E0596700
         STH   R11,DCB.RSAV+2(R14)  PUT PARAMETER IN DCB                E0596800
         LB    R11,TCB.PNT(R3)     GET TCB PNTR                         E0596900
         STB   R11,DCB.RSAV(R14)                                        E0597000
         STH   R14,DCB.RSAV+14(R14)     PUT A(DCB) IN R9 SAVE AREA      E0597100
         LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0597200
CON.ERR  LIS   R15,15              DEVICE IS BUSY...CANNOT CONNECT      E0597300
         B     SVC6.ERR                                                 E0597400
         ENDC                      *                                 OP E0597500
         ENDC                                                           E0597600
         ENDC                                                           E0597700
         IFP   OVSIX                                                    E0597800
         IFP   *-ENDOV6                                                 E0597900
ENDOV6   EQU   *                                                        E0598000
         ENDC                                                           E0598100
*                                                                       E0598200
* OVERLAY 3                                                             E0598300
*                                                                       E0598400
         ORG   0                                                        E0598500
         ORG   OV6                                                      E0598600
         ENDC                                                           E0598700
         IFP   SVCSIX                                                   E0598800
         TITLE SVC6 - THAW, SINT, FREEZE, UNCONNECT                     E0598900
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0599000
         IFNZ  TGD                 IF TGD SUPPORT                    OP E0599100
*###########################################################*           E0599200
* R1=CALLER'S A(TCB)                                                    E0599300
* R3=CALLED TASK'S A(TCB)                                               E0599400
* R8=RETURN ADDR                                                        E0599500
*###########################################################*           E0599600
SVC6.TGD EQU   *                                                        E0599700
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0599800
         IFZ   OVSIX               IF SVC 6 IS NOT OVERLAYED      EN008 E0599900
         BAL   R12,CNCTCHK         CONNECTED?...AND TO THE RIGHT TASK?  E0600000
         BNZ   SVC6.ERR                                                 E0600100
         ELSE                      SVC 6 IS OVERLAYED             EN008 E0600200
         LB    R15,DCB.RSAV(R14)   TCB POINTER OF CONNECTED TASK  EN008 E0600300
         LHR   R15,R15             CONNECTED ?                    EN008 E0600400
         BNZS  TGD.CHK             YES, GO CHECK TASK             EN008 E0600500
         CLHI  R0,20               IS THIS AN UNCONNECT ?         EN008 E0600600
         BES   TGD.UNC             YES, GO DO IT                  EN008 E0600700
TGD.CERR LHI   R15,16              DEVICE NOT CONNECTED TO        EN008 E0600800
         B     SVC6.ERR            DIRECTED TASK                  EN008 E0600900
TGD.CHK  CLB   R15,TCB.PNT(R3)     CONNECTED TO DIRECTED TASK ?   EN008 E0601000
         BNES  TGD.CERR            IF NOT, GIVE ERROR (CODE 16)   EN008 E0601100
TGD.UNC  EQU   *                   *                              EN008 E0601200
         ENDC                      *                              EN008 E0601300
         LH    R15,DCB.INIT(R14)   GET INIT ADDR OF DRIVER              E0601400
         LHR   R12,R0    GET CURRENT POS. OF FUNC                       E0601500
         NHI   R12,X'F'           GIND 2ND HALF WD FUNC POS             E0601600
         LB    R13,TGD.FUN(R12)   GET CODE FOR THIS FUNCTION            E0601700
*                                                                  367D E0601800
*                                                                  367D E0601900
*                                                                  367D E0602000
         STB   R13,R4-R2*2+DCB.RSAV(R14) PUT CMD IN DCB            367D E0602100
         BAL   R12,0(R15)          BRANCH TO DRIVER                     E0602200
         CLHI  R0,20     UNCONNECT ?                                    E0602300
         BNES  UNC.RT    NO..                                           E0602400
         XHR   R9,R9               YES                                  E0602500
         STH   R9,DCB.RSAV(R14)   ZERO THE TCB PNTR OF CONNECTED TASK   E0602600
         STH   R9,DCB.RSAV+6(R14)  ZERO THE 1ST HW OF TASKID            E0602700
UNC.RT   LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0602800
TGD.FUN  EQU   *-1                 *                               367D E0602900
*                                                                  367D E0603000
         DB    X'C0'              THAW                                  E0603100
         DB    X'90'              SINT                                  E0603200
TGD.FZ   DB    X'A0'              FREEZE                                E0603300
         DB    X'A0'               UNCONNECT (FREEZE)              367D E0603400
         ALIGN 2                                                        E0603500
         ENDC                      *                                 OP E0603600
         TITLE SVC6 UNFIX FUNCTION                                      E0603700
*#######################################################*               E0603800
* R1=CALLER'S A(TCB)                                                    E0603900
* R3=CALLED TASK'S A(TCB)                                               E0604000
* R8=RETURN ADDR                                                        E0604100
*#######################################################*               E0604200
SVC6.UNF EQU   *                                                        E0604300
         BAL   R11,LOCCHK          VERIFY TASK STILL AROUND             E0604400
         LH    R9,TCB.OPT(R3)                                           E0604500
         NHI   R9,X'FFFF'-TOPT.MRM      SET TASK NON-RESIDENT           E0604600
         STH   R9,TCB.OPT(R3)                                           E0604700
         LPSW  SVC6.RT             RETURN TO EXEC STATE                 E0604800
         TITLE SVC6  START                                              E0604900
*###########################################################*           E0605000
* R1=CALLER'S A(TCB)                                                    E0605100
* R3=CALLED TASK'S A(TCB                                                E0605200
* R8=RETURN ADDR                                                        E0605300
*###########################################################*           E0605400
SVC6.STR EQU   *                                                        E0605500
         IFNZ  CMPROC!FOREGRND     *                              EN003 E0605600
         BAL   R11,LOCCHK1         VERIFY TASK STILL AROUND             E0605700
         IFNZ  EXTMEM                                                EX E0605800
         EPSR  R4,R4              SAVE PB PSW                        EX E0605900
         ENDC                                                        EX E0606000
         CLHR  R1,R3                                                    E0606100
         BE    STR.SELF            SELF-DIRECTED ?                      E0606200
         LH    R9,TCB.STAT(R3)     NO...CHECK CALLED TASK'S STATUS      E0606300
         NHI   R9,TSTT.DMM+TSTT.CWM  IS IT DORMANT OR PAUSED ?          E0606400
         BZ    STR.NDMM                                                 E0606500
         LM    R14,TCB.ITSW(R3)                                         E0606600
         STH   R14,TCB.CTSW(R3)    SAVE INITIAL TSW IN TCB              E0606700
         NHI   R14,X'F'                                                 E0606800
         IFNZ  EXTMEM                                                EX E0606900
         LB    R9,TCB.EXAD(R3)     SET USER'S MAP IN PSW             EX E0607000
         OHR   R14,R9                                                EX E0607100
         ENDC                                                        EX E0607200
         LH    R9,TCB.OPT(R3)      GET TCB OPTIONS                      E0607300
         THI   R9,TOPT.ETM         EXEC TASK ?                          E0607400
         BZS   STR.UT              NO...LOAD USER STATE                 E0607500
         OHI   R14,ETSTAT          YES                                  E0607600
         BS    STR.SCC                                                  E0607700
STR.UT   OHI   R14,UTSTAT          USER STATE                           E0607800
STR.SCC  EQU   *                                                        E0607900
         LH    R8,SVC6.SAD(R2)    IS START ADDR GIVEN?               EX E0608000
         BZS   STR.NSA            NO                                 EX E0608100
         LHR   R15,R8                                                EX E0608200
STR.NSA  STM   R14,TCB.CPSW(R3)   STORE CURRENT PSW                  EX E0608300
         LHR   R8,R3              TCB ADDR FOR ADD.BC                EX E0608400
         LHR   R9,R15             SAVE START ADDR                    EX E0608500
         LM    R14,SVCTWO!CLK*4+SVCCSW   GET CALLER'S RETURN LOCATIONEX E0608600
         THI   R14,X'0100'         ET STATE ?                     EN008 E0608700
         BZS   STR.LOK             YES, SKIP ADDCHK               EN008 E0608800
STR.CNN  EQU   *                   *                              EN008 E0608900
         IFNZ  CMPROC*ST                                                E0609000
         LHI   R15,SVC6LA          ERROR RETURN                   EN008 E0609100
         IFNZ  EXTMEM                                                EX E0609200
         SETMR R9,R14              MAP START ADDR                    EX E0609300
         ENDC                                                        EX E0609400
         LHR   R14,R9             MOVE TO R14 FOR ADD.BC             EX E0609500
         BAL   R12,ADD.BC          CHECK START ADDRESS            EN008 E0609600
         ENDC                      *                              EN003 E0609700
STR.LOK  EQU   *                   *                              EN008 E0609800
         LHR   R3,R8               RESTORE A(TCB)                       E0609900
  LH R8,TCB.CPSW+2(R3) SAVE START ADDR FOR DELAY SRT                    E0610000
         LH    R15,TCB.UBOT(R3)    PUT X'0D' AT UTOP                    E0610100
         IFNZ  EXTMEM                                                EX E0610200
         LPS   TCB.UBSW(R3)       TALK TO UDL                        EX E0610300
         ENDC                                                        EX E0610400
         LH    R15,UDL.UTOP(R15)                                        E0610500
         LIS   R14,X'0D'                                                E0610600
         IFNZ  EXTMEM                                                EX E0610700
         SETM  R15,TCB.CPSW(R3)   TALK TO UTOP                       EX E0610800
         ENDC                                                        EX E0610900
         STB   R14,0(R15)                                               E0611000
         IFNZ  EXTMEM                                                EX E0611100
         EPSR  R14,R4             TALK TO PB                         EX E0611200
         ENDC                                                        EX E0611300
         IFNZ  PCLOCK                                                   E0611400
         CLHI  R0,29               WAS DELAY-START SPECIFIED ?          E0611500
         BNE   STR.TSK                                                  E0611600
         IFNZ  EXTMEM                                                   E0611700
         LH    R7,R7*2+S6.SAV                                           E0611800
         ENDC                                                           E0611900
 NHI R7,X'7FFF' SQUASH START BIT                                        E0612000
         IFNZ  EXTMEM                                                   E0612100
         STH   R7,R7*2+S6.SAV                                           E0612200
         ENDC                                                           E0612300
         LM    R14,SVC6.TIM(R2)    YES...GET TIME                       E0612400
         LHR   R10,R14             CHECK FOR VALID TIME FIELD           E0612500
         NHI   R10,X'F000'                                              E0612600
         BZS   STR.OK                                                   E0612700
         CLHI  R10,X'1000'                                              E0612800
         BNE   STR.TE                                                   E0612900
STR.OK   LHI   R12,X'8017'    'MIL SEC. FROM NOW' DELAY                 E0613000
         LHI   R9,X'E120'                                               E0613100
         LHI   R10,TCB.RSAV+24(R3) A(SVC 2/23 PBLK)                     E0613200
         LHI   R11,X'2206'     BR R8                                    E0613300
  LH R7,TCB.CPSW(R3)                                                    E0613400
 STB R11,TCB.CPSW+1(R3) ELIM CSEG IF THERE                              E0613500
         STM   R7,TCB.RSAV+14(R3)  PUT SVC 2/23 CALL AND PBLK IN RAV    E0613600
 LHI R14,X'C200'  SET UP LPSW                                           E0613700
 LHI R15,TCB.RSAV+14(R3)                                                E0613800
 STM R14,TCB.RSAV+10(R3)                                                E0613900
         LHI   R8,TCB.RSAV+18(R3)  CHANGE TASK'S START ADDR TO POINT TO E0614000
         STH   R8,TCB.CPSW+2(R3)      THE SVC2/23                       E0614100
         IFZ   EXTMEM                                                EX E0614200
         AIS   R4,2                BUMP FUNCTION TBL PNTR               E0614300
         AIS   R0,1                BUMP POSITION PNTR                   E0614400
         ELSE                                                        EX E0614500
         LIS   R9,1                                                  EX E0614600
         AHM   R9,S6.SAV          BUMP FUNCTION TABLE PTR (R0)       EX E0614700
         LIS   R2,2                                                  EX E0614800
         AHM   R2,S6.SAV+8        BUMP POSITION POINTER(R1)          EX E0614900
         ENDC                                                        EX E0615000
         ENDC                                                           E0615100
STR.TSK  LH    R9,TCB.STAT(R3)       WAIT                               E0615200
         NHI   R9,X'FFFF'-TSTT.DMM-TSTT.CWM                             E0615300
         STH   R9,TCB.STAT(R3)     TAKE TASK OUT OF DORMANT OR CONSOLE  E0615400
         IFNZ  EXTMEM                                                EX E0615500
         EPSR  R15,R4             RESET PSW TO PB                    EX E0615600
         ENDC                                                        EX E0615700
         STH   R9,SVC6.TST(R2)          RETURN NEW STATUS TO PBLK       E0615800
         IFNZ  FLOAT+DFLOAT        IF ANY FLOAT                     95E E0615900
         LH    R15,TCB.OPT(R3)     R15 = TASK OPTIONS               95E E0616000
         THI   R15,TOPT.FPM+TOPT.DFM ANY FLOATING PT ?              95E E0616100
         BZ    STR.NFP             NO                               95E E0616200
         IFNZ  FLOAT               SPFP                             95E E0616300
         LHI   R14,UDLF-2          ASSUME CLEARING SPFP             95E E0616400
         IFNZ  DFLOAT              DPFP                             95E E0616500
         THI   R15,TOPT.DFM        NEEDS DOUBLE REGS ?              95E E0616600
         BZS   STR.NODP            NO                               95E E0616700
         ENDC                      *                                95E E0616800
         ENDC                      *                                95E E0616900
         IFNZ  DFLOAT              DPFP                             95E E0617000
         LHI   R14,UDLD-2          CLEAR DP REGS                    95E E0617100
         ENDC                      *                                95E E0617200
STR.NODP XHR   R15,R15             CLEAR A REGISTER                 95E E0617300
         IFNZ  EXTMEM              IF EXTENDED MEMORY               95E E0617400
         LPS   TCB.UBSW(R3)        TALK TO UDL                      95E E0617500
         ENDC                      *                                95E E0617600
         LH    R13,TCB.UBOT(R3)    R13 = A(UDL)                     95E E0617700
         AHR   R14,R13             END OF SAVE AREAS                95E E0617800
         AHI   R13,UDL             BUMP COMPARAND                   95E E0617900
STR.CLRF STH   R15,0(R14)          ZERO THE REGS                    95E E0618000
         SIS   R14,2               BACK OFF                         95E E0618100
         CLHR  R14,R13             DONE                             95E E0618200
         BNLS  STR.CLRF            NO, CONTINUE                     95E E0618300
STR.NFP  EQU   *                   *                                95E E0618400
         ENDC                      *                                95E E0618500
         LPSW  SVC6.RT             RETURN TO EXEC STATE             95E E0618600
         ENDC                      *                                95E E0618700
STR.SELF LIS   R15,1               ERROR - ILLEGAL SELF-DIRECTED FUNC.  E0618800
         IFNZ  CMPROC!FOREGRND     *                              EN003 E0618900
         BS    STR.ERR                                                  E0619000
STR.SE   LIS   R15,8               ERROR-INVALID START ADDR             E0619100
         BS    STR.ERR                                                  E0619200
STR.TE   LIS   R15,10              ERROR-INVALID CODE IN TT FIELD       E0619300
         ENDC                      *                              EN003 E0619400
STR.ERR  B     SVC6.ERR                                                 E0619500
         IFNZ  CMPROC!FOREGRND     *                              EN003 E0619600
STR.NDMM LIS   R15,7               ERROR-SPECIFIED TASK NOT DORMANT     E0619700
         BS    STR.ERR                                                  E0619800
         ENDC                      *                              EN003 E0619900
         ENDC                                                           E0620000
         ENDC                                                           E0620100
         IFP   OVSIX                                                    E0620200
         IFP   *-ENDOV6                                                 E0620300
ENDOV6   EQU   *                                                        E0620400
         ENDC                                                           E0620500
*                                                                       E0620600
* OVERLAY 4                                                             E0620700
*                                                                       E0620800
         ORG   0                                                        E0620900
         ORG   OV6                                                      E0621000
         ENDC                                                           E0621100
         IFP   SVCSIX                                                   E0621200
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0621300
         TITLE SVC6  LOADER                                             E0621400
SVC6.LT  EQU   *                                                        E0621500
         IFNZ  EXTMEM                                                EX E0621600
         EPSR  R14,R14            RUN IN ET STATE                    EX E0621700
         OHI   R14,X'7E00'                                           EX E0621800
         ELSE                                                        EX E0621900
         LHI   R14,ETSTAT          RUN IN ET STATE                      E0622000
         ENDC                                                        EX E0622100
         EPSR  R15,R14                                                  E0622200
         LB    R14,SVC6.LU(R2)     GET LOADER LU                        E0622300
         STB   R14,LT.TSV1+1       PUT LU IN PBLK                       E0622400
         LHI   R14,TCB.RSAV+32-LIB(R1) INITIALIZE TO READ LIB           E0622500
         LHI   R15,LIB-1(R14)                                           E0622600
         STM   R14,LT.TSV1+SVC1.SAD                                     E0622700
         SVC   1,LT.TSV1           READ LIB FROM LOADER LU INTO REGS    E0622800
         STM   R12,LT.SAV          SAVE R12-R15                         E0622900
         LH    R15,LT.TSV1+SVC1.STA CHECK I/O STATUS                    E0623000
         BNZ   LT.IOE              I/O ERROR                            E0623100
         THI   R6,LFLG.OVM         TASK,LIBRARY/OVERLAY ?               E0623200
         BZS   LT.LK               OK IF NOT OVERLAY              EN008 E0623300
         LHI   R15,68              ERROR-ILLEGAL LIB              EN008 E0623400
         B     SVC6.ERR            *                              EN008 E0623500
LT.LK    EQU   *                   *                              EN008 E0623600
         IFZ   FLOAT               IF NO SPFP SUPPORT             EN001 E0623700
         IFNZ  DFLOAT              IF DPFP SUPPORT                EN001 E0623800
         THI   R6,TOPT.FPM         TASK USE SPFP ?                EN001 E0623900
         BZS   LT.FL               NO                             EN001 E0624000
         LIS   R15,6               ERROR-NO SPFP SUPPORT          EN001 E0624100
         B     SVC6.ERR            *                              EN001 E0624200
LT.FL    EQU   *                   *                              EN001 E0624300
         ELSE                      NO DPFP OR SPFP SUPPORT        EN001 E0624400
         THI   R6,TOPT.DFM+TOPT.FPM TASK USE FP ?                 EN001 E0624500
         BZS   LT.FL               NO                             EN001 E0624600
         LIS   R15,6               ERROR-NO FP SUPPORT            EN001 E0624700
         B     SVC6.ERR            *                              EN001 E0624800
LT.FL    EQU   *                   *                              EN001 E0624900
         ENDC                      *                              EN001 E0625000
         ELSE                      SPFP SUPPORT                   EN001 E0625100
         IFZ   DFLOAT              IF NO DPFP SUPPORT             EN001 E0625200
         THI   R6,TOPT.DFM         TASK USE DPFP ?                EN001 E0625300
         BZS   LT.FL               NO                             EN001 E0625400
         LIS   R15,6               ERROR-NO DPFP SUPPORT          EN001 E0625500
         B     SVC6.ERR            *                              EN001 E0625600
LT.FL    EQU   *                   *                              EN001 E0625700
         ENDC                      *                              EN001 E0625800
         ENDC                      *                              EN001 E0625900
         LHR   R12,R8                                                   E0626000
         IFNZ  EXTMEM                                                EX E0626100
         SRLS  R14,8              PUT EXT ADDR BITS IN BOTTOM OF R14 EX E0626200
         ENDC                                                        EX E0626300
         BAL   R5,PAR.FND0         FIND PARTITION FOR THE TASK/LIB      E0626400
         BM    LT.NA               PARTITION NOT FND                    E0626500
         BNPS  LT.CB               BRANCH IF PARTITION IS VACANT        E0626600
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0626700
         IFNZ  ROLL                                                     E0626800
         BS    LT.CROL             CHECK FOR ROLLING OUT          EN008 E0626900
         ELSE                                                           E0627000
         LHR   R13,R13             IS IT THE BACKGROUND PARTITION ?     E0627100
         BNZ   LT.PNA              NO...NOT AVAILABLE                   E0627200
         LH    R15,TCB.STAT(R14)   GET .BG STATUS                       E0627300
         BNM   LT.PNA              NOT DORMANT...NOT AVAILABLE          E0627400
         ENDC                                                           E0627500
LT.SB    OHI   R6,TOPT.BGM         SET .BG FLAG                         E0627600
         ELSE                      NO CMDP IN SYSTEM              EN003 E0627700
         LH    R15,TCB.STAT(R14)   IS PARTITION DORMANT ?         EN003 E0627800
         BNM   LT.PNA              NOT DORMANT, NOT AVAILABLE     EN003 E0627900
         ENDC                      *                              EN003 E0628000
LT.CB    EQU   *                                                        E0628100
         LHR   R3,R14              PARTITION AVAILABLE                  E0628200
         IFP   OVSIX                                                    E0628300
         LIS   RF,OV6SIZ*6         OV # 6                         EN008 E0628400
         LHI   RC,LT.PA                                                 E0628500
         B     LDS6.N             LOAD FINAL PART LOADER IF OV'D        E0628600
         ELSE                                                           E0628700
         B     LT.PA                                                    E0628800
         ENDC                                                           E0628900
         IFNZ  ROLL                                                     E0629000
LT.CROL  EQU   *                   CHECK IF TASK CAN BE ROLLED OUT      E0629100
         LHR   R13,R13             BACKGRND  ?                          E0629200
         BNZS  LT.CT               IF NOT, TRY ROLLABLE                 E0629300
         LH    R15,TCB.STAT(R14)   YES, CHECK .BG STATUS                E0629400
         BMS   LT.SB               DORMANT, GO LOAD               EN008 E0629500
LT.CT    EQU   *                                                        E0629600
         LHR   R3,R14              A(TCB)                               E0629700
         IFNZ  EXTMEM                                                EX E0629800
         LH    R12,PARTAB(R13)                                       EX E0629900
         CLH   R12,PARTAB+4(R13)  IS NEXT PARTITION IN DIFFERENT SEGMEX E0630000
         BES   LT.C1              NO                                 EX E0630100
         LCS   R11,2          YES,SET CTOP = FFFE                    EX E0630200
         BS    LT.C2                                                 EX E0630300
         ENDC                                                        EX E0630400
LT.C1    CLH   R11,PARTAB+2+EXTM+EXTM(R13)  CHECK TOP LIMIT          EX E0630500
         BNL   LT.NA              TASK DOES NOT FIT                     E0630600
         LH    R11,PARTAB+2+EXTM+EXTM(R13)  REAL CTOP                EX E0630700
         SIS   R11,2                                                    E0630800
LT.C2    LH    R12,TCB.OPT(R3)      GET OPTIONS                      EX E0630900
         THI   R12,TOPT.ROM        ROLLABLE ?                           E0631000
         BZ    LT.PNA              NO...PARTITION NOT AVAILABLE         E0631100
         LB    R12,TCB.CPRI(R3)    GET PRIORITY OF ROLLABLE TASK        E0631200
         LH    R14,TCB.FLGS(R3)    GET TASK FLAGS                  268E E0631300
         THI   R14,TFLG.SLM        SYSTEM LEVEL ?                  268E E0631400
         BZS   LT.CNS              NO                              268E E0631500
         LIS   R13,1               TEST SVC 5/6                    268E E0631600
LT.CPP   LB    R14,RDBLK(R13)      *                               268E E0631700
         CLB   R14,TCB.PNT(R3)     IS THIS IT ?                    268E E0631800
         BES   LT.CPF              YES                             268E E0631900
         SIS   R13,1               TEST SVC 2                      268E E0632000
         BNLS  LT.CPP              *                               268E E0632100
         LIS   R13,2               ASSUME SVC 7                    268E E0632200
LT.CPF   LB    R12,SVCPRI(R13)     PICK UP PRIORITY                268E E0632300
LT.CNS   EQU   *                   *                               268E E0632400
         LBR   R14,R7              GET LOADING TASK'S PRIORITY          E0632500
         CLHR  R14,R12    GREATER THAN ROLABLE TASK ?                   E0632600
         BNL   LT.PNA              NO...DO NOT ROLL HIGHER PRI TASK     E0632700
         IFNZ  FOREGRND                                                 E0632800
         XHR   R13,R13             YES...LOOP THROUGH DMT               E0632900
LT.CCD   LH    R12,DMT+DMT.NAME(R13) IS TASK CONNECTED TO A TGD ?       E0633000
         BZ    LT.NDC                                                   E0633100
         LH    R14,DMT+DMT.DCB(R13) A(DCB)                              E0633200
         LH    R12,DCB.FLGS(R14)  GET DEVICE FLAGS                      E0633300
         THI   R12,DFLG.S6M       CONNECTABLE DEVICE ?                  E0633400
         BZS   LT.DMT              NO...TRY THE NEXT ONE                E0633500
         LB    R15,DCB.RSAV(R14)   TCB POINTER OF CONNECTED TASK  EN008 E0633600
         CLB   R15,TCB.PNT(R3)     CONNECTED TO DIRECTED TASK ?   EN008 E0633700
         BZ    LT.PNA              YES...DO NOT ROLL A CONNECTED TASK   E0633800
LT.DMT   AIS   R13,6                                                    E0633900
         B     LT.CCD                                                   E0634000
         ENDC                                                           E0634100
LT.NDC   EQU   *                                                     EX E0634200
         IFZ   EXTMEM                                                EX E0634300
         LHI   R13,SUSTAT         GO TO SU STATE                     EX E0634400
         ELSE                                                        EX E0634500
         EPSR  R13,R13                                               EX E0634600
         NHI   R13,X'FDFF'                                           EX E0634700
         ENDC                                                        EX E0634800
         EPSR  R14,R13                                                  E0634900
         LH    R14,TCB.STAT(R3)    NO DEVICES CONNECTED TO THIS TASK    E0635000
         THI   R14,TSTT.TIM        IS TASK IN A TIME WAIT ?             E0635100
         BNZ   LT.PNA              YES...DO NOT ROLL                    E0635200
         XHR   R13,R13                                                  E0635300
         IFNZ  PCLOCK                                                   E0635400
LT.CTIM  LB    R12,TIMTSV(R13)                                          E0635500
         LHR   R12,R12                                                  E0635600
         BZS   LT.NTIM                                                  E0635700
         CLB   R12,TCB.PNT(R3)     IS TASK IN AN INTERVAL ATQ ?         E0635800
         BE    LT.PNA    YES...DO NOT ROLL                              E0635900
         AIS   R13,1     CHECK EACH ENTRY IN TIME SERVICE TABLE         E0636000
         BS    LT.CTIM                                                  E0636100
LT.NTIM  EQU   *                                                        E0636200
         ENDC                                                           E0636300
         LH    R13,TCB.FLGS(R3)    *                              EN001 E0636400
         THI   R14,TSTT.CWM        CONSOLE WAIT ?                       E0636500
         BZS   LT.CSV                                                   E0636600
         OHI   R13,TFLG.PPM        SET PAUSE PENDING                    E0636700
*                                  CLEAR CONSOLE WAIT/SVC2,5,6,7 WAIT   E0636800
LT.CSV   EQU   *                                                        E0636900
         NHI   R14,-1-TSTT.CWM-TSTT.S2M-TSTT.S6M-TSTT.S7M               E0637000
         STH   R14,TCB.ADQT+2(R3)  SAVE TASK'S STATUS                   E0637100
         NHI   R14,-1-TSTT.DMM     CLEAR DORMANT STATUS                 E0637200
         STH   R14,TCB.STAT(R3)                                         E0637300
         OHI   R13,TFLG.ROM        SET ROLL PENDING                     E0637400
         STH   R13,TCB.FLGS(R3)    *                              EN001 E0637500
         LB    R15,TCB.PNT(R1)     GET CALLER'S TCB PNTR                E0637600
         EXBR  R15,R15             INTO UPPER BYTE                EN008 E0637700
         LB    R13,TCB.CPRI(R3)    GET TASK'S CURRENT PRIORITY          E0637800
         OHR   R15,R13             SAVE IN ROLLING TASK'S TCB           E0637900
         STH   R15,TCB.ADQP(R3)                                         E0638000
         LB    R15,TCB.CPRI(R1)                                         E0638100
         STB   R15,TCB.CPRI(R3)    SET TASK'S PRI TO THAT OF CALLER     E0638200
         IFNZ  FOREGRND                                                 E0638300
         STM   R9,ROL.SAV          SAVE NECESSARY REGS                  E0638400
         BAL   R12,PLINK           BUILD PRIORITY TABLE                 E0638500
         LM    R9,ROL.SAV          RESTORE REGS                         E0638600
         ENDC                                                           E0638700
         LH    R15,TCB.STAT(R1)                                         E0638800
         OHI   R15,TSTT.S6M        PUT CALLER INTO LOAD WIAT            E0638900
         STH   R15,TCB.STAT(R1)                                         E0639000
         XHR   R15,R15                                                  E0639100
         ATL   R15,LIOTRM          ADD 0 TO SYS.QUE TO FORCE SCHEDULING E0639200
         LPSW  ROL.WT              EXIT VIA SYS.QUE INTERRUPT           E0639300
ROL.WT   DC    ETSTAT,LT.ROL                                            E0639400
LT.ROL   EQU   *                   REUTRN HERE WHEN ROLLOUT CAN PROCEED E0639500
         IFP   OVSIX                                                    E0639600
         BS    LT.OV5              BRING IN NEXT OVERLAY          EN008 E0639700
         LHI   R12,LT.CL      TASK HAS BEEN CANCELED...OK TO LOAD       E0639800
         LIS   R15,OV6SIZ*6                                             E0639900
         B     LDS6.N                                                   E0640000
         ELSE                                                           E0640100
         BS    LT.CS2              START ROLL OUT                 EN008 E0640200
         B     LT.CL    TASK HAS BEEN CANCELED...OK TO LOAD             E0640300
         ENDC                                                           E0640400
*                                                                       E0640500
         IFP   OVSIX                                                    E0640600
LT.OV5   LIS   R15,OV6SIZ*5                                             E0640700
         LHI   RC,LT.CS2           LOAD 2ND PART LOADER IF OV'D         E0640800
         B     LDS6.N                                                   E0640900
*                                                                 EN008 E0641000
*                                                                 EN008 E0641100
         ENDC                                                           E0641200
ROL.SAV  DS    14                                                       E0641300
         ENDC                                                           E0641400
LT.PNA   LHI   R15,73              ERROR-PARTITION NOT AVAILABLE  EN008 E0641500
         B     SVC6.ERR            *                              EN008 E0641600
         ENDC                      *                              EN003 E0641700
         IFP   OVSIX                                                    E0641800
         IFP   *-ENDOV6                                                 E0641900
ENDOV6   EQU   *                                                        E0642000
         ENDC                                                           E0642100
*                                                                       E0642200
* OVERLAY 5                                                             E0642300
*                                                                       E0642400
         ORG   0                                                        E0642500
         ORG   OV6                                                      E0642600
         ENDC                                                           E0642700
         IFP   SVCSIX                                                   E0642800
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0642900
*                                                                       E0643000
*                                                                       E0643100
*                                                                       E0643200
         TITLE SVC6 LOADER  ROLLOUT                                     E0643300
         IFNZ  ROLL                                                     E0643400
*                                                                       E0643500
*ROLL.OUT  MODULE TO WRITE TASK AND TASK TCB TO ROLL FILE               E0643600
* RUN IN EXECUTIVE STATE                                                E0643700
*                                                                       E0643800
*                                                                       E0643900
LT.CS2   EQU   *                                                        E0644000
         LB    R14,SVC6.LU(R2)     SAVE CALLER'S LOAD LU AND ATTRIBUTES E0644100
         LHR   R15,R14                                                  E0644200
         AHR   R14,R14                                                  E0644300
         AHR   R14,R1                                                   E0644400
         LH    R13,TCB.LTAB(R14)                                        E0644500
         STH   R13,ROLLU                                                E0644600
         STB   R15,ROL.SV1+SVC1.LU USE THIS LU FOR ROLL                 E0644700
         STB   R15,ROL.SV7+SVC7.LU ASSIGN TO ROLL FILE                  E0644800
         LB    R0,TCB.NLU(R1)      PICK UP # OF LUS OF CALLER      369D E0644900
         AHR   R0,R0               DOUBLE IT                       369D E0645000
         AHR   R15,R0              ADD IT IN TO LU #               369D E0645100
         AHR   R15,R1                                                   E0645200
         LB    R13,TCB.LTAB+1(R15) ACCESS ATTRIBUTE BYTE FOR LU    369D E0645300
         STM   R13,ROLLA                                                E0645400
         XHR   R13,R13                                                  E0645500
         STH   R13,TCB.LTAB(R14)   CLR LU ENTRY SO NEW ONE CAN BE ASSGN E0645600
*                                                                  369D E0645700
         LHI   R13,S7CM.ASM+S7M.SRW ASSIGN COMMAND AND ACCESS PRVG      E0645800
         LB    R0,TCB.PNT(R3)     TCB PNTR                              E0645900
         SIS   R0,4                PARTAB INDEX                         E0646000
         SRLS  R0,1                TASK #                               E0646100
         STH   R13,ROL.SV7                                              E0646200
         LM    R14,ROLVOL          GET ROLL VOLUME                      E0646300
         STM   R14,ROL.SV7+SVC7.VOL  SET UP ROLL VOL IN PBLK            E0646400
         SVC   2,ROL.UN                                                 E0646500
         SVC   7,ROL.SV7           ASSIGN ROLL VOLUME                   E0646600
         LB    R12,ROL.SV7+SVC7.STA              STATUS                 E0646700
         LHR   R12,R12             ASSIGN ERROR ?                       E0646800
         BNZ   ROLL.ER1                                                 E0646900
         LHR   R14,R3                                                   E0647000
*                                                                 EN008 E0647100
         LHI   R15,TCBL-1(R14)     GET END OF TCB                 EN008 E0647200
         STM   R14,ROL.SV1+SVC1.SAD                                     E0647300
         SVC   1,ROL.SV1                                                E0647400
         LH    R15,ROL.SV1+SVC1.STA                                     E0647500
         BNZ   ROLL.ER2                                                 E0647600
         LB    R13,TCB.PNT(R3)                                          E0647700
         IFZ   EXTMEM                                              EX   E0647800
         LM    R14,PARTAB-4(R13)                                        E0647900
         ELSE                                                      EX   E0648000
         SIS   R13,4                                               EX   E0648100
         AHR   R13,R13             DOUBLE INDEX                    EX   E0648200
         LH    R14,PARTAB+2(R13)   GET START OF PARTITION          EX   E0648300
         LH    R15,PARTAB+4(R13) NEXT PART IN SAME 32KB            EX   E0648400
         CLH   R15,PARTAB(R13)                                     EX   E0648500
         BES   LT.CS21             YES                             EX   E0648600
         XHR   R15,R15             NO SET END TO TOP OF 32KB       EX   E0648700
         BS    LT.CS22                                             EX   E0648800
LT.CS21  LH    R15,PARTAB+6(R13)                                   EX   E0648900
LT.CS22  EQU   *                                                   EX   E0649000
         ENDC                                                      EX   E0649100
         SIS   R15,1               GET PROPER END ADDRESS               E0649200
         STM   R14,ROL.SV1+SVC1.SAD                                     E0649300
         IFNZ  EXTMEM                                              EX   E0649400
         EPSR  R15,R15             SAVE                            EX   E0649500
         LPS   TCB.UBEW(R3)        TALK TO PARTITION               EX   E0649600
         ENDC                                                      EX   E0649700
         SVC   1,ROL.SV1           ROLL OUT TASK IMMAGE                 E0649800
         IFNZ  EXTMEM                                              EX   E0649900
         LPSR  R15                 RESTORE PSW                     EX   E0650000
         ENDC                                                      EX   E0650100
         LH    R15,ROL.SV1+SVC1.STA                                     E0650200
         BNZ   ROLL.ER2                                                 E0650300
*                                                                  EX   E0650400
*                                                                  298D E0650500
*                                                                  298D E0650600
*                                                                  298D E0650700
         LHI   R12,TSTT.DMM        ROLLED TASK                          E0650800
         STH   R12,TCB.STAT(R3)    SET TASK DORMANT                     E0650900
         XHR   R15,R15                                                  E0651000
         IFNZ  FOREGRND            *                               298D E0651100
         CLHI  R3,BGTCB            .BG ?                                E0651200
         BES   LT.PT               YES...DO NOT DELETE ID               E0651300
         STH   R15,TCB.ID(R3)      DELETE ROLLED TASK                   E0651400
         BAL   R12,CLR005          CLEAR CURRENT CMDP TASK         298D E0651500
         ENDC                      *                               298D E0651600
LT.PT    STH   R15,TCB.CTSW(R3)    CLEAR TSW TO PREVENT TRAPS           E0651700
         LIS   R14,1                                                    E0651800
         AHM   R14,PARTAB-4+EXTM+EXTM+EXTM(R13) SET ROLL BIT       EX   E0651900
         LIS   R14,4                                                    E0652000
         STB   R14,ROL.SV7+SVC7.CMD CLOSE FILE                          E0652100
         SVC   7,ROL.SV7                                                E0652200
         LB    R12,ROL.SV7+SVC7.STA CLOSE ERROR ?                       E0652300
         LHR   R12,R12             NO...RETURN WITH CC=0                E0652400
         BNZ   ROLL.ER3                                                 E0652500
         BAL   R12,ROLL.RLU   RESTORE CALLER'S    LU                    E0652600
         LHR   R12,R3             CLEAR LU TABLE                        E0652700
         XHR   R15,R15                                                  E0652800
         LB    R14,TCB.NLU(R3)    # LU'S                                E0652900
         AHR   R14,R14            DOUBLE IT                             E0653000
         AHR   R14,R12            + A(TCB)                              E0653100
LT.CLU   STH   R15,TCB.LTAB(R12)                                        E0653200
         AIS   R12,2              LOOP THROUGH LU TABLE                 E0653300
         CLHR  R12,R14            END OF TABLE ?                        E0653400
         BLS   LT.CLU                                                   E0653500
         IFP   OVSIX                                                    E0653600
         LIS   RF,OV6SIZ*6                                              E0653700
         LHI   RC,LT.CL                                                 E0653800
         B     LDS6.N             LOAD NEXT OV                          E0653900
         ELSE                                                           E0654000
         B     LT.CL                                                    E0654100
         ENDC                                                           E0654200
ROLL.RLU EQU   *                                                        E0654300
         STH   R12,ROLL.RTN        RETURN ADDR                          E0654400
         LM    R12,ROLLU      RESTORE CALLERS LU AND AATRIBUTES         E0654500
         STH   R12,TCB.LTAB(R14)                                        E0654600
         STB   R13,TCB.LTAB+1(R15) STORE ATTRIBUTE BYTE            369D E0654700
         LH    R15,TCB.ADQP(R3)    RESTORE TASK'S PRIORITY              E0654800
         STB   R15,TCB.CPRI(R3)                                         E0654900
         LH    R15,TCB.STAT(R3)    TAKE TASK OUT OF ROLL WAIT           E0655000
         NHI   R15,-1-TSTT.RWM                                          E0655100
         STH   R15,TCB.STAT(R3)                                         E0655200
         LIS   R0,6               RESTORE R0                            E0655300
         B     0                   MODIFIED INSTRUCTION                 E0655400
ROLL.RTN EQU   *-2                                                      E0655500
ROLL.ER3 BAL R7,ROLL.IN            ROLL TASK BACK IN                    E0655600
ROLL.ER1 EQU   *                                                        E0655700
         BAL   R12,ROLL.RLU   RESTORE CALLER'S    LU                    E0655800
         LHI   R15,X'4B'           ASSIGN/CLOSE ERROR ON ROLL           E0655900
         BS    ROLL.RRL                                                 E0656000
ROLL.ER2 EQU   *                                                        E0656100
         BAL   R12,ROLL.RLU   RESTORE CALLER'S    LU                    E0656200
         LHI   R15,X'4A'           L/O ERROR ON ROLL OUT                E0656300
ROLL.RRL LH    R12,TCB.ADQT+2(R3)  GET SAVED STATUS               EN012 E0656400
         NHI   R12,-1-TSTT.IOM     RESET I/O WAIT                 EN012 E0656500
         STH   R12,TCB.STAT(R3)    RESTORE STATUS                 EN012 E0656600
         B     SVC6.ERR            SET ERROR                      EN012 E0656700
         DC    CMTCB                                                    E0656800
ROL.SV7  DC    0,0,0,0                                                  E0656900
         DC    C'    PART    ROL '                                      E0657000
         DC    Y'0'                                                     E0657100
ROL.UN   DB    2,6                                                      E0657200
         DC    ROL.SV7+SVC7.FNM+4                                       E0657300
ROL.SV1  DC    X'3800',0,0,0,Y'0',0                                     E0657400
ROLLU    DC    0                                                        E0657500
ROLLA    DC    0                                                        E0657600
ROLLD    DC    0,0                                                      E0657700
         ENDC                                                           E0657800
         ENDC                                                           E0657900
         ENDC                      *                              EN003 E0658000
         IFP   OVSIX                                                    E0658100
         IFP   *-ENDOV6                                                 E0658200
ENDOV6   EQU   *                                                        E0658300
         ENDC                                                           E0658400
*                                                                       E0658500
* OVERLAY 6                                                             E0658600
*                                                                       E0658700
         ORG   0                                                        E0658800
         ORG   OV6                                                      E0658900
         ENDC                                                           E0659000
         TITLE SVC6 LOADER   MAIN                                       E0659100
         IFP   SVCSIX                                                   E0659200
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0659300
*                                                                       E0659400
*                                                                       E0659500
*                                                                       E0659600
*                                                                       E0659700
LT.PA    EQU   *                                                        E0659800
         IFNZ  EXTMEM                                                EX E0659900
         LH    R3,PARTAB(R13)                                        EX E0660000
         CLH   R3,PARTAB+4(R13)   IS NEXT PARTITION IN DIFFERENT SEGMEX E0660100
         BES   LT.PA1             NO                                 EX E0660200
         LCS   R11,2              SET CTOP TO FFFE                   EX E0660300
         BS    LT.PA2                                                EX E0660400
         ENDC                                                        EX E0660500
LT.PA1   CLH   R11,PARTAB+2+EXTM+EXTM(R13)  CHECK TOP LIMIT          EX E0660600
         BNL   LT.NA              TASK DOES NOT FIT                     E0660700
         LH    R11,PARTAB+2+EXTM+EXTM(R13)  REAL CTOP                EX E0660800
         SIS   R11,2                                                    E0660900
LT.PA2   LHR   R3,R14             SAVE A(TCB) OF LOADING TASK        EX E0661000
LT.CL    EQU   *                                                        E0661100
         IFNZ  EXTMEM                                             EX    E0661200
         EPSR  R15,R15             GET PB PSW                     EX    E0661300
         STH   R15,SAVPBSW         SAVE  IT                       EX    E0661400
         ENDC                                                     EX    E0661500
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0661600
         CLHI  R3,BGTCB            .BG TASK ?                           E0661700
         BNE   LT.GN               NO, GO CHECK FOR GOOD NAME     EN008 E0661800
         LM    R12,BGTCB                                                E0661900
         SH    R15,SVC6.ID+6(R2)                                        E0662000
         SCH   R14,SVC6.ID+4(R2)                                        E0662100
         SCH   R13,SVC6.ID+2(R2)                                        E0662200
         SCH   R12,SVC6.ID(R2)                                          E0662300
*                                                                 EN008 E0662400
         BES   LT.LB               IF OK, GO CHECK FOR LIBRARY    EN008 E0662500
         ELSE                      NO CMDP IN SYSTEM              EN003 E0662600
         BS    LT.GN               GO CHECK FOR GOOD NAME         EN003 E0662700
         ENDC                      *                              EN003 E0662800
LT.NE    EQU   *                   *                              EN008 E0662900
         IFNZ  ROLL                IF ROLL SUPPORT                EN008 E0663000
         BAL   R7,ROLL.IN          ROLL TASK BACK IN              EN008 E0663100
         ENDC                      *                              EN008 E0663200
         LIS   R15,1               ERROR-ILLEGAL NAME SYNTAX      EN008 E0663300
         B     SVC6.ERR            *                              EN008 E0663400
LT.GN    LHI   R15,SVC6.ID(R2)     CHECK FOR GOOD NAME                  E0663500
         SVC   2,LT.PFD                                                 E0663600
         BOS   LT.NE               SYNTAX ERROR                   EN008 E0663700
         BNMS  LT.NE               VOLN PRESENT                   EN008 E0663800
         BNCS  LT.NE               EXTENSION PRESENT              EN008 E0663900
LT.LB    LH    R12,LT.SAV     A(LIBRARY)                                E0664000
         BZ    LT.TC                                              EX    E0664100
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0664200
         THI   R6,TOPT.BGM         .BG TASK ?                     EN003 E0664300
         BNZ   LT.NLC              .BG CANNOT USE RL              EX    E0664400
         ENDC                      *                              EN003 E0664500
         IFNZ  EXTMEM                                             EX    E0664600
         SETM  R12,LT.SAV+4        GET REAL RTL ADDR              EX    E0664700
         EPSR  R14,R14             GET EXT ADDR BITS              EX    E0664800
         LPS   SAVPBSW             SET PSW BACK TO PB             EX    E0664900
         LBR   R14,R14             SET BIT IN LOW PART OF REGISTER      E0665000
         SRLS  R14,4                                              EX    E0665100
         LHR   R12,R12             IF ADDR <8000 THEN  FORCE      EX    E0665200
         BMS   LT.LB1              R14 TO ZERO (LOWER 32KB)       EX    E0665300
         XHR   R14,R14                                            EX    E0665400
LT.LB1   EQU   *                                                  EX    E0665500
         ENDC                                                     EX    E0665600
         BAL   R5,PAR.FND0         FIND PARTITION FOR THIS LIBRARY      E0665700
         BTC   9,LT.NLC            LIBRARY ERROR                  EX    E0665800
LT.TC    LH    R12,LT.SAV+LIB.SCM-LIB.SRL        A(TASK COMM)           E0665900
         BZ    LT.SE                                              EX    E0666000
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0666100
         THI   R6,TOPT.BGM         .BG TASK ?                           E0666200
         BNZS  LT.NLC              .BG CANNOT USE TCOM            EN008 E0666300
         ENDC                                                     EX    E0666400
         IFNZ  EXTMEM                                             EX    E0666500
         SETM  R12,LT.SAV+4        GET REAL TCOM ADDR             EC    E0666600
         EPSR  R14,R14             GET EXT ADDR BITS              EX    E0666700
         LPS   SAVPBSW             RESTORE PSW                    EX    E0666800
         LHR   R12,R12             IF ADDR < 8000 FORCE           EX    E0666900
         BMS   LT.TC1              R14 TO ZERO (LOWER 32KB)       EX    E0667000
         XHR   R14,R14                                            EX    E0667100
LT.TC1   LBR   R14,R14             ISOLATE BITS                   EX    E0667200
         SRLS  R14,4                                              EX    E0667300
         ENDC                                                     EX    E0667400
         BAL   R5,PAR.FND          FIND PARTITION FOR THIS TCOM         E0667500
         BTBS  9,LT.NLC            TCOM ERROR                     EN008 E0667600
         BS    LT.SE               GO LOAD MODULE                 EN008 E0667700
LT.NLC   EQU   *                   *                              EN008 E0667800
         IFNZ  ROLL                IF ROLL SUPPORT                EN008 E0667900
         BAL   R7,ROLL.IN          ROLL TASK BACK IN              EN008 E0668000
         ENDC                      *                              EN008 E0668100
         LHI   R15,66              ERROR-LIBRARY OR TCOM NOT PRES EN008 E0668200
         B     SVC6.ERR            *                              EN008 E0668300
LT.SE    LHR   R14,R8              A(MODULE)                            E0668400
         LB    R13,SVC6.LU(R2)                                          E0668500
         LHI   R12,LT.TSV1                                              E0668600
         STH   R9,LT.SAV2         SAVE UTOP TEMP                     EX E0668700
         LH    R9,LT.SAV+LIB.OBOT-LIB.SRL  GET OBOT                     E0668800
         IFNZ  EXTMEM                                              EX   E0668900
         LPS   TCB.UBEW(R3)        TALK TO PARTOTION               EX   E0669000
         ENDC                                                      EX   E0669100
         BAL   R5,LOAD.MOD         LOAD THIS MODULE                     E0669200
         LHR   R14,R8              GET UBOT                        EX   E0669300
         BAL   R15,CHKSUM          VERIFY GOOD CHECKSUM            EX   E0669400
         IFNZ  EXTMEM                                              EX   E0669500
         LPS   SAVPBSW             TALK    TO PB                   EX   E0669600
         ENDC                                                      EX   E0669700
 IFZ ROLL                                                               E0669800
         LHR   R15,R13                                                  E0669900
 ELSE                                                                   E0670000
 LHR R5,R13                                                             E0670100
 ENDC                                                                   E0670200
         BZS   LT.LOK              NO I/O ERROR                   EN008 E0670300
         IFNZ  ROLL                IF ROLL SUPPORT                EN008 E0670400
         BAL   R7,ROLL.IN          ROLL TASK BACK IN                    E0670500
 LHR R15,R5                                                             E0670600
         ENDC                      *                              EN008 E0670700
         B     LT.IOE              GIVE PROPER I/O ERROR STATUS   EN008 E0670800
LT.LOK   EQU   *                                                   EX   E0670900
*                                                                  EX   E0671000
         AIS   R10,1                                                    E0671100
         BZS   LT.CK               CHECKSUM OK                    EN008 E0671200
         LHI   R15,18              CHECKSUM ERROR                 EN008 E0671300
         B     SVC6.ERR            *                              EN008 E0671400
LT.CK    EQU   *                                                     EX E0671500
         IFNZ  EXTMEM                                                EX E0671600
         LH    R14,TCB.UBEW(R3)   TALK TO UDL                        EX E0671700
         EPSR  R0,R14                                                EX E0671800
         LB    R14,LT.SAV+5        GET USER'S PSW FROM LIB.MAP       EX E0671900
         STB   R14,TCB.EXAD(R3)    PUT IN USER'S TCB                 EX E0672000
         ENDC                                                        EX E0672100
         LM    R14,UDL.ITSW(R8)                                      EX E0672200
         STM   R14,TCB.ITSW(R3)    SAVE IN TCB                          E0672300
         STH   R7,TCB.MPRI(R3)     INITIALIZE MAX AND CURRENT PRI.      E0672400
         IFNZ  EXTMEM                                                EX E0672500
         EPSR  R9,R0              SET TO PB                          EX E0672600
         ENDC                                                           E0672700
         STB   R7,SVC6.RPI(R2)     RETURN NEW PRI IN SVC6 PBLK          E0672800
         LM    R12,SVC6.ID(R2)     INITIALIZE TASKID                    E0672900
         STM   R12,TCB.ID(R3)                                           E0673000
         STH   R8,TCB.UBOT(R3)                                          E0673100
         LHR   R12,R8              SAVE UDL ADDR                  EX    E0673200
         THI   R6,LFLG.OVM         LIB/TCOM BEING LOADED                E0673300
         BNZ   LT.NL               YES THET HAVE NO UDLS          EX    E0673400
         IFNZ  EXTMEM                                                EX E0673500
         EPSR  R0,R9              SET TO UDL                         EX E0673600
         LB    R9,LT.SAV+5         GET USER'S PSW FROM LIB.MAP       EX E0673700
         SRLS  R9,4                                               EX    E0673800
         SIS   R9,7                PSW 7?                         EX    E0673900
         BNES  LT.CK2              NO                             EX    E0674000
         XHI   R12,X'8000'         COMP BIT 0 OF UBOT AND CTOP    EX    E0674100
         XHI   R11,X'8000'         TO MAKE THEM TASK  NOT REAL    EX    E0674200
         BMS   LT.CK2              PARTITION CROSSES 8000?        EX    E0674300
         LCS   R11,2               YES,SET CTOP TO FFFE           EX    E0674400
LT.CK2   EQU   *                                                  EX    E0674500
         ENDC                                                        EX E0674600
         STH   R12,UDL.UBOT(R8)    SET UBOT IN UDL                EX    E0674700
         STH   R11,UDL.CTOP(R8)    CTOP                                 E0674800
         STH   R11,UDL.CBOT(R8)    CBOT = CTOP                          E0674900
         LH    R9,LT.SAV2         GET UTOP                              E0675000
         STH   R9,UDL.UTOP(R8)     UTOP                                 E0675100
         IFNZ  FOREGRND                                                 E0675200
         BAL   R12,PLINK           READJUST PRIORITY TBL FOR SCHEDULING E0675300
         ENDC                                                           E0675400
LT.NL    LIS   R5,2                RESOTRE REGS 5,6,7                   E0675500
*                                                                 EN001 E0675600
         STH   R6,TCB.OPT(R3)      SAVE OPTIONS                   EN001 E0675700
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0675800
         LHI   R6,SVC6.FHW                                              E0675900
         IFNZ  EXTMEM                                                EX E0676000
         EPSR  R7,R0              TALK TO PB                         EX E0676100
         STH   R3,S6.SAV+6         UPDATE TCB POINTER FOR LOADED TASKEX E0676200
         ENDC                                                        EX E0676300
         LH    R7,SVC6.FC1(R2)                                          E0676400
         SLLS  R7,7                                                     E0676500
         LPSW  SVC6.RT                                                  E0676600
         ELSE                                                           E0676700
         XHR   R0,R0               STATUS = 0                           E0676800
         B     SVC6.RST            EXIT                                 E0676900
         ENDC                                                           E0677000
*                                                                       E0677100
LT.PFD   DB    0,16                PACK FILE PBLK                       E0677200
         DC    R15                                                      E0677300
         DC    LT.FD                                                    E0677400
LT.FD    DS    16                                                       E0677500
         ENDC                                                           E0677600
         ENDC                      *                              EN003 E0677700
         IFP   OVSIX                                                    E0677800
         IFP   *-ENDOV6                                                 E0677900
ENDOV6   EQU   *                                                        E0678000
         ENDC                                                           E0678100
*                                                                       E0678200
* NO MORE OVERLAYS FOR THIS AREA                                        E0678300
*                                                                       E0678400
         ORG   2                                                        E0678500
         ORG   ENDOV6                                                   E0678600
* SPECIAL INFORMATION ON OV AREA - RAD OF START OF OVS ON DISC          E0678700
*                                 - NO OF OV CURR IN AREA               E0678800
*                                 - EQUATE OF NO OF SECTS TO HOLD 1 OV  E0678900
*                                                                       E0679000
OV6RAD   DS    2                                                        E0679100
CURR6    DC    0                                                        E0679200
OV6SIZ   EQU   ENDOV6-OV6+255/256                                       E0679300
         ENDC                                                           E0679400
         IFNZ  LOAD                IF IMAGE LOAD SUPPORT          EN003 E0679500
         TITLE SVC6 LOADER ERRORS                                       E0679600
         IFP   SVCSIX                                                   E0679700
LT.IOE   SRLS  R15,8                                                    E0679800
         CLHI  R15,X'81'           ILLEGAL OR UNASSIGNED LU ?           E0679900
         BES   LT.ILU                                                   E0680000
         CLHI  R15,X'C0'           LU ATTRIBUTES ILLEGAL?               E0680100
         BNES  LT.RTE              NO...RETURN SVC1 ERROR.STATUS        E0680200
         LHI   R15,X'41'                                                E0680300
         BS    LT.RTE                                                   E0680400
LT.ILU   LHI   R15,X'11'                                                E0680500
LT.RTE   B     SVC6.ERR            EXIT VIA ERROR ROUTINE               E0680600
*                                                                 EN008 E0680700
*                                                                 EN008 E0680800
LT.NA    LHI   R15,X'4C'           PARTITION DOES NOT EXIST             E0680900
         BS    LT.RTE                                                   E0681000
LT.TSV1  DC    X'5800',0,0,0,Y'0',0                                     E0681100
LT.SAV   DS    LIB-LIB.SRL                                              E0681200
LT.SAV2  DS    2                                                        E0681300
         IFNZ  EXTMEM                                              EX   E0681400
SAVPBSW  DC    0                                                   EX   E0681500
         ENDC                                                      EX   E0681600
         ENDC                                                           E0681700
         TITLE LOAD MODULE                                              E0681800
*###############################################################*       E0681900
*LOAD.MOD    LOAD MODULE ROUTINE - READ CONTIGUOUS & NON-CONTIGUOUS FILEE0682000
* R1=A(TCB) OF LOADING TASK                                             E0682100
* R5=RETURN ADDR                                                        E0682200
* R9=OBOT                                                               E0682300
* R12=A(SVC1 PBLK)                                                      E0682400
* R14=START ADDR OF MODULE                                              E0682500
* R13,R15 USED                                                          E0682600
*###############################################################*       E0682700
LOAD.MOD EQU   *                                                        E0682800
         SIS   R9,1                ADDR OF LAST HW OF MODULE            E0682900
         LHR   R15,R9                                                   E0683000
         AHR   R13,R13             DOUBLE LU #                          E0683100
         AHR   R13,R1              ADD A(TCB)                           E0683200
         LH    R13,TCB.LTAB(R13)   GET A(DCB/FCB)                       E0683300
         CLH   R13,UBOT            FCB ?                                E0683400
         BLS   LOAD.NC             NO...GO READ 256 BYTE BLOCKS         E0683500
         IFNZ  EXTMEM                                                EX E0683600
         LH    R0,FEPS             TALK TO FCB                    EX    E0683700
         EPSR  R4,R0                                              EX    E0683800
         ENDC                                                           E0683900
         LB    R13,FCB.DCOD(R13)   CONTIGUOUS FILE ?                    E0684000
         IFNZ  EXTMEM                                                EX E0684100
         LPSR  R4                  RESTORE PSW                    EX    E0684200
         ENDC                                                           E0684300
         LHR   R13,R13                                                  E0684400
         BZS   LOAD.REC            YES...GO READ UNBROKEN BLOCK         E0684500
LOAD.NC  LHI   R15,255(R14)        NON-CONTIGUOUS FILE                  E0684600
         CLHR  R15,R9              NEAR THE END ?                       E0684700
         BLS   LOAD.REC                                                 E0684800
         LHR   R15,R9              YES...LAST RECORD <= 256 BYTES       E0684900
LOAD.REC STM   R14,SVC1.SAD(R12)   PUT STARTING & ENDING ADDR IN PBLK   E0685000
         SVC   1,0(R12)            READ                                 E0685100
         LH    R13,SVC1.STA(R12)   GET I/O STATUS                       E0685200
         BNZR  R5                  I/O ERROR                            E0685300
         LHI   R14,1(R15)          INITIALIZE START ADDR FOR NEXT READ  E0685400
         CLHR  R15,R9              MORE RECORDS ?                       E0685500
         BLS   LOAD.NC             YES, GO READ NEXT RECORD       EN008 E0685600
         BR    R5                  NO...RETURN                          E0685700
*############################################################*          E0685800
* BUILD CHECKSUM, BEGINNING WITH C(R10) AND EXCLUSIVE OR ALL            E0685900
* HALFWORDS FROM R14 UP TO R9                                           E0686000
* R9=ENDING ADDR                                                        E0686100
* R10=CHECKSUM                                                          E0686200
* R14=BEGINNING ADDR                                                    E0686300
* R15=RETURN                                                            E0686400
*############################################################*          E0686500
CHKSUM   EQU   *                                                        E0686600
         XH    R10,0(R14)                                               E0686700
         AIS   R14,2               BUMP ADDR TO NEXT HW                 E0686800
         CLHR  R14,R9              END ?                                E0686900
         BLS   CHKSUM              NO, LOOP                       EN008 E0687000
         BR    R15                                                      E0687100
         TITLE PARTITION                                                E0687200
*#########################################################*             E0687300
* PAR.FND  -  SUBROUTINE TO FIND PARTITION FOR A TASK                   E0687400
*        R12=A(TASK)                                                    E0687500
*        R13 USED AND RETURNED WITH PARTITION INDEX                     E0687600
*        R14=A(TCB) IF PARTITION FOUND                                  E0687700
*        CC=0  IF PARTITION FOUND, DORMANT AND NOT IN USE               E0687800
*          =1  IF PARTITION NOT FOUND                                   E0687900
*          = 2  IF PARTITION FOUND, BUT BEING USED                      E0688000
*#########################################################*             E0688100
PAR.FND0 EQU   *                                                        E0688200
         LCS   R13,2+EXTM         ENTRY PT FOR .BG PARTITION INCLUSIVEX E0688300
         BS    LT.NP                                                    E0688400
PAR.FND  EQU   *                                                        E0688500
         XHR   R13,R13             INITIALIZE INDEX                     E0688600
LT.NP    AIS   R13,2+EXTM         INCREMENT INDEX PNTR               EX E0688700
EX       EQU   EXTMEM+1                                           EX    E0688800
         CLHI  R13,FOREGRND+1*2*EX MORE PARTITIONS?               EX    E0688900
         BNL   PAR.ERR2           CC=1  PARTITION NOT FOUND             E0689000
*                                                                 EN008 E0689100
         IFZ   EXTMEM                                                EX E0689200
         LM    R14,PARTAB(R13)                                          E0689300
         CLHR  R12,R14             A(TASK)=A(PARTITION) ?         EN008 E0689400
         BNES  LT.NP               NO, TRY NEXT                   EN008 E0689500
         SHR   R15,R14            NON-ZERO SIZED PARTITION ?            E0689600
         BZS   LT.NP     NO...GET NEXT PARTITION                        E0689700
         ELSE                                                        EX E0689800
         CLH   R14,PARTAB(R13)    A(TASK) =(PARTITION)               EX E0689900
         BNES  LT.NP              NO                                 EX E0690000
         CLH   R12,PARTAB+2(R13)                                     EX E0690100
         BNES  LT.NP              NO                                 EX E0690200
         CLH   R14,PARTAB+4(R13)  YES, THEN IS IT ZERO SIZED PART?   EX E0690300
         BNES  PAR.2              NO                                 EX E0690400
         CLH   R12,PARTAB+6(R13)                                     EX E0690500
         BE    LT.NP              YES                                EX E0690600
PAR.2    SRLS  R13,1              SET INDEX FOR TCBTAB               EX E0690700
         ENDC                                                        EX E0690800
         LH    R14,TCBTAB+4(R13)   PARTITION FOUND - GET TCB ADDR       E0690900
   IFNZ  EXTMEM                                                         E0691000
         AHR   R13,R13             RESET INDEX TO PARTAB             EX E0691100
   ENDC                                                                 E0691200
         LH    R15,TCB.ID(R14)                                          E0691300
         BR    R5                                                       E0691400
PAR.ERR2 LCS   R15,1                                                    E0691500
         BR    R5                                                       E0691600
         ENDC                      *                              EN003 E0691700
         ENDC                                                           E0691800
         ENDC                                                           E0691900
         TITLE CLOCK HANDLER                                            E0692000
         IFNZ  CLOCK                                                    E0692100
*                                                                       E0692200
*##########################################################*            E0692300
* CLKISR-CLOCK INTERRUPT SERVICE ROUTINE                                E0692400
* USES AC LINE FREQUENCY DERIVED CLOCK                                  E0692500
*                                                                       E0692600
* EXECUTES CLOCK UPDATE ROUTINE VIA                                     E0692700
* QUEUE TERMINATION EVERY SECOND                                        E0692800
*                                                                       E0692900
* EMPLOYS IMMEDIATE MODE OF INTERRUPT SERVICE                           E0693000
*##########################################################*            E0693100
*                                                                       E0693200
CLOCKISR DS    4                   OLD PSW                              E0693300
         DC    ISSTAT    NEW PSW STATUS                                 E0693400
         STH   R9,IORSAV                                                E0693500
         LH    R9,CLKCNT          FETCH COUNTER                         E0693600
         SIS   R9,1               DECREMENT, SEC. UP?                   E0693700
 STH R9,CLKCNT                                                          E0693800
         BNMS  CLKRTN              NO, RETURN                           E0693900
FREQMD   EQU *+2    MODIFIED INSTR FOR 5/16 CLOCK                       E0694000
         LHI   R9,FREQ*2-1         RESET COUNTER                        E0694100
         STH   R9,CLKCNT                                                E0694200
         LHI   R9,CCWCLK-8        QUEUE SERVICE ADRS. FOR               E0694300
         ATL   R9,LIOTRM          QUEUE TERMINATION                     E0694400
CLKRTN   LH    R9,IORSAV                                                E0694500
         LPSW  CLOCKISR            RETURN                               E0694600
*                                                                       E0694700
* QUEUE TERMINATION IS NOW ENABLED WHICH WILL                           E0694800
* TRANSFER (VIA IOSET) TO CLKUPD SUBROUTINE                             E0694900
*                                                                       E0695000
         ENDC                                                           E0695100
         TITLE TIMER HANDLER                                            E0695200
         IFNZ  PCLOCK                                                   E0695300
*                                                                       E0695400
*##########################################################*            E0695500
* TIMER INTERRUPT SERVICE ROUTINE                                       E0695600
*                                                                       E0695700
* ASSUMES PRECISION INTERVAL CLOCK                                      E0695800
*                                                                       E0695900
*##########################################################*            E0696000
*                                                                       E0696100
*                                                                       E0696200
TIMER    DS    4                                                        E0696300
         DC    ISSTAT    NEW PSW STATUS                                 E0696400
         STH   R8,IORSAV           SAVE REGISTER                        E0696500
         LHI   R8,TIMATL-8         DUMMY DCB ADDR                       E0696600
         ATL   R8,LIOTRM           TERMINATION QUEUE SERVICE            E0696700
         LH    R8,IORSAV                                                E0696800
         LPSW  TIMER                                                    E0696900
*                                                                       E0697000
TIMATL   DC    TIMTRM-DCB.TERM     A(PIC TERMINATION ROUTINE POINTER)   E0697100
TIMTRM   DC    TIMUPD              A(PIC TERMINATION ROUTINE)           E0697200
         TITLE TIMUPD              TIMER UPDATE ROUTINE                 E0697300
*#####################################################*                 E0697400
* TIMUPD    TIMER UPDATE ROUTINE                                        E0697500
*   ENTERED VIA QUEUE TERMINATION                                       E0697600
*   PROVIDES TIMING FOR TASKS VIA SVC2/23 AND SVC6                      E0697700
*   TIME WAIT AND ADD TO QUEUE SUPPORTED                                E0697800
*#####################################################*                 E0697900
*                                                                       E0698000
*                                                                       E0698100
TIMUPD   EQU   *                                                        E0698200
         IFP   INTERVAL-15                                              E0698300
         LHI   R6,-INTERVAL        MINUS TIMER INTERVAL IN MS           E0698400
         ELSE                                                           E0698500
         LCS   R6,INTERVAL         MINUS TIMER INTERVAL IN MS           E0698600
         ENDC                                                           E0698700
         LCS   R5,1                                                     E0698800
         LCS   R2,1                                                     E0698900
TIM.CHK  AIS   R2,1               BUMP TS TABLE PNTR                    E0699000
TIM.MC   LB    R14,TIMTSV(R2)     GET TABLE ENTRY                       E0699100
         LHR   R15,R14            = 0?                                  E0699200
         BZ    IOTERM             YES...END                             E0699300
         NHI   R15,1               GET LOW ORDER BIT                    E0699400
         NHI   R14,X'FE'           REMOVE LOW ORDR BIT                  E0699500
         LH    R13,TCBTAB(R14)    NO...GET TASK'S A(TCB)                E0699600
         SLLS  R15,2              MULTIPLY LOW ORDER BIT BY 4           E0699700
         AHR   R13,R15            ADD TO A(TCB)                         E0699800
         AHM   R6,TCB.TVAL+2(R13) ADD -INTERVAL TO LOWER HW             E0699900
         BTC   14,TIM.CHK         CARRY ?                               E0700000
         AHM   R5,TCB.TVAL(R13)   SUBTRACT CARRY                        E0700100
         BNM   TIM.CHK                                                  E0700200
*                                 TIMEOUT                               E0700300
         LHR   R15,R15             TIME WAIT OR QUEUE WAIT ?            E0700400
         BNZS  TIM.Q                                                    E0700500
         LH    R4,TCB.STAT(R13)   GET TASK'S STATUS                     E0700600
         NHI   R4,-1-TSTT.TIM   RESET TIME WAIT                         E0700700
         STH   R4,TCB.STAT(R13)   SAVE IN TCB                           E0700800
         BS    TIM.UTB                                                  E0700900
TIM.Q    LIS R14,2                INITIALIZE FOR ADD TO TASK QUE ROUTN  E0701000
         SIS   R13,4               A(TCB)                               E0701100
         LH    R15,TCB.ADQP(R13)  PARAMETER TO ADD TO TASK QUEUE        E0701200
         BAL R8,ADTSKQ            ADD TO TASK QUEUE                     E0701300
TIM.UTB  LHR   R4,R2              MOVE REMAINING ITEM UP THE TABLE      E0701400
         BAL   R14,TIMCAN.2        RMVE ENTRY FROM TIMTSV         EN007 E0701500
         LHR   R4,R4               MORE ENTRIES ON QUEUE ?        EN007 E0701600
         BNZ   TIM.MC              YES                                  E0701700
         LB    R7,TIMERD           NO...TURN OFF PIC                    E0701800
         OC    R7,DISARM                                                E0701900
         B     IOTERM                                                   E0702000
TIMTSV   EQU   *                  TIME SERVICE TABLE                    E0702100
TIMT12   EQU   TIMTSV                                                   E0702200
         DO    FOREGRND+2*2                                             E0702300
         DB    0                                                        E0702400
         TITLE TIMCAN                                             EN007 E0702500
*######################################################           EN007 E0702600
*  TIMCAN SCANS TIMER SERVICE TABLE FOR SPECIFIED ENTRY           EN007 E0702700
*  UPON ENTRY                                                     EN007 E0702800
*    R3  = TIMTSV ENTRY BEING SEARCHED FOR                        EN007 E0702900
*    R14 = RETURN ADDR                                            EN007 E0703000
*  REGS USED                                                      EN007 E0703100
*    R4  = INDEX FOR TBL                                          EN007 E0703200
*    R1  = TEMP                                                   EN007 E0703300
*  WHEN MATCH IS FOUND TIMTSV ENTRY IS DELETED                    EN007 E0703400
*  AND CC<>0. CC=0 MEANS NO MATCH                                 EN007 E0703500
*######################################################           EN007 E0703600
TIMCAN   EQU   *                   *                              EN007 E0703700
TIMCAN.0 LCS   R4,1                INIT PTR                       EN007 E0703800
TIMCAN.1 AIS   R4,1                INCR PTR                       EN007 E0703900
         LB    R1,TIMTSV(R4)       GET ENTRY                      EN007 E0704000
         LHR   R1,R1               0 ENTRY MEANS END              EN007 E0704100
         BZR   R14                 END OF TABLE                   EN007 E0704200
         CLHR  R1,R3               ENTRY FOUND?                   EN007 E0704300
         BNES  TIMCAN.1            NO MATCH                       EN007 E0704400
TIMCAN.2 EQU   *                   FOUND MATCH; DELETE ENTRY      EN007 E0704500
         AIS   R4,1                INCR PTR                       EN007 E0704600
         LB    R1,TIMTSV(R4)       GET ENTRY                      EN007 E0704700
         STB   R1,TIMTSV-1(R4)     MOVE UP ONE BYTE               EN007 E0704800
         LHR   R1,R1               END OF TBL?                    EN007 E0704900
         BNZS  TIMCAN.2            NO - KEEP MOVING               EN007 E0705000
         SIS   R4,1                POINT TO THE ZERO              EN007 E0705100
         LHR   R14,R14             SET CC<>0                      EN007 E0705200
         BR    R14                 END OF TBL; RETURN             EN007 E0705300
         ENDC                      *                              EN007 E0705400
         TITLE CLOCK UPDATE ROUTINE                                     E0705500
         IFNZ  CLOCK                                                    E0705600
*                                                                       E0705700
*##########################################################*            E0705800
* CLKUPD-CLOCK UPDATE ROUTINE                                           E0705900
*                                                                       E0706000
*                                                                       E0706100
* ENTERED EVERY SECOND FROM CLOCK VIA QUEUE SERVICE                     E0706200
*                                                                       E0706300
* SYSTEM TIME KEPT IN                                                   E0706400
* HOURS:MINUTES:SECONDS IN ASCII DECIMAL DIGITS                         E0706500
*                                                                       E0706600
* KEEPS 24 HOUR CLOCK AND UPDATES DAY                                   E0706700
* ALSO PROVIDES TIME OUT SERVICE FOR ALL DEVICES                        E0706800
*##########################################################*            E0706900
CLKUPD   EQU   *                                                        E0707000
*                                                                       E0707100
         LM    R3,CBUF             INITIALIZE REGISTERS                 E0707200
         AIS   R13,1               BUMP BINARY COUNT                    E0707300
         ACH   R12,ZERO            ADD CARRY                            E0707400
         LHR   R12,R12             CHECK UPPER HALF                     E0707500
         BZS   CLK.SEC             NO CARRY ...GO UPDATE CBUF           E0707600
         CLHI  R13,X'5180'         24 HRS ?                             E0707700
         BE    MIDNITE             YES ...GO SET DAY                    E0707800
CLK.SEC  AIS   R6,1                ADD THIS SEC                         E0707900
         CLB   R6,TEN              = X'3A' ?                            E0708000
         BNES  CLK.RTN3            NO ...GO CHECK DEVICE TIMEOUT        E0708100
         SIS   R6,10               SET LOW DIGIT TO X'30'               E0708200
         AHI   R6,X'100'           BUMP HIGH DIGIT                      E0708300
         CLHI  R6,C'60'            60 SEC ?                             E0708400
         BNES  CLK.RTN2            NO ...GO CHECK DEVICE TIMEOUT        E0708500
         LHR   R6,R14              YES ...INITIALIZE TO X'3030'         E0708600
         AHI   R5,X'100'           ADD 1 TO MINUTES                     E0708700
         CLHI  R5,C'::'            LOW DIGIT = X'3A' ?                  E0708800
CLK.RTN3 BNES  CLK.RTN2  NO ...GO CHECK DEVICE TIMEOUT                  E0708900
         LHI   R5,C'0:'            YES ...SET TO X'30'                  E0709000
         AIS   R4,1                BUMP HIGH DIGIT                      E0709100
         CLHI  R4,C':6'            60 MINUTES ?                         E0709200
CLK.RTN2 BNES  CLK.RTN             NO ...GO CHECK DEVICE TIMEOUT        E0709300
         LHI   R4,C':0'            SET TO X'30'                         E0709400
         AIS   R3,1                BUMP HR                              E0709500
         CLB   R3,TEN              LOW DIGIT = X'3A' ?                  E0709600
         BNES  CLK.RTN             NO ...GO CHECK DEVICE TIMEOUT        E0709700
         SIS   R3,10               SET TO X'30'                         E0709800
         AHI   R3,X'100'           BUMP HIGH DIGIT                      E0709900
CLK.RTN  STM   R3,CBUF             SAVE UPDATED TIME AND DATE           E0710000
*                                                                       E0710100
         XHR   R6,R6                                                    E0710200
SERCH    LH    R8,DMT(R6)          GET ENTRY FROM DEVICE MNEMONIC TBL   E0710300
         BZ    IOTERM                                                   E0710400
         LH    R8,DMT+DMT.DCB(R6)  GET DCB ADDRESS FROM DMT             E0710500
         THI   R8,1                ODD ADDR ?                           E0710600
         BNZS  EB                  YES...DO NOT PROCESS DOUBLE DMT ENTRYE0710700
         LH    R4,DCB.TOUT(R8)     GET TIMEOUT COUNT                    E0710800
         BZS   EB                  IGNORE IF ZERO                       E0710900
         SIS   R4,1                                                     E0711000
         STH   R4,DCB.TOUT(R8)     DECREMENT COUNT                      E0711100
         BNZS  EB                  IF TOC NOT 0: IGNORE IT              E0711200
         LB    R7,DCB.DN(R8)       PICK UP DEVICE #                     E0711300
         SINT  0(R7)               IF 0; ABORT DRIVER                   E0711400
EB       AIS   R6,DMT.                                                  E0711500
         B     SERCH                                                    E0711600
MIDNITE  EQU   *                   ENTERED WHEN 24 HOURS HAS ELAPSED    E0711700
         XHR   R12,R12             RESET # SECONDS PAST MIDNITE         E0711800
         XHR   R13,R13                                                  E0711900
         LHR   R6,R14              INITIALIZE TIME TO 00:00:00          E0712000
         LHI   R5,C'0:'                                                 E0712100
         LHI   R4,C':0'                                                 E0712200
         LHR   R3,R14                                                   E0712300
         IFZ   DATE                MM/DD/YY                             E0712400
         AHI   R10,X'100'          BUMP DAY                             E0712500
         CLHR  R10,R15             = X'3A' ?                            E0712600
         BNES  CLK.RTN1  NO ...GO CHECK DEVICE TIMEOUT                  E0712700
         LHI   R10,C'0/'           RESET LOW DIGIT                      E0712800
         AIS   R9,1                INCREMENT HIGH DIGIT                 E0712900
         ELSE                                                           E0713000
         AIS   R8,1                BUMP LOW DIGIT                       E0713100
         CLB   R8,TEN              = X'3A' ?                            E0713200
         BNES  CLK.RTN1            NO ...GO CHECK DEVICE TIMEOUT        E0713300
         SIS   R8,10               RESET LOW DIGIT                      E0713400
         AHI   R8,X'100'           BUMP HIGH DIGIT                      E0713500
         ENDC                                                           E0713600
CLK.RTN1 B     CLK.RTN                                                  E0713700
CBUF     EQU   *                                                        E0713800
*                                                                 EN008 E0713900
CBUF12   EQU   CBUF                                                     E0714000
         DC    X'3030',X'3A30',X'303A',X'3030',X'2020'                  E0714100
CALDAT   EQU   *                                                        E0714200
CALD12   EQU   CALDAT                                                   E0714300
         DC    X'3030',X'2F30',X'302F',X'3030'                          E0714400
SECPM    DC    Y'0',X'3030'                                             E0714500
SECP12   EQU   SECPM                                                    E0714600
TEN      DC    C':/'                                                    E0714700
         ENDC                                                           E0714800
         TITLE ADTSKQ    ADD PARAMETER TO TASK QUEUE                    E0714900
*################################################################*      E0715000
* ROUTINE TO ADD PARAMETER TO TASK QUEUE.  TRAP IS TAKEN IF TASK        E0715100
*      QUEUE ENABLED                                                    E0715200
*                                                                       E0715300
* R8=RETURN ADDR                                                        E0715400
* R13=A(TCB)                                                            E0715500
* R14=REASON CODE                                                       E0715600
* R15=PARAMETER                                                         E0715700
* IF BIT 0 OF REASON CODE IS SET, PARAMETER IS ADDED TO TOP OF LIST     E0715800
*################################################################*      E0715900
ADTSKQ   EQU   *                                                        E0716000
         LHR   R9,R14                                                   E0716100
         IFNZ  EXTMEM                                                EX E0716200
         EPSR  R0,R0              SAVE PSW                           EX E0716300
         ENDC                                                        EX E0716400
         LBR   R14,R9                                                   E0716500
         LHI   R12,TTSW.DIM        SET UP MASK FOR TSW ENABLE           E0716600
         SRHL  R12,0(R14)                                               E0716700
         NH    R12,TCB.CTSW(R13)   IS THE ENABLE BIT SET ?              E0716800
         BZ    ADDT.NEN            NOT ENABLED FOR THIS REASON CODE     E0716900
         LH    R11,TCB.UBOT(R13)   GET A(UDL)                           E0717000
         IFNZ  EXTMEM                                                EX E0717100
         LPS   TCB.UBSW(R13)      TALK TO UDL                        EX E0717200
         ENDC                                                        EX E0717300
         LH    R14,UDL.TSKQ(R11)   GET A(TASK QUEUE)                    E0717400
         IFNZ  JOURNAL0                                                 E0717500
         LHR   R12,R8              SAVE RET ADDR.                       E0717600
JRNL20   BAL   R8,JOURNAL         R12=RET ADDR, R13=A(TCB)              E0717700
         DC    X'0020'            R14=A(TASK QUEUE),R15=PARAMETER       E0717800
         LHR   R8,R12              RESTORE RET ADDR.                    E0717900
*                                                                 EN012 E0718000
         LHR   R14,R14                                                  E0718100
         ENDC                                                           E0718200
         BZ    ADDT.AD0            =0                                   E0718300
         IFNZ  EXTMEM                                                EX E0718400
         LB    R12,TCB.EXAD(R13)    GET EXTENDED ADDRESS BITS         EXE0718500
         SETMR R14,R12             MAP ADDR OF TASK QUEUE            EX E0718600
         ENDC                      *                                 EX E0718700
         LHR   R10,R15             MOVE PARAMETER                       E0718800
         IFNZ  CMPROC*ST           IF CMDP IN SYSTEM              EN003 E0718900
         LHR   R11,R8              SAVE LINK                      EN012 E0719000
         LHR   R8,R13              SAVE A(TCB)                    EN012 E0719100
         LHR   R13,R3              SAVE R3                        EN012 E0719200
         LHI   R15,ADDT.QIN        ERROR EXIT                     EN012 E0719300
         BAL   R12,ADD.BC          CHECK A(QUEUE) IN R14          EN012 E0719400
         XHR   R15,R15             NORMAL RETURN, RESET FLAG      EN012 E0719500
ADDT.QIN LHR   R3,R13              RESTORE R3                     EN012 E0719600
         LHR   R13,R8              RESTORE A(TCB)                 EN012 E0719700
         LHR   R8,R11              RESTORE LINK                   EN012 E0719800
         LH    R11,TCB.UBOT(R13)   RESTORE A(UDL)                 EN012 E0719900
         LHR   R15,R15             ERROR EXIT ?                   EN012 E0720000
         BNZ   ADDT.QFL           YES GET OUT WITH CC<>0             EX E0720100
         ELSE                      NO CMDP IN SYSTEM              EN003 E0720200
         LH    R11,TCB.UBOT(R13)   RESTORE A(UDL)                 EN003 E0720300
         ENDC                      *                              EN003 E0720400
         LHR   R9,R9                                                    E0720500
         BNMS  ADDT.BT             IF NOT MINUS, ADD TO BOTTOM    EN008 E0720600
         ATL   R10,0(R14)          ADD PARAMETER TO TOP OF QUEUE  EN012 E0720700
         BS    ADDT.CQ             GO CHECK FOR OVERFLOW          EN008 E0720800
ADDT.BT  ABL   R10,0(R14)          ADD PARAMETER TO BOT OF QUEUE  EN012 E0720900
ADDT.CQ  BO    ADDT.QFL            QUEUE FULL...RETURN ERROR CONDITION  E0721000
         IFNZ  EXTMEM                                                EX E0721100
         LPSR  R0                 RESTORE PSW OF ENTRY               EX E0721200
         ENDC                                                        EX E0721300
         LHI   R12,TTSW.QSM        TASK QUEUE TRAP ENABLED ?            E0721400
         NH    R12,TCB.CTSW(R13)                                        E0721500
         BZR   R8                  ...NO,TRAP NOT TAKEN                 E0721600
         IFNZ  SVCTWO!CLK+SVCSIX+SVCSEVEN+BISYNC  IF SVCEXEC/BISY EN003 E0721700
         LH    R12,TCB.FLGS(R13)   IS TASK IN SYSTEM LEVEL ?      EN001 E0721800
         IFNZ  BISYNC                                                   E0721900
         THI   R12,TFLG.SLM+TFLG.BIM                                    E0722000
         ELSE                                                           E0722100
         THI   R12,TFLG.SLM                                             E0722200
         ENDC                                                           E0722300
         BZS   ADDTCS                                                   E0722400
         OHI   R12,TFLG.TPM        TES...TASK TRAP MUST BE PENDING      E0722500
         STH   R12,TCB.FLGS(R13)   UNTIL OUT OF SYSTEM CODE       EN001 E0722600
         CLHR  R8,R8               SET CC=0                             E0722700
         BR    R8                  EXIT                                 E0722800
         ENDC                      *                              EN003 E0722900
ADDTCS   LH    R12,TCB.STAT(R13)   GET TASK STATUS                      E0723000
         NHI   R12,X'FFFF'-TSTT.TRM                                     E0723100
         STH   R12,TCB.STAT(R13)   TAKE TASK OUT OF TRAP WAIT           E0723200
         LHI   R12,UDL.TSKO(R11)   A(OLD PSW SAVE AREA)                 E0723300
         IFNZ  EXTMEM                                                EX E0723400
         LPS   TCB.UBSW(R13)      TALK TO UDL                        EX E0723500
         ENDC                                                        EX E0723600
         BAL   R10,TSW.SWP         SWAP TSW'S                           E0723700
         IFNZ  EXTMEM                                                EX E0723800
         EPSR  R10,R10            GET CC                             EX E0723900
         EPSR  R9,R0              RESTORE PSW OF ENTRY               EX E0724000
         NHI   R10,X'F'           SET CC 0 OR NON 0                     E0724100
         ENDC                                                        EX E0724200
         BR    R8                                                       E0724300
ADDT.NEN EQU   *                   ITEM NOT ENABLED               EN008 E0724400
ADDT.AD0 EQU   *                   TASK HAS NO QUEUE              EN008 E0724500
ADDT.QFL EQU   *                   QUEUE FULL                     EN008 E0724600
         IFNZ  EXTMEM             RESTORE ENTRY PSW                  EX E0724700
         LPSR  R0                                                    EX E0724800
         ENDC                                                        EX E0724900
         LHR   R8,R8               CC<>0                          EN008 E0725000
         BR    R8                  RETURN                         EN008 E0725100
         TITLE TSW.SWAP MODULE                                          E0725200
*############################################################*          E0725300
*TSW.SWP       MODULE TO SWAP TSW'S                                     E0725400
* R10=RETURN ADDR                                                       E0725500
* R11 USED                                                              E0725600
* R12=A(UDL OLD PSW)                                                    E0725700
* R13=A(TCB)                                                            E0725800
* R14,R15 USED                                                          E0725900
*############################################################*          E0726000
TSW.SWP  EQU   *                                                        E0726100
         LM    R14,TCB.CPSW+2(R13) GET CURRENT TSW                      E0726200
         NHI   R15,PSWCCCL         CLEAR OUT OLD CC                     E0726300
         LB    R11,TCB.CPSW+1(R13) GET CURRENT CC                       E0726400
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0726500
         NHI   R11,PSWCCC+PSWCCV+PSWCCG+PSWCCL ISOLATE               EX E0726600
         ENDC                      *                                 EX E0726700
         OHR   R15,R11             PUT CC IN BITS 12-15 OF TSW          E0726800
         STH   R14,TSW.LOC(R12)    SAVE CURRENT LOC                     E0726900
         STH   R15,0(R12)          SAVE CURRENT TSW                     E0727000
         LM    R14,4(R12)          GET NEW TSW                          E0727100
         STH   R14,TCB.CTSW(R13)   SAVE NEW TSW                         E0727200
         THI   R14,TTSW.WTM        TRAP WAIT SET ?                      E0727300
         BNZR  R10                 YES...RETURN-DO NOT SET UP NEW LOC   E0727400
         LHR   R15,R15                                                  E0727500
         BZS   TSW.ZLOC            NEW LOC ZERO ?                       E0727600
         STH   R15,TCB.CPSW+2(R13) SET NEW LOC                          E0727700
TSW.ZLOC EQU   *                   *                                 EX E0727800
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0727900
         LB    R15,TCB.CPSW+1(R13) GET EXAD BITS AND CC              EX E0728000
         NHI   R15,X'F0'           ISOLATE EXAD                      EX E0728100
         ENDC                      *                                 EX E0728200
         NHI   R14,PSWCCC+PSWCCV+PSWCCG+PSWCCL ISOLATE NEW CC        EX E0728300
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0728400
         OHR   R14,R15             INSERT PSW EXAD BITS              EX E0728500
         ENDC                      *                                 EX E0728600
         STB   R14,TCB.CPSW+1(R13) SET NEW CC                           E0728700
         XHR   R11,R11             SET GOOD RETURN CODE,  CC=0          E0728800
         BR    R10                                                      E0728900
         IFNZ  1-CMPROC!FOREGRND   IF NO CMDP OR FGR PARTITIONS   EN003 E0729000
         TITLE LOCATE TASK                                              E0729100
*                                                                       E0729200
* GIVEN THE TASKID, THIS ROUTINE FINDS                                  E0729300
*        A TASKS TCB                                                    E0729400
*                                                                       E0729500
*        ENTER WITH:                                                    E0729600
*        R7=A(TASKID)                                                   E0729700
*        R8=LINK                                                        E0729800
*                                                                       E0729900
* RETURNS WITH:                                                         E0730000
*        CC=0=FOUND,CC<>0=NOT FOUND                                     E0730100
*        R11=A(TCB)                                                     E0730200
*        R10=TCB POINTER                                                E0730300
*                                                                       E0730400
LOCT     EQU   *                                                        E0730500
LOCT04   EQU   LOCT                                                     E0730600
LOCT11   EQU   LOCT                                                     E0730700
         LIS   R10,6                                                    E0730800
LOCT1    EQU   *                                                        E0730900
         LH    R11,TCBTAB(R10)                                          E0731000
         LM    R12,TCB.ID(R11)                                          E0731100
         SH    R15,6(R7)      DO                                        E0731200
         SCH   R14,4(R7)      NAMES                                     E0731300
         SCH   R13,2(R7)      MATCH                                     E0731400
         SCH   R12,0(R7)      ?                                         E0731500
         BER   R8                                                       E0731600
         AIS   R10,2               BUMP TCB INDEX                       E0731700
         CHI   R10,TTAB.END-2      DONE ?                               E0731800
         BNP   LOCT1               NO, LOOP                             E0731900
         BR    R8              YES, RETURN CC<>0                        E0732000
         ENDC                                                           E0732100
         TITLE ROLL.IN                                                  E0732200
         IFNZ  ROLL                                                     E0732300
*###########################################################*           E0732400
*ROLL IN MODULE TO DETERMINE IF ROLL IN IS REQUIRED, AND IF SO ADD      E0732500
*        ROLL ITEM TO THE COMMAND PROCESSOR'S QUEUE                     E0732600
*CALLED BY SVC3                                                         E0732700
*          SVC6 LOADER WHEN ERROR OCCURED AFTER ROLL OUT                E0732800
* R3=A(TCB)                                                             E0732900
* R7=RETURN ADDR                                                        E0733000
* R8-R15 USED                                                           E0733100
*###########################################################*           E0733200
ROLL.IN  EQU   *                                                        E0733300
         IFNZ  EXTMEM                                                EX E0733400
         EPSR  R5,R5                                                 EX E0733500
         NHI   R5,X'7CFF'         CHANGE CURRENT PSW TO SV STATE     EX E0733600
         ELSE                                                        EX E0733700
         LHI   R5,SUSTAT           CHANGE TO SUPERVISOR STATE           E0733800
         ENDC                                                        EX E0733900
         EPSR  R4,R5                                                    E0734000
         LHR   R6,R15                                                   E0734100
         LB    R14,TCB.PNT(R3)     GET TCB PNTR                         E0734200
         IFNZ  EXTMEM                                                EX E0734300
         SIS   R14,4                                                 EX E0734400
         AHR   R14,R14             INDEX TO EXTENDED PARTAB          EX E0734500
         ENDC                                                        EX E0734600
         LH    R15,PARTAB-4+EXTM+EXTM+EXTM(R14) GET PART ADDR     EX    E0734700
         SRLS  R15,1               IS BIT 15 SET ?                      E0734800
         BNCS  ROLL.RT             NO, RETURN                           E0734900
         LHI   R15,CROLL           PUT ROLL ITEM ON CMP QUEUE           E0735000
         LIS   R14,1               REASON CODE                          E0735100
         LH    R13,TCBTAB+2        A(CMD PROC TCB)                      E0735200
         BAL   R8,ADTSKQ           ADD TO TASK QUEUE                    E0735300
         LHI   R13,TSTT.RWM                                             E0735400
         STH   R13,TCB.STAT(R3)    SET TASK STATUS TO ROLL WAIT         E0735500
ROLL.RT  LHR   R15,R6                                                   E0735600
         BR    R7                                                       E0735700
         ENDC                                                           E0735800
         TITLE UNPACK SUBROUTINE                                        E0735900
 IFNZ    CMPROC+SVCTWO             IF CMDP/SVCTWO IN SYSTEM       EN003 E0736000
.0 EQU .A4+.A5+.A6+.A7+.A8+.A9+.AA+.AB+.AC+.AD+.AE+.AF                  E0736100
.0 EQU .0+.B0+.B1+.B2+.B3+.B4+.B5                                       E0736200
         IFZ   .0                                                       E0736300
RORG     EQU   *                                                        E0736400
         ORG   ISPTAB+X'A4'+X'A4'                                       E0736500
         ENDC                                                           E0736600
*##########################################################*            E0736700
* UNPK SUBROUTINE                                                       E0736800
* CONVERT 4 HEX DIGITS TO ASCII                                         E0736900
*                                                                       E0737000
* R12 = RETURN ADDR                                                     E0737100
*R13=DESTINATION ADDR              R11,R14 USED                         E0737200
*R0,R1= NUMBER TO BE CONVERTED                                       EX E0737300
*                                                                       E0737400
*##########################################################*            E0737500
UNPK     EQU   *                                                        E0737600
         LIS   R14,12              DEFAULT 4 CHAR                       E0737700
UNPK1    EQU   *                   ENTRY POINT FOR < 4 CHAR             E0737800
         LHR   R10,R0                                                EX E0737900
         LHR   R11,R1                                                EX E0738000
         SRL   R10,0(R14)         SHIFT TO CHARACTER POSITION        EX E0738100
         NHI   R11,15              ONLY THIS CHAR                       E0738200
         SIS   R11,10              > 10 ?                               E0738300
         BMS   UNPK2                                                    E0738400
         AIS   R11,7               YES...ADD TO A LEVEL                 E0738500
UNPK2    EQU   *                                                        E0738600
         AHI   R11,X'3A'           ASCII MASK                           E0738700
         STB   R11,0(R13)          STORE IN DESTINATION                 E0738800
         AIS   R13,1               BUMP DEST ADDR                       E0738900
         SIS   R14,4               DECREMENT SHIFT INDEX                E0739000
         BNMS  UNPK1                                                    E0739100
         BR    R12                 FINISHED                             E0739200
         IFZ   .0                                                       E0739300
         ORG   RORG                                                     E0739400
         ENDC                                                           E0739500
         ENDC                      *                              EN003 E0739600
         IFNZ  FOREGRND                                                 E0739700
         TITLE PRIORITY TABLE BUILDER                                   E0739800
*                                                                       E0739900
*        PLINK - BUILD PRITAB IN PRIORITY ORDER                         E0740000
*        ZERO = HIGHEST PRIORITY                                        E0740100
*                                                                       E0740200
*        CALLED BY INITIALIZATION                                       E0740300
*        SVC 6 PRIORITY FUNCTION                                        E0740400
*        AND BY THE SET PRIORITY COMMAND                                E0740500
*        R9-R11,R13-R15=WORK                                            E0740600
*        R12=LINK                                                       E0740700
*        INPUT=PRITAB IN RANDOM ORDER                                   E0740800
*        OUTPUT=PRITAB IN PRIORITY ORDER                                E0740900
*                                                                       E0741000
PLINK    EQU   *                                                        E0741100
PLIN12   EQU   PLINK                                                    E0741200
*                                                                 EN008 E0741300
         XHR   R15,R15             FOR I=0 TO FOREGRND                  E0741400
PLI.FORI EQU   *                   *                              EN008 E0741500
         LHR   R13,R15             FOR J=I TO 0 STEP -1           EN008 E0741600
PLI.FORJ EQU   *                                                        E0741700
         LB    R14,PRITAB(R13)     PRITAB(J)                      EN008 E0741800
         LH    R11,TCBTAB(R14)     A(TCB)                         EN008 E0741900
         LB    R11,TCB.CPRI(R11)   TCB.CPRI(PRITAB(J))                  E0742000
         LB    R10,PRITAB+1(R13)   PRITAB(J+1)                          E0742100
         LH    R9,TCBTAB(R10)      A(TCB)                               E0742200
         CLB   R11,TCB.CPRI(R9)    TCB.CPRI(PRITAB(J+1))                E0742300
         BLS   PLI.NXTJ            IF LESS                              E0742400
         BES   PLI.NXTJ            OR EQUAL,NO SWITCH                   E0742500
         STB   R10,PRITAB(R13)     PRITAB(J)=PRITAB(J+1)                E0742600
         STB   R14,PRITAB+1(R13)   PRITAB(J+1)=PRITAB(J)          EN008 E0742700
*                                                                 EN008 E0742800
PLI.NXTJ EQU   *                   NEXT J                               E0742900
         SIS   R13,1               BUMP J                         EN008 E0743000
         BNM   PLI.FORJ            DONE ?                         EN008 E0743100
         AIS   R15,1               NEXT I                               E0743200
         CLHI  R15,FOREGRND+1      DONE ?                               E0743300
         BL    PLI.FORI            NO,LOOP SOMEMORE                     E0743400
         BR    R12                 RETURN                         EN008 E0743500
         ENDC                                                           E0743600
         TITLE SET UP MEMORY PROTECT PATTERN                            E0743700
         IFNZ  MEMPROT                                                  E0743800
*                                                                       E0743900
*        SET UP MEMORY PROTECT PATTERN (TCB.MPT)                        E0744000
*        R8=LINK                                                        E0744100
*        R9-R15=WORK                                                    E0744200
*                                                                       E0744300
MEMPT    EQU   *                                                        E0744400
MEMP13   EQU   MEMPT                                                    E0744500
         STH   R8,MPT.BR+2         SAVE LINK IN BRANCH                  E0744600
         LHI   R9,BGTCB+TCB.MPT    GET A(BG MPT)                        E0744700
         LH    R10,PARTAB+EXTM    GET START OF .BG                   EX E0744800
         IFNZ  EXTMEM              IF EXTENDED MEMORY                EX E0744900
         LCS   R11,2               ASSUME LARGE BACKGROUND           EX E0745000
         LH    R8,PARTAB+4         GET TOP OF END                    EX E0745100
         BNZS  MPT.LBG             LARGE BACKGROUND                  EX E0745200
         ENDC                      *                                 EX E0745300
         LH    R11,PARTAB+2        AND END                              E0745400
MPT.LBG  EQU   *                   *                                 EX E0745500
         BAL   R8,MPT.MPT          DO THE BACKGROUND                    E0745600
         IFNZ  FOREGRND                                                 E0745700
         LHI   R9,BGTCB+TCBL+TCB.MPT                                    E0745800
         IFZ   EXTMEM                                                EX E0745900
         LH    R10,PARTAB+2        GET START OF FOREGROUND              E0746000
         LH    R11,SYSBOT          AND END                              E0746100
         ELSE                                                        EX E0746200
         XHR   R10,R10            PROTECT NOTHING IF EXTENDED MEMORY EX E0746300
         LCS   R11,2              FOREGROUND (ALL 64K OF ADDRESSES   EX E0746400
         ENDC                       ARE VALID)                       EX E0746500
         BAL   R8,MPT.MPT          DO THE FIRST FOREGROUND PARTITION    E0746600
         IFP   FOREGRND-1                                               E0746700
         LIS   R10,8               INITIALIZE INDEX TO FGND # 2         E0746800
MPT.TLOP EQU   *                                                        E0746900
         LH    R11,TCBTAB(R10)     GET A(TCB)                           E0747000
         LM    R12,0(R9)           PICK UP MPT FROM FIRST FGND TCB      E0747100
         STM   R12,TCB.MPT(R11)    STORE IN NEXT TCB                    E0747200
         AIS   R10,2               BUMP INDEX TO NEXT TCB               E0747300
         CLHI  R10,TTAB.END        DONE ?                               E0747400
         BLS   MPT.TLOP            NO,MOVE MPT TO ALL FOREGROUND TCB'S  E0747500
         ENDC                                                           E0747600
         ENDC                                                           E0747700
MPT.BR   B     0                   LINK IS SAVED IN BRANCH              E0747800
*                                                                       E0747900
*        SET UP MPT SUBROUTINE                                          E0748000
*        R9=A(TCB.MPT)                                                  E0748100
*        R10=START OF PARTITION (ON 1 K BOUNDARY)                       E0748200
*        R11=END OF PARTITION    (ON 1 K BOUNDARY)                      E0748300
*        R8=LINK                                                        E0748400
*        R12-R15=WORK                                                   E0748500
*                                                                       E0748600
MPT.MPT  EQU   *                                                        E0748700
         LCS   R12,1                                                    E0748800
         LHR   R13,R12                                                  E0748900
         LHR   R14,R13                                                  E0749000
         LHR   R15,R14                                                  E0749100
         STM   R12,0(R9)           SET ALL ADDRESSES AS PROTECTED       E0749200
MPT.LOOP EQU   *                                                        E0749300
         LHR   R15,R9              GET A(TCB.MPT)                       E0749400
         CLHR  R10,R11             ARE WE DONE ?                        E0749500
         BNLR  R8                  YES,RETURN                           E0749600
         LHR   R14,R10             GET ADDRESS                          E0749700
         SRLS  R14,10              A/1024=BIT INDEX                     E0749800
         BAL   R12,RESBIT     RESET PROPER BIT                          E0749900
         AHI   R10,1024            BUMP TO NEXT K                       E0750000
         BCR   R8                  *                               EX   E0750100
         BS    MPT.LOOP            KEEP GOING                           E0750200
         ENDC                                                           E0750300
         TITLE MOVE SUBROUTINE                                          E0750400
         IFNZ  CMPROC&DISCMGT+SVCTWO IF DISC CMDP/SVC2 IN SYSTEM  EN003 E0750500
*#######################################################*               E0750600
* SUBROUTINE MOVE                                                       E0750700
*                                                                       E0750800
* CALLED BY SVC 2/18 MOVE ASCII CHARACTER                               E0750900
*           SVC 2/16 PACK FILE DESCRIPTOR                               E0751000
*    AND BY THE MARK COMMAND HANDLER                                    E0751100
*                                                                       E0751200
*        R8 - RETURN                                                    E0751300
*        RA - A(ENDING STRING)                                          E0751400
*        RB - 0 JUST MOVE                                               E0751500
*             - MOVE TO END CHAR                                        E0751600
*        RC - A(INPUT STRING)                                           E0751700
*        RD - A(RECEIVING AREA)                                         E0751800
*        RE - LENGTH                                                    E0751900
*#######################################################*               E0752000
MOVE     EQU   *                                                        E0752100
         IFNZ  CMPROC              *                              EN003 E0752200
MOVE07   EQU   MOVE                                                     E0752300
         ENDC                      *                              EN003 E0752400
         IFNZ  EXTMEM                                                EX E0752500
         LPSR  R2                 TALK TO INPUT STRING               EX E0752600
         ENDC                                                        EX E0752700
         LB    R0,0(RC)       PICK UP INPUT CHAR                        E0752800
         XHR   RF,RF          SET END CHAR FOUND FOR NOW                E0752900
         LHR   RB,RB          CHECK END STRING                          E0753000
         BNMS  NOENDC         IF NOT MINUS JUST MOVE                    E0753100
         LHR   R9,RA          GET A(END STRING)                         E0753200
         IFNZ  EXTMEM                                                EX E0753300
         LPSR  R1                 TALK TO END CHARACTER STRING       EX E0753400
         ENDC                                                        EX E0753500
         LB    RF,0(R9)       GET # OF E-CHARS                          E0753600
         LHR   RF,RF          IS IT 0 ?                                 E0753700
         BZS   NOENDC         IF SO JUST MOVE                           E0753800
NEXTENDC AIS   R9,1           COMPARE AGAINST NEXT E-CHAR               E0753900
         CLB   R0,0(R9)                                                 E0754000
         BER   R8             IF END CHAR RETURN WITH CC=0              E0754100
         SIS   RF,1           DECREMENT END CHAR COUNT                  E0754200
         BNZS  NEXTENDC                                                 E0754300
         LCS   RF,1           SET NO END-CHAR FOUND                     E0754400
NOENDC   EQU   *                                                     EX E0754500
         IFNZ  EXTMEM                                                EX E0754600
         LPSR  R4                 TALK TO DESTINATION                EX E0754700
         ENDC                                                        EX E0754800
         STB   R0,0(RD)       MOVE CHAR IF THERE IS A TARGET            E0754900
         AIS   RD,1           TARGET POINTERS BY 1                      E0755000
NOMOVE   AIS   RC,1    BUMP INPUT POINTER BY 1                          E0755100
         SIS   RE,1           DECREMENT LENGTH                          E0755200
         BNZ   MOVE           GO TRY FOR MORE                           E0755300
         BR    R8             EXIT                                      E0755400
         ENDC                      *                              EN003 E0755500
         IFNZ  CMPROC              *                              EN003 E0755600
         TITLE QUEUE A LOG MESSAGE                                      E0755700
*                                                                       E0755800
*        R0=FLAG                                                        E0755900
*              BIT 15 = IMAGE/FORMATTED                                 E0756000
*              BIT 14 = SYSTEM MESSAGE                                  E0756100
*              BIT 13 = DECIMAL ADDRESS                                 E0756200
*              BIT 12 = NO ADDRESS                                      E0756300
*              BITS 9-11= SYSTEM MESSAGE NUMBER                         E0756400
*              BITS 1-8= TCB FLAG BITS                                  E0756500
*              BIT 0 = BACK PSW UP FOR SVC MESSAGE                      E0756600
*        R1=WORK                                                        E0756700
*        R3=TCB POINTER                                                 E0756800
*        R4=A(TEXT)                                                     E0756900
*        R5=L(TEXT)         (NOT USED FOR SYSTEM MESSAGE)               E0757000
*        R7,R10-R14=WORK                                                E0757100
*        R9=EXTENDED PSW FOR SYSTEM MESSAGE                             E0757200
*        R15=LINK                                                       E0757300
*                                                                       E0757400
ATEXT    EQU   *                                                        E0757500
         LHI   R10,CMDLMQ     LOOK FOR BUFFER                           E0757600
         LH    R13,TCBTAB(R3)      GET A(TCB)                           E0757700
         CLHI  R5,LOGLEN           IS IT TOO BIG ?                      E0757800
         BLS   SVCLG1              IF NOT, SKIP TRUNCATE                E0757900
         LHI   R5,LOGLEN      SET TO LOGLEN                             E0758000
SVCLG1   LH    R7,0(R10) IS THIS BUFFER EMPTY ?                         E0758100
         BZ    SVCLG2         IF SO GO USE IT                           E0758200
         AHI   R10,LOGLEN+12       STEP TO NEXT ONE                     E0758300
         CLHI  R10,CMDLQE     IS IT THE END ?                           E0758400
         BLS   SVCLG1         IF NOT GO TRY THIS ONE                    E0758500
         IFNZ  ST                  IF NOT ST SYSTEM                     E0758600
         LH    R10,CFLG  TELL CMD PROC THAT WE'VE LOST ONE              E0758700
         OHI   R10,X'800'     SET CFLG.LML FLAG                         E0758800
         STH   R10,CFLG       PUT IT BACK                               E0758900
         ELSE                      ST SYSTEM                            E0759000
         LH    R11,TCB.STAT(R13)   GET TCB STATUS                       E0759100
         LHR   R12,R0                                                   E0759200
         NHI   R12,X'7F80'         GET FLAG BITS                        E0759300
         BZS   ATX.NF              NONE                                 E0759400
         OH    R12,TCB.FLGS(R13)                                        E0759500
         STH   R12,TCB.FLGS(R13)   INSERT PROPER FLAGS                  E0759600
         BS    ATX.NB              EXIT                                 E0759700
ATX.NF   CLHI  R0,X'12'            ILGL INST ?                          E0759800
         BES   ATX.NB              YES, SKIP PSW BACKUP                 E0759900
         LCS   R12,4                                                    E0760000
         AHM   R12,TCB.CPSW+2(R13) BACK UP PSW                          E0760100
ATX.NB   NHI   R11,-1-TSTT.DMM-TSTT.CWM RESET DORMANT AND PAUSED        E0760200
         OHI   R11,TSTT.MWM        SET MESSAGE WAIT                     E0760300
         STH   R11,TCB.STAT(R13)   UPDATE STATUS                        E0760400
ATX.XIT  EQU   *                                                        E0760500
         ENDC                                                           E0760600
         BR    RF             RETURN                                    E0760700
SVCLG2 EXBR R12,R5                                                      E0760800
 IFNZ FOREGRND                                                          E0760900
         STH   R12,0(R10)      AND AND CLEAR REST OF BUFFER PREFIX      E0761000
 ENDC                                                                   E0761100
         NHI   R0,X'7F'            CLEAR OUT THE TCB FLAG BITS IN R0    E0761200
         LHR   R1,RF          SAVE RETURN                               E0761300
 IFNZ FOREGRND                                                          E0761400
         LHR   R15,R10   SAVE BUFFER START                              E0761500
         LIS   R7,8                                                     E0761600
         AIS   R10,2                                                    E0761700
SVCLG4   LB    R14,TCB.ID(R13)     MOVE TASKID TO LOG BUFFER            E0761800
         CLHI  R14,C' '                                                 E0761900
         BES   SVCLG5              STOP ON 1ST BLANK CHAR               E0762000
         STB   R14,0(R10)                                               E0762100
         AIS   R13,1                                                    E0762200
         AIS   R10,1                                                    E0762300
         SIS   R7,1      MOVE MAX 8 CHAR                                E0762400
         BNLS  SVCLG4                                                   E0762500
SVCLG5   LHI   R7,C' :'                                                 E0762600
         STB   R7,0(R10)      INSERT ':'                                E0762700
         EXBR  R7,R7                                                    E0762800
         STB   R7,1(R10)      INSERT ' '                                E0762900
         LHR   R7,R10    GET BUFFER POINTER                             E0763000
         AIS   R10,1                                                    E0763100
         SHR   R7,R15    LENGTH OF TASKID:                              E0763200
         SLLS  R7,8                                                     E0763300
         AHR   R0,R7     ADD TO MESSAGE LENGTH                          E0763400
 ELSE                                                                   E0763500
  LM R13,BGTCB+TCB.ID   GET  ".BG   "                                   E0763600
 OHI R14,X'1A'    OR IN TO MAKE "  "                                    E0763700
 STM R12,0(R10) SET UP PREFIX                                           E0763800
 LHR R15,R10                                                            E0763900
 AIS R10,6 BUMP R10 BY LENGTH OF PREFIX                                 E0764000
  AHI R0,X'500' ADD IN LENGTH                                           E0764100
 ENDC                                                                   E0764200
         THI   R0,2                SYSTEM MESSAGE ?                     E0764300
         BZS   SVCLG3              NO                                   E0764400
         STB   R12,0(R15)          CLEAR LENGTH FOR SYSTEM MESSAGE      E0764500
         STB   R4,2+EXTMEM(R10)    STORE                                E0764600
         EXBR  R4,R4                                                    E0764700
         STB   R4,1+EXTMEM(R10)    ADDRESS                              E0764800
         IFNZ  EXTMEM              IF EXTENDED MEMORY                   E0764900
         STB   R9,1(R10)           STORE PSW                            E0765000
         ENDC                                                           E0765100
         BS    SVCLG6              SKIP MESSAGE MOVE                    E0765200
SVCLG3   AIS   R10,1     BUMP DST POINTER                               E0765300
         LB    R13,0(R4)      PICK UP THE NEXT BYTE                     E0765400
         STB   R13,0(R10)     MOVE IT                                   E0765500
         AIS   R4,1      BUMP INPUT POINT                               E0765600
         SIS   R5,1      DECREMENT COUNT                                E0765700
         BPS   SVCLG3         IF THERE IS ANYTHING LEFT GO MOVE IT      E0765800
SVCLG6   AHM   R0,0(RF)            ADD IN L(TASKID) + SYSTEM MSG FLAGS  E0765900
         LHI   RD,CMTCB       PUT A(TCB) INTO RD FOR ADDTSKQ            E0766000
         LHI   RE,X'8001'  SET REASON TO TASK Q SERVICE  ATL            E0766100
         AIS   RF,1   SET LOWQ ORDER BIT  OF ADDRESS                    E0766200
         LHR   R7,R8               SAVE R8                              E0766300
         BAL   R8,ADTSKQ           GO ADD BUFFER PNTR TO CMD PROC TASKQ E0766400
         LHR   R8,R7     RESTORE R8                                     E0766500
         CLHR  R1,R1               CC=0                                 E0766600
         BR    R1                  RETURN TO SENDER                     E0766700
         TITLE ADDRESS CHECK                                            E0766800
*                                                                       E0766900
* R8=A(TCB)                                                             E0767000
* R14=ADDRESS TO CHECK                                                  E0767100
* R12=RETURN ADDR                                                       E0767200
* R15=ERROR RETURN                                                      E0767300
*                                                                       E0767400
         IFNZ  ST                                                       E0767500
ADDCHK1  EQU   *                                                        E0767600
         LH    R15,TCB.FLGS(R8)    SYSTEM LEVEL CODE ?            EN001 E0767700
         THI   R15,TFLG.SLM                                             E0767800
         BNZR  R12                 YES, RETURN                          E0767900
         LHI   R15,S1.SU                                                E0768000
         B     ADD.BC              GO TO COMMON ROUTIBE           EX    E0768100
ADDCHK2  EQU   *                                                        E0768200
         LH    R15,SVCCSW+2        GET CALLER'S RETURN ADDR             E0768300
         IFNZ  EXTMEM                                             EX    E0768400
         EPSR  R3,R3               SAVE ENTERED PSW                  EX E0768500
         SETM  R15,SVCCSW          MAP CALLER'S ADDRESS              EX E0768600
         LPSR  R3                  RESTORE PSW                       EX E0768700
         LB    R3,TCB.PNT(R8)      GET TCB POINTER                   EX E0768800
         ENDC                                                     EX    E0768900
         CLH   R15,UBOT            IN SYSTEM CODE ?                     E0769000
         BNLS  ADD.CN                                                   E0769100
         LH    R15,SVCCSW          YES...CHECK STATE                    E0769200
         THI   R15,X'100'                                               E0769300
         BZ     ADD.GD          OK,NO  ADDR  CHECKING                   E0769400
ADD.CN   EQU   *                                                        E0769500
         LHI   R15,SVC2LA                                               E0769600
ADD.BC   EQU   *                                                        E0769700
ADD.04 EQU     *                                                        E0769800
         LB    R3,TCB.PNT(R8)      TCB PNTR                             E0769900
         LH    R8,TCB.OPT(R8)      GET OPTIONS                          E0770000
         THI   R8,TOPT.ETM         E-TASK ?                             E0770100
ADD.NA   BNZ   ADD.GD             YES,NO ERROR CHECKING FOR E-TASKS     E0770200
         CLHI  R3,4 BACKGROUND TASK ?                                   E0770300
         BLS   ADD.NA             EXIT IF CMDP                          E0770400
         BE    ADD.BG                                             EX    E0770500
         IFZ   EXTMEM                                                EX E0770600
         CLH   R14,PARTAB+2   NO...IS ADDRESS IN FOREGRND?              E0770700
         BLR   R15  ERROR RETURN                                        E0770800
         LH    R8,SYSBOT           CHECK SYSBOT = 0 ?                   E0770900
         BZS   ADD.GD              YES                                  E0771000
         CLHR  R14,R8                                                   E0771100
         ELSE                                                        EX E0771200
         EPSR  R8,R8              GET MAP BITS                       EX E0771300
         LBR   R8,R8                                                 EX E0771400
         SRLS  R8,4                                                  EX E0771500
         LHR   R14,R14             IF ADDR<8000 THEN                 EX E0771600
         BMS   ADD.NA2             EXAD BITS MUST                    EX E0771700
         XHR   R8,R8               BE ZERO                           EX E0771800
ADD.NA2  CLH   R8,PARTAB+4         ARE WE BELOW TOP OF .BG ?         EX E0771900
         BLR   R15                YES,ERROR                          EX E0772000
         BNES  ADD.GD0            NO                                 EX E0772100
         CLH   R14,PARTAB+6                                          EX E0772200
         BLR   R15                YES,ERROR                          EX E0772300
ADD.GD0 CLH    R8,SYSBOT          ARE WE OVER TOP OF SYSBOT!         EX E0772400
         BLS   ADD.GD             NO                                 EX E0772500
         CLH   R14,SYSBOT+2                                          EX E0772600
         ENDC                                                        EX E0772700
         BNLR  R15  ERROR RETURN                                        E0772800
ADD.GD   LH    R8,TCBTAB(R3)  RESTORE R8=A(TCB)                         E0772900
         BR    R12            RETURN                                    E0773000
ADD.BG   CLH   R14,PARTAB+EXTM    CHECK ADDRESS FOR BG TASK          EX E0773100
         BLR   R15      IS IT WITHIN BACKGRND PARTITION ?               E0773200
         LH    R8,PARTAB+EXTM+2    CHECK NEXT PART                EX    E0773300
         IFZ   EXTMEM                                             EX    E0773400
         BZS   ADD.GD              YES                                  E0773500
         CLHR  R14,R8                                                   E0773600
         ELSE                                                     EX    E0773700
         BNZS  ADD.GD              NEXT PART IN 2ND 64KB          EX    E0773800
         CLH   R14,PARTAB+6                                       EX    E0773900
         ENDC                                                     EX    E0774000
         BLS   ADD.GD         YES...RETURN                              E0774100
         BR    R15       ERROR RETURN                                   E0774200
         ELSE                                                           E0774300
ADD.BC   EQU   *                  IF NO ADCHECK JUST RETURN             E0774400
ADD.04   EQU   *                                                        E0774500
         BR    R12                                                      E0774600
         ENDC                                                           E0774700
         ENDC                      *                              EN003 E0774800
         TITLE SYNTAX CHECK                                             E0774900
         IFNZ  DISCMGT&SVCSEVEN+CMPROC+SVCSEVEN                   EN003 E0775000
*                                                                       E0775100
*        CHECK THE SYNTAX OF A NAME                                     E0775200
*                                                                       E0775300
*        ENTRY POINTS:                                                  E0775400
*        NAMCHK:VALIDATE THAT FIRST CHAR IS ALPHABETIC                  E0775500
*               AND REST ARE ALPHA NUMERIC                              E0775600
*        NAECHK:VALIDATE THAT ALL CHARS ARE ALPHA NUMERIC               E0775700
*        R9=A(NAME)                                                     E0775800
*        R10=L(NAME)                                                    E0775900
*        R12=LINK                                                       E0776000
*        REGISTERS USED:R9,R10,R11,R13                                  E0776100
*                                                                       E0776200
*        CC=0=OK                                                        E0776300
*        CC=8/4/2/1=ERROR                                               E0776400
*        RETURNS:R9=R10=A(NEXT CHAR AFTER NAME)                         E0776500
*                                                                       E0776600
NAMCHK   EQU   *                                                        E0776700
         IFNZ  CMPROC              *                              EN003 E0776800
NAMC06   EQU   NAMCHK                                                   E0776900
NAMC07   EQU   NAMCHK                                                   E0777000
NAMC08   EQU   NAMCHK              *                              EN005 E0777100
NAMC10   EQU   NAMCHK                                                   E0777200
         ENDC                      *                              EN003 E0777300
         IFNZ  OVSEVEN             IF FMGR IS OVERLAYED           EN008 E0777400
NAM000   EQU   NAMCHK              *                              EN008 E0777500
NAM001   EQU   NAMCHK              *                              EN008 E0777600
NAM004   EQU   NAMCHK              *                              EN008 E0777700
NAM006   EQU   NAMCHK              *                              EN008 E0777800
         ENDC                      *                              EN008 E0777900
         AHR   R10,R9              FIND END ADDRESS + 1                 E0778000
         LB    R11,0(R9)           GET FIRST BYTE                       E0778100
         BAL   R13,ALPHAC          CHECK FOR ALPHABETIC                 E0778200
         BTCR  15,R12              ERROR-RETURN                         E0778300
         BS    NALOOP                                                   E0778400
NAECHK   EQU   *                                                        E0778500
NAEC08   EQU   NAECHK              *                              EN005 E0778600
         IFNZ  OVSEVEN             IF FMGR IS OVERLAYED           EN008 E0778700
NAE000   EQU   NAECHK              *                              EN008 E0778800
NAE001   EQU   NAECHK              *                              EN008 E0778900
NAE004   EQU   NAECHK              *                              EN008 E0779000
NAE006   EQU   NAECHK              *                              EN008 E0779100
         ENDC                      *                              EN008 E0779200
         AHR   R10,R9              FIND END ADDRESS + 1                 E0779300
NALOOP   LB    R11,0(R9)           GET A BYTE                           E0779400
         BAL   R13,ALPHAN          CHECK FOR ALPHA NUMERIC              E0779500
         BTBS  15,NABCHK      GO CHECK FOR BLANK                        E0779600
         CHR   R9,R10              DONE ?                               E0779700
         BER   R12                 RETURN CC=0                          E0779800
         BS    NALOOP              LOOP TILL DONE WITH NAME             E0779900
NABCHK   EQU   *                                                        E0780000
         CLHI  R11,C' '            BLANK ?                              E0780100
         BNER  R12                 RETURN CC<>0                         E0780200
         AIS   R9,1                BUMP                                 E0780300
         CHR   R10,R9              FINISHED ?                           E0780400
         BER   R12                 RETURN CC=0                          E0780500
         LB    R11,0(R9)           GET NEXT BYTE                        E0780600
         BS    NABCHK              LOOP TILL DONE                       E0780700
         EJECT                                                          E0780800
RORG     EQU   *                                                        E0780900
.0 EQU .F1+.F2+.F3+.F4+.F5+.F6+.F7+.F8+.F9+.FA+.FB+.FC+.FD+.FE+.FF      E0781000
         IFZ   .0                                                       E0781100
         ORG   ISPTAB+X'F1'+X'F1'                                       E0781200
         ENDC                                                           E0781300
*                                                                       E0781400
*        CHECK FOR ALPHABETIC OR ALPHA NUMERIC                          E0781500
*                                                                       E0781600
*        R9=INDEX     RETURNED POINTING TO NEXT CHAR                    E0781700
*        R11=CHAR                                                       E0781800
*        R13=LINK                                                       E0781900
*        CC=0 = OK  CC=8/4/2/1 = BAD NEWS                               E0782000
*                                                                       E0782100
ALPHAN   CLHI  R11,C'0'                                                 E0782200
         BLR   R13                 RETURN ERROR(.LT.0)                  E0782300
         CLHI  R11,C'9'+1                                               E0782400
         BLS   ALPHACCZ            RETURN OK (0-9)                      E0782500
         ENDC                      *                              EN003 E0782600
         IFZ   .0                                                       E0782700
         ORG   RORG                                                     E0782800
         ENDC                                                           E0782900
         IFNZ  DISCMGT&SVCSEVEN+CMPROC+SVCSEVEN+SVCTWO            EN003 E0783000
.0 EQU .F1+.F2+.F3+.F4+.F5+.F6+.F7+.F8+.F9+.FA+.FB+.FC+.FD+.FE+.FF      E0783100
         IFZ   .0                                                       E0783200
RORG     EQU   *                                                        E0783300
         ORG   ISPTAB+X'F7'+X'F7'                                       E0783400
         ENDC                                                           E0783500
ALPHAC   CLHI  R11,C'A'                                                 E0783600
         BLR   R13                 RETURN ERROR(.LT.A)                  E0783700
         CHI   R11,C'Z'                                                 E0783800
         BPR   R13                 RETURN ERROR(.GT.Z)                  E0783900
ALPHACCZ AIS   R9,1                BUMP POINTER                         E0784000
         CLHR  R11,R11             RETURN OK  (CC=0)                    E0784100
         BR    R13                                                      E0784200
         IFZ   .0                                                       E0784300
         ORG   RORG                                                     E0784400
         ENDC                                                           E0784500
         ENDC                      *                              EN003 E0784600
         IFNZ  DISCMGT&SVCSEVEN+CMPROC+SVCSEVEN+SVCSIX            EN003 E0784700
         TITLE DMT/VMT LOOK-VOLCHK                                      E0784800
*        ROUTINE TO SCAN DMT/VMT FOR VOLUME                             E0784900
*        R3=A(SVC7 PARAM)                                               E0785000
*        R8=LINK    REGISTERS USED-R10,R11,R12,R14,R15                  E0785100
*        RETURNS R1=A(DCB) CC=0=NOT FOUND,+=DMT,-=VMT                   E0785200
*        RETURNS R10=A(DMT/VMT ENTRY)                                   E0785300
VOLCHK   EQU   *                                                        E0785400
         IFNZ  SVCSEVEN            *                              EN003 E0785500
VOLC00   EQU   VOLCHK                                                   E0785600
VOLC01   EQU   VOLCHK                                                   E0785700
VOLC02   EQU   VOLCHK                                                   E0785800
VOLC04   EQU   VOLCHK                                                   E0785900
VOLC06   EQU   VOLCHK                                                   E0786000
         ENDC                      *                              EN003 E0786100
         IFNZ  CMPROC              *                              EN003 E0786200
VOLC07   EQU   VOLCHK                                                   E0786300
VOLC08   EQU   VOLCHK                                                   E0786400
         ENDC                      *                              EN003 E0786500
*                                                                 EN005 E0786600
         LM    R14,SVC7.VOL(R3)    PICK UP VOLUME NAME                  E0786700
         LHI   R10,DMT             SET TO SEARCH                        E0786800
         LIS   R11,1               DMT                                  E0786900
         BAL   R12,VOLSERCH        GO SCAN                              E0787000
         IFNZ  DISCMGT                                                  E0787100
         LH    R15,SVC7.VOL+2(R3)  RESTORE SECOND HALF OF VOLN          E0787200
         LHI   R10,VMT             SET TO SEARCH                        E0787300
         LCS   R11,1               VMT                                  E0787400
         BAL   R12,VOLSERCH        GO SCAN                              E0787500
         ENDC                                                           E0787600
         BR    R8                  RETURN CC=0                          E0787700
VOLSERCH EQU   *                                                        E0787800
         CLH   R14,DMT.NAME(R10)   CHECK FIRST HALFWORD                 E0787900
         BNES  VOLNEXT             IF NOT EQUAL, BUMP                   E0788000
         CLH   R15,DMT.NAME+2(R10) CHECK SECOND HALFWORD                E0788100
         BES   VOLEXIT             FOUND IT                             E0788200
VOLNEXT  EQU   *                                                        E0788300
         LH    R15,DMT.NAME(R10)   CHECK IF END                         E0788400
         BZR   R12                 NO MORE,RETURN CC=0                  E0788500
         LH    R15,SVC7.VOL+2(R3)  RESTORE R15 TO ALL ITS GLORY         E0788600
         AIS   R10,DMT.            BUMP TO NEXT ENTRY                   E0788700
         BS    VOLSERCH            KEEP LOOKING                         E0788800
VOLEXIT  EQU   *                                                        E0788900
         LH    R1,DMT.DCB(R10)     PICK UP DCB/DMT ADRS                 E0789000
         IFNZ  DISCMGT                                                  E0789100
         LHR   R11,R11             DMT OR VMT LOOK ?                    E0789200
         BPR   R8                  DMT,EXIT TO VOLCHECK CALLER          E0789300
         LH    R1,DMT.DCB(R1)      GET DCB ADRS FROM DMT                E0789400
         ENDC                                                           E0789500
         LHR   R11,R11             SET CC                               E0789600
         BR    R8                  RETURN TO VOLCHECK CALLER            E0789700
         ENDC                      *                              EN003 E0789800
         TITLE SEARCH DMT FOR A DCB ADDRESS                             E0789900
         IFNZ  CMPROC+SVCSEVEN     IF CMDP OR FMGR IN SYSTEM      EN003 E0790000
*        DMTSRC -SEARCH DMT FOR DCB                                     E0790100
*        ENTER WITH:                                                    E0790200
*        R1=A(DCB),R12=LINK                                             E0790300
*        RETURNS: R6=A(DMT ENTRY)                                       E0790400
*        CC=0=NOT FOUND CC<>0=FOUND                                     E0790500
*        REGISTERS USED:R6,R15                                          E0790600
DMTSRC   EQU   *                                                        E0790700
         IFNZ  SVCSEVEN            *                              EN003 E0790800
DMTS04   EQU   DMTSRC                                                   E0790900
DMTS07   EQU   DMTSRC                                                   E0791000
         ENDC                      *                              EN003 E0791100
         IFNZ  CMPROC              *                              EN003 E0791200
DMTS14   EQU   DMTSRC                                                   E0791300
         ENDC                      *                              EN003 E0791400
DMTC07   EQU   DMTSRC                                                   E0791500
DMTC04 EQU DMTSRC                                                       E0791600
         LHI   R6,DMT              ADDRESS THE DMT                      E0791700
DSR.NXT  EQU   *                                                        E0791800
         LH    R15,DMT.NAME(R6)    END ?                                E0791900
         BZR   R12                 YES,RETURN CC=0                      E0792000
         CLH   R1,DMT.DCB(R6)      ARE WE HERE ?                        E0792100
         BNES  DSR.ICR             NO, BUMP INDEX                       E0792200
         LHR   R6,R6               SET CC<>0                            E0792300
         BR    R12                 RETURN TO CALLER                     E0792400
DSR.ICR  EQU   *                                                        E0792500
         AIS   R6,DMT.             BUMP INDEX TO NEXT ENTRY             E0792600
         BS    DSR.NXT             GO CHECK NEXT                        E0792700
         ENDC                      *                              EN003 E0792800
         TITLE BIT MANIPULATION ROUTINE                                 E0792900
         IFNZ  SVCSEVEN            IF FMGR IN SYSTEM              EN003 E0793000
.0 EQU .D0+.D1+.D2+.D3+.D4+.D5+.D6+.D7+.D8+.D9+.DA+.DB+.DC+.DD          E0793100
.0 EQU .0+.C8+.C9+.CA+.CB+.CC+.CD+.CE+.CF+.DE                           E0793200
         IFZ   .0                                                       E0793300
RORG     EQU   *                                                        E0793400
 ORG ISPTAB+X'C8'+X'C8'                                                 E0793500
         ENDC                                                           E0793600
*    *** BIT MANIPULATION ROUTINE ***                                   E0793700
*        THIS ROUTINE SIMULATES THE FUNCTION OF THE TEST,SET AND RESET  E0793800
*        BIT INSTRUCTIONS AS DEFINED FOR THE MODEL 7/32                 E0793900
*                                                                       E0794000
*        REGISTER USAGE:                                                E0794100
*        R0=WORK (-1=RESET,0=TEST,1=SET)  R12=LINK                      E0794200
*        R14=BIT INDEX                                                  E0794300
*        R15=BIT ARRAY POINTER                                          E0794400
RESBIT EQU *                                                            E0794500
RESB08   EQU   *                                                        E0794600
         LCS   R0,1                -1=RESET                             E0794700
BITSUB   EQU   *                                                        E0794800
         LIS   R13,8-1             DIVIDE BY 8                       OP E0794900
         NHR   R13,R14             R13=OFFSET                        OP E0795000
         SRLS  R14,3               R14=POINTER TO BYTE               OP E0795100
         AHR   R15,R14             FIND PRPER BYTE                   OP E0795200
         LHI   R14,X'80'           BIT ZERO ON                       OP E0795300
         SRHL  R14,0(R13)          POSITION TO PROPER BIT            OP E0795400
         LB    R13,0(R15)          GET PROPER BYTE                   OP E0795500
         LHR   R0,R0               TEST FUNCTION                     OP E0795600
         BPS   SETB                PROCESS SET BIT                   OP E0795700
         BMS   RESETB              PROCESS RESET BIT                 OP E0795800
TESTB    NHR   R14,R13             TEST BIT                          OP E0795900
         BR    R12                 EXIT                              OP E0796000
RESETB   SHR   R0,R14              FLIP BITS                         OP E0796100
         NHR   R13,R0              RESET BIT                         OP E0796200
         BS    BITOUT              EXIT                              OP E0796300
SETB     OHR   R13,R14             SET BIT                           OP E0796400
BITOUT   STB   R13,0(R15)          UPDATE BYTE                       OP E0796500
         BR    R12                 EXIT                              OP E0796600
         IFZ   .0                                                       E0796700
         ORG   RORG                                                     E0796800
         ENDC                                                           E0796900
         ENDC                      *                              EN003 E0797000
         TITLE OS/16 CRASH HANDLER                                      E0797100
         IFNZ  SAFE                                                     E0797200
*                                                                       E0797300
*        CALL IS AS FOLLOWS:                                            E0797400
*                 IFNZ SAFE                                             E0797500
*        CRASHXXX SINT CRASH                                            E0797600
*                 DC   X'XXX'                 CRASH CODE                E0797700
*                 ENDC                                                  E0797800
*                                                                       E0797900
CRASHX   EQU   *                                                        E0798000
         DC    0,0                 OLD PSW SAVE AREA                    E0798100
         DC    ISSTAT              NEW PSW STATUS                       E0798200
         STM   R0,CRSHSV           SAVE THE REGISTERS                   E0798300
         LM    R14,CRASHX          PICK UP THE OLD PSW                  E0798400
         LH    R0,-4(R15)     PICK UP INSTRUCTION                       E0798500
         CLHI  R0,SINT.OP*X'100'     WAS IT A SINT ?                    E0798600
         BES   CRASHOK             YES, GO CRASH                        E0798700
CRASH162 LHI   R0,X'162'       ILLEGAL INTERRUPT ON ADDR=0              E0798800
         BS    CRASH0                                                   E0798900
CRASHOK  EQU   *                                                        E0799000
         LH    R0,0(R15)           PICK UP CRASH CODE                   E0799100
CRASH0   STH   R0,CRASHCOD         SAVE CRASH CODE                      E0799200
         IFP   JOURNAL0                                                 E0799300
         LHI   R5,JOURNL           GET A(JOURNAL LIST)                  E0799400
         LB    R6,1(R5)            PICK UP NUMBER USED                  E0799500
         SLLS  R6,1                TIMES # OF BYTES PER SLOT            E0799600
         SIS   R6,10               MINUS # OF BYTES PER ENTRY           E0799700
         AHI   R6,4(R5)            PLUS A(START OF LIST)=LAST SLOT USED E0799800
         ELSE                                                           E0799900
         XHR   R5,R5                                                    E0800000
         XHR   R6,R6                                                    E0800100
         ENDC                                                           E0800200
         EXBR  R0,R0               FLIP BYTES                           E0800300
         LIS   R1,1                ADDRESS THE DISPLAY PANEL            E0800400
         OC    R1,INCRCN           SELECT INCR MODE                     E0800500
         WHR   R1,R0               WRITE CRASH CODE TO DISPLAY PANEL    E0800600
         OC    R1,NORMCN           BACK TO NORMAL                       E0800700
CRASHLPW LPSW  CRASHPSW            HANG IT UP                           E0800800
CRASHPSW DC    CRSTAT,CRASHLPW                                          E0800900
CRSHSV   DC    Y'0',Y'0',Y'0',Y'0',Y'0',Y'0',Y'0',Y'0' R0-R15           E0801000
         ENDC                                                           E0801100
         TITLE JOURNAL ENTRY ROUTINE                                    E0801200
         IFP   JOURNAL0                                                 E0801300
*                                                                       E0801400
*        THIS ROUTINE MAKES ENTRIES IN THE SYSTEM JOURNAL               E0801500
*        CONSISTING OF TCB ID/JOURNAL CODE IN THE FIRST HALFWORD        E0801600
*        FOLLOWED BY 4 HALFWORDS OF R12-R15                             E0801700
*                                                                       E0801800
*        CALL IS AS FOLLOWS:                                            E0801900
*        IFP   JOURNAL0                                                 E0802000
* JRNLJJ BAL   R8,JOURNAL                                               E0802100
*        DC    X'00JJ'             JOURNAL CODE                         E0802200
*        ENDC                                                           E0802300
*                                                                       E0802400
*        REGISTERS USED: R10,R11                                        E0802500
*                                                                       E0802600
JOURNAL  EQU   *                                                        E0802700
         LB    R11,ACTTCB          GET ACTIVE TCB INDEX                 E0802800
         SLLS  R11,7               CONVERT TO TCB ID IN UPPER BYTE      E0802900
         OH    R11,0(R8)           INSERT JOURNAL CODE                  E0803000
         LH    R10,SPTJRNL                                              E0803100
         BZ    2(R8)                                                    E0803200
         CLHI  R10,JOURNL          IS IT MY JOURNAL LIST ADDRESS ?      E0803300
         BNER  R10                 NO, MUST BE A SPECIAL JOURNAL        E0803400
         LB    R10,JOURNL+1        GET # USED                     EN008 E0803500
         CLB   R10,JOURNL          COMPARE TO # SLOTS             EN008 E0803600
         BLS   JOURNAL1            IF OK, GO ADD ITEMS            EN008 E0803700
         XHR   R11,R11             CLEAR R11                            E0803800
         STB   R11,JOURNL+1        INITIALIZE                           E0803900
         STH   R11,JOURNL+2        LIST                                 E0804000
         B     JOURNAL             TRY AGAIN                            E0804100
JOURNAL1 EQU   *                                                        E0804200
         AIS   R10,5               BUMP # USED                    EN008 E0804300
         STB   R10,JOURNL+1        STORE IT                       EN008 E0804400
         STB   R10,JOURNL+3        SAVE IT AS BOTTOM POINTER ALSO EN008 E0804500
         AHR   R10,R10             DOUBLE IT                      EN008 E0804600
         STM   R11,JOURNL-6(R10)   PUT EVERYTHING IN              EN008 E0804700
         B     2(R8)               RETURN                               E0804800
         ENDC                                                           E0804900
         TITLE SYSTEM QUEUES                                            E0805000
*        REQUIRED SYSTEM QUEUES                                         E0805100
*                                                                       E0805200
*              LIOTRM    SYSTEM TERMINATION QUEUE                       E0805300
*              JOURNL    SYSTEM JOURNAL LIST                            E0805400
*              SEEKQ     ONGOING DISC I/O QUEUE                         E0805500
*                                                                       E0805600
LIOTRM   DB    DMTE-DMT/6+2,0,0,0  TERMINATION QUEUE                    E0805700
         IFNZ  CMPROC              *                              EN003 E0805800
LIOT00   EQU   LIOTRM                                                   E0805900
LIOT06   EQU   LIOTRM                                                   E0806000
         ENDC                      *                              EN003 E0806100
         IFNZ  SVCSEVEN            *                              EN003 E0806200
LIOT05   EQU   LIOTRM                                                   E0806300
         ENDC                      *                              EN003 E0806400
         DS    DMTE-DMT/3+4        # SLOTS=# ENTRIES IN DMT + 2         E0806500
*                                                                       E0806600
         IFP   JOURNAL0                                                 E0806700
JOURNL   EQU   *                                                        E0806800
         DB    JOURNAL0*5,0,0,0                                         E0806900
         DS    JOURNAL0*10                                              E0807000
*                                  JOURNAL CODE TABLE                   E0807100
JRNLCD   EQU   *                                                        E0807200
         DB    X'13'               IIINT                                E0807300
         DB    X'14'               FLTFAULT                             E0807400
         DB    X'60'               SVC                                  E0807500
         DB    X'15'               QTERM                                E0807600
         DB    X'16'               DVFAULT                              E0807700
         IFNZ  MEMPROT                                                  E0807800
         DB    X'17'               MEMPROTFAULT                         E0807900
         ENDC                                                           E0808000
         ALIGN 2                   HALFWORD BOUNDARY               210D E0808100
JRNLAD   EQU   *                                                        E0808200
         DC    IIIPSW              *                              EN001 E0808300
         DC    FLTPSW                                                   E0808400
         DC    SVCPSW                                                   E0808500
         DC    QTPSW                                                    E0808600
         DC    DVPSW                                                    E0808700
         IFNZ  MEMPROT                                                  E0808800
         DC    MPDVR                                                    E0808900
         ENDC                                                           E0809000
         ENDC                                                           E0809100
*                                                                       E0809200
         IFNZ  DISCMGT                                                  E0809300
SEEKQ    EQU   *                  ON-GOING DISC I/O QUEUE               E0809400
         DB    VMTE-VMT/6,0,0,0                                         E0809500
         DS    VMTE-VMT/3                                               E0809600
         ENDC                                                           E0809700
         TITLE SYSTEM TABLES                                            E0809800
         IFNZ  CMPROC+SVCSIX       IF CMDP OR SVC 6 IN SYSTEM     EN003 E0809900
PARTAB   EQU   *                   PARTITION ADDRESS TABLE              E0810000
         IFNZ  CMPROC              *                              EN003 E0810100
PART00   EQU   PARTAB                                                   E0810200
PART06 EQU PARTAB                                                       E0810300
PART15   EQU   PARTAB             *                               EN008 E0810400
PART11   EQU   PARTAB                                                   E0810500
PART13   EQU   PARTAB                                                   E0810600
PART14   EQU   PARTAB                                                   E0810700
         ENDC                      *                              EN003 E0810800
         DS    EXTM+2*FOREGRND+2+EXTM   2 OR 4 BYTES/PARTITION       EX E0810900
SYSBOT   EQU   *                   BOTTOM OF SYSTEM SPACE         EN003 E0811000
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0811100
         DS    2+EXTM                   THIS IS SET UP IN SYS-INIT   EX E0811200
         ELSE                      NO CMDP IN SYSTEM              EN003 E0811300
         DC    .SYS                ADDRESS OF DUMMY TASK          EN003 E0811400
         ENDC                      *                              EN003 E0811500
         IFNZ  SVCSEVEN            *                              EN003 E0811600
SYSB02   EQU   SYSBOT+EXTM                                           EX E0811700
         ENDC                      *                              EN003 E0811800
SYSBP2   EQU   SYSBOT+2            *                                 EX E0811900
         ELSE                      NO CMDP AND NO SVC6(NO PARTAB) EN003 E0812000
         IFNZ  SVCSEVEN            *                              EN003 E0812100
SYSBOT   DC    .SYS                *                              EN003 E0812200
SYSB02   EQU   *                   *                              EN003 E0812300
         ENDC                      *                              EN003 E0812400
         ENDC                      *                              EN003 E0812500
*                                                                       E0812600
PRITAB   EQU   *                   TCB POINTERS IN PRIORITY ORDER       E0812700
         DO    FOREGRND+2                                               E0812800
         DB    *-PRITAB*2+2                                             E0812900
         ALIGN 2                                                        E0813000
*                                                                       E0813100
TCBTAB   EQU   *-2                 TCB ADDRESS TABLE                    E0813200
         IFNZ  SVCSEVEN            *                              EN003 E0813300
TCBT05   EQU   TCBTAB                                                   E0813400
         ENDC                      *                              EN003 E0813500
         IFNZ  CMPROC              *                              EN003 E0813600
TCBT00   EQU   TCBTAB              *                              EN003 E0813700
TCBT11   EQU   TCBTAB              *                              EN011 E0813800
TCBT12   EQU   TCBTAB                                                   E0813900
TCBT13   EQU   TCBTAB                                                   E0814000
TCBT14   EQU   TCBTAB                                                   E0814100
         ENDC                      *                              EN003 E0814200
         DC    CMTCB                                                    E0814300
         DC    BGTCB                                                    E0814400
         DO    FOREGRND                                                 E0814500
         DC    *-TCBTAB-4/2*TCBL+BGTCB                                  E0814600
*                                                                       E0814700
*        COMMAND PROCESSOR TCB                                          E0814800
*                                                                       E0814900
         IFNZ  SVCSEVEN&DISCMGT+CMPROC IF CMDP IN OR MARK ON RQD  EN003 E0815000
CMTCB    DS    5+CSS*3+1+TCB                                            E0815100
         ELSE                      *                              EN003 E0815200
CMTCB    DS    10                  *                              EN003 E0815300
         ENDC                      *                              EN003 E0815400
         IFNZ  CMPROC              *                              EN003 E0815500
CMTC04   EQU   CMTCB               *                              EN003 E0815600
         ENDC                      *                              EN003 E0815700
         IFNZ  SVCSEVEN            *                              EN003 E0815800
CMTC01   EQU   CMTCB               *                              EN003 E0815900
CMTC06   EQU   CMTCB                                                    E0816000
CMTC07   EQU   CMTCB                                                    E0816100
CMTC08 EQU CMTCB                                                        E0816200
         ENDC                      *                              EN003 E0816300
         IFNZ  CMPROC              *                              EN003 E0816400
CMT001   EQU   CMTCB                                                    E0816500
CMT003   EQU   CMTCB                                                    E0816600
CMT006   EQU   CMTCB                                                    E0816700
CMT006   EQU   CMTCB               *                              EN008 E0816800
CMT013   EQU   CMTCB               *                              EN008 E0816900
CMT008 EQU CMTCB                                                        E0817000
CMTC05 EQU CMTCB                                                        E0817100
CMTC12 EQU  CMTCB                                                       E0817200
CMTC14 EQU CMTCB                                                        E0817300
CMTC17 EQU CMTCB                                                        E0817400
         ENDC                      *                              EN003 E0817500
CMTCBE   ORG   CMTCB+TCB.ID                                             E0817600
         DC    C'.CMDP   '         TCB.ID                         EN006 E0817700
         ORG   CMTCB+TCB.STAT      *                              EN003 E0817800
         DC    TSTT.DMM            DORMANT UNLESS SET OTHERWISE   EN003 E0817900
         IFNZ  SVCSEVEN&DISCMGT+CMPROC IF CMDP IN OR MARK ON RQD  EN003 E0818000
         ORG   CMTCB+TCB.ITSW                                           E0818100
         DC    TTSW.PRM+TTSW.TCM+TTSW.IPM,INMARK  INITIAL TSW/LOC       E0818200
         ORG   CMTCB+TCB.UBOT                                           E0818300
         DC    CUDL,SUSTAT,ETSTAT  A(UDL)                            EX E0818400
         ORG   CMTCB+TCB.MPRI                                           E0818500
         DB    0,0,0,0             MPRI,CPRI                            E0818600
         ORG   CMTCB+TCB.NLU                                            E0818700
         DB    5+CSS,0             NLU                                  E0818800
         ORG   5+CSS*2+TCB+CMTCB                                        E0818900
         DB    0,X'7F'             LU 0 ATTRIBUTES                      E0819000
         ENDC                      *                              EN003 E0819100
         ORG   CMTCBE+1                                                 E0819200
         ALIGN 2                                                        E0819300
*                                                                       E0819400
*        BACKGROUND TCB                                                 E0819500
*                                                                       E0819600
BGTCB    DS    TCBL                PARTITION 0                    EN003 E0819700
         IFNZ  CMPROC              IF CMDP IN SYSTEM              EN003 E0819800
         IFNZ  CSS                 IF CSS SUPPORT                 EN012 E0819900
BGTC01   EQU   BGTCB               *                              EN012 E0820000
         ENDC                      *                              EN012 E0820100
BGTC04   EQU   BGTCB                                                    E0820200
BGTC11   EQU   BGTCB                                                    E0820300
BGTC14   EQU   BGTCB                                                    E0820400
BGTC17 EQU BGTCB                                                        E0820500
         ENDC                      *                              EN003 E0820600
*                                                                 EN003 E0820700
*        FOREGROUND TCB'S                                         EN003 E0820800
*                                                                 EN003 E0820900
         DO    FOREGRND                                                 E0821000
         DS    TCBL                                                     E0821100
         IFNZ  CMPROC              *                              EN003 E0821200
SYSV06   EQU   SYSVOL                                                   E0821300
SYSV08   EQU   SYSVOL                                                   E0821400
*                                                                 EN005 E0821500
SYSV15   EQU   SYSVOL                                                   E0821600
         ENDC                      *                              EN003 E0821700
         TITLE EXECUTIVE SYMBOL TABLE                                   E0821800
         END                                                            E0821900
