1000 ! XLOKS - Display System Locks Set With XLOCK.SBR
1005
1010 ! ***        Written by Brion Norton  1/29/88         ***
1015 ! ***  Seattle Refrigeration & Manufacturing Company  ***
1020
1025 ! There are other methods for doing this same thing, but
1030 !  this program uses only utilities included with AMOS(L).
1035
1040 ! See the documentation for XLOCK.SBR for procedures to
1045 !  install the locking utility on your system.
1050
1055 ! Copy XLOKS.RUN to BAS: and XLOKS.CMD to CMD:
1060
1065 ! To use:  At the AMOS(L) dot prompt, type "XLOKS" and
1070 !  press RETURN.
1075
1080 ! The JOB numbers displayed are the sequence numbers in
1085 !  the system job table, i.e. the order in which the job
1090 !  was allocated when the system was last booted.
1095
1100 MAP1 MODE,B,2              ! XLOCK process parameter
1105 MAP1 MYJOB,B,2             ! job number return variable
1110 MAP1 LISTARRAY             ! array variable for locks set on system
1115    MAP2 LOCKENTRY(51)
1120       MAP3 JOB'NUM,B,2     ! number of job that set the lock
1125       MAP3 L1,B,2          ! first value of lock
1130       MAP3 L2,B,2          ! second value of lock
1135
1140 MAP1 MISCELLANY
1145    MAP2 C,F
1150    MAP2 J,F
1155    MAP2 R,F
1160    MAP2 X,F
1165    MAP2 Z,F
1170    MAP2 MASK5,S,5,"#####"
1175
1180 !========================[  BEGIN PROGRAM  ]========================
1185
1190    MODE = 3                ! tell XLOCK to return data on system locks
1195    XCALL XLOCK,MODE,MYJOB,LISTARRAY
1200
1205    PRINT TAB(-1,0); TAB(1,14); &
               "C U R R E N T   X L O C K   S Y S T E M   L O C K S"; &
               TAB(1,67); TAB(-1,33); TAB(1,11); TAB(-1,32);   ! reverse video
1210    PRINT TAB(3,31); "Called By Job #"; STR(MYJOB);
1215   FOR J = 1 TO 3
1220     C = 3 + (J-1)*27       ! calculate screen display column
1225     PRINT TAB(5,C); "Job #  Lock-1  Lock-2";
1230     PRINT TAB(5,C+21); TAB(-1,31); TAB(5,C+14); TAB(-1,30); &
               TAB(5,C+13); TAB(-1,31); TAB(5,C+6); TAB(-1,30); &
               TAB(5,C+5); TAB(-1,31); TAB(5,C-1); TAB(-1,30);
1235   NEXT J
1240    Z = 0
1245   FOR J = 1 TO 51
1250     IF (JOB'NUM(J) < 1) THEN GOTO SKIP'JOB
1255     X = INT((J-1)/17)                      ! set column shift factor
1260     R = 5 + J - 17*X                       ! calculate screen row
1265     C = 5 + 27*X                           ! calculate screen column
1270     PRINT TAB(R,C); STR(JOB'NUM(J)) USING "##";    ! job number
1275     PRINT TAB(R,C+5); STR(L1(J)) USING MASK5;      ! first lock value
1280     PRINT TAB(R,C+13); STR(L2(J)) USING MASK5;     ! second lock value
1285     Z = Z + 1                              ! count # of locks set
1290 SKIP'JOB:
1295   NEXT J
1300    IF (Z < 1) THEN PRINT TAB(13,28); "<<<<  No Locks Set  >>>>";
1305    PRINT TAB(23,1); "Finished    ";
1310  END
1315
1320 ! End of Program