GASS Operations
Thanks you very much for using MSI.
.PA
OPERATION 113 - SEARCH TABLE FOR TYPE CODE
OPERATION 113 MUST BE USED WITH AN "I" FORMAT. OPERATION 113 SETS UP THE
LOGICAL TYPE CODE FOR ALL SUBSEQUENT TABLE SEARCHES. IF NO 113 IS USED, TYPE
CODE 0 IS AUTOMATICALLY DEFAULTED TO.
TYPE CODES: (RELATIVE TO THE VALUE IN THE SEARCH FIELD)
0 = 3 > OR =
1 < 4 >
2 < OR = 5 NOT EQUAL
EXAMPLE : 0113
FIELD I FORMAT I COMMENTS I \ OR ^ I OPERATIONS
-------I----------I----------------------------I--------I------------
1 I I6 I ^ (TBL 1 IS ANSWER TBL) I \ I 18(0)Y93N
2 I I6 I TYPE OF SEARCH ^ I \ I 0 Y 113 N
3 I I6 I TABLE TO SEARCH ^ I \ I 0 Y 81 N
4 I I6 I NUMBER OF ROWS ^ I \ I 0 Y 83 N
5 I D12.2 I VALUE TO SEARCH FOR ^ I \ I 0 Y 98 N
6 I I6 I ^ I \ I 18(1)Y81N
7 I I6 I ^ I ^ I 94Y33Y83Y35(4,PR)N
IN THE EXAMPLE REPORT, 0113, THE OPERATOR IS REQUIRED TO INPUT THE TYPE
OF SEARCH, THE TABLE TO SEARCH, THE NUMBER OF ROWS TO SEARCH, AND THE VALUE TO
SEARCH FOR. NOTE THAT TABLE 1 IS THE ANSWER TABLE. IN FIELD 7 TRANSFER IS
MADE TO A REPORT CALLED "PR" IF AND ONLY IF THE NUMBER OF MATCHES (OR TRUE
CONDITIONS) IS GREATER THAN 0. NOTICE THAT OPERATION 83 WILL CAUSE "PR" TO
BE "GEN UPDATED" FOR THE NUMBER OF ROWS THAT THERE WERE MATCHES.
HEX FORMAT FOR EDIT: 0071
.PA
TYPE CODES FOR OPERATION 113 1-32
OPERATION 113 WORKS IN CONJUNCTION WITH OPERATION 98 TO SEARCH A TABLE.
IT HAS BEEN EXTENDED TO GIVE THE CAPABILITY OF MODIFYING OPERATION 98 TO DO
THINGS SUCH AS EXECUTE SEARCHES ON DIFFERENT TABLES WITH THE RESULTING MATCHES
BEING LOGICALLY "AND"ED, "OR"ED AND/OR "EXCLUSIVE OR"ED INTO ONE ANSWER TABLE
CONTAINING 0'S OR 1'S. ANOTHER MODIFICATION WOULD BE TO PRINT ROWS IN AN ALPHA
TABLE WHEN ROWS IN THE ANSWER TABLE (I-FORMAT) ARE 1 AND IGNORE THEM IF THEY
ARE 0. ALL LOGICAL SEARCHES ARE FUNDAMENTALLY THE SAME EXCEPT AFTER A 113
VALUE GREATER THAN 5 THE ANSWER TABLE NO LONGER HAS THE NUMBER OF MATCHES
FOLLOWED BY THE ROW NUMBER OF EACH MATCH. IT NOW TRACKS THE TABLE TO BE
SEARCHED ROW FOR ROW, AND WHERE A MATCH IS FOUND WILL WRITE A 1 AND NOT-MATCH
WILL WRITE A 0 INTO THE TRACKING ROW OF THE ANSWER TABLE.
NORMAL 113 VALUES
-----------------
0 = 1< 2=OR< 3=OR> 4> 5 NOT=
113 VALUES WHERE A 1 OR 0 IS STORED IF OR NOT THE LOGIC MATCHES
----------------------------------------------------------------
6 = 7< 8=OR< 9=OR> 10> 11 NOT=
113 VALUES WHERE A 1 OR 0 IS "AND"ED WITH THE ANSWER TABLE
----------------------------------------------------------
12 = 13< 14=OR< 15=OR> 16> 17 NOT=
113 VALUES WHERE A 1 OR 0 IS 'OR"ED WITH THE ANSWER TABLE
---------------------------------------------------------
18 = 19< 20=OR< 21=OR> 22> 23 NOT=
113 VALUES WHERE A 1 OR 0 IS "EOR"ED WITH THE ANSWER TABLE
----------------------------------------------------------
24 = 25< 26=OR< 27=OR> 28> 29 NOT=
113 VALUE FOR SUMMING A TABLE------------- 30
---------------------------------------------
113 VALUE FOR PRINTING A TABLE ----------- 31
---------------------------------------------
113 VALUE FOR VIEWING A TABLE ------------ 32
---------------------------------------------
.PA
TO PRIME THE ANSWER TABLE, A 0 SHOULD BE STORED INTO ROW 1 PRIOR TO ANY
SET OF SEQUENTIAL SEARCHES. AFTER THIS NO DATA SHOULD BE ENTERED INTO IT SO
THAT THAT THE SYSTEM CAN KEEP THE LOGICAL VALUES ASCERTAINED.
OPERATION 113 EXAMPLE:
FIELD I I COMMENTS I I OPERATIONS
--------I-----I--------------------------I---I-------------------
1 I I6 I ^ I \ I 18(0)Y117(4,1)Y93N
2 I I6 I IST TABLE TO SEARCH^ I \ I 0Y81N
3 I I6 I BEGINNING ROW NUMBER^ I \ I 0Y38N
4 I I6 I ENDING ROW NUMBER^ I \ I 0Y83N
5 I I6 I TYPE CODE^ I \ I 0Y113N *1ST*
6 ID12.2I 1ST SEARCH DATA^ I \ I 0Y98N
7 I I6 I NEXT TABLE TO SEARCH^ I \ I 0Y81N
8 I I6 I TYPE CODE NO. 2^ I \ I 0Y113N *2ND*
9 ID12.2I SEARCH DATA # 2^ I \ I 0Y98N
10 I I6 I PRINT-31; VIEW-32^ I ^ I 0Y113N
11 I I6 I ^ I ^ I 18(1)Y81N
12 I A78 I ^ I ^ I 65Y98N
THE EXAMPLE REPORT IS A GENERALIZED REPORT THAT WAS USED TO DEBUG THE 113
SYSTEM. IT SHOULD BE NOTED THAT IN THE EXAMPLE, TABLE 4 IS THE ANSWER TABLE
AND MAY BE LOGICALLY UPDATED BY OPERATION 98 IN FIELDS 6 AND 9. TABLE 1 IS AN
A78 AND MUST HAVE READIBLE DATA IF 31 OR 32 IS ENTERED INTO FIELD 10. IT
SHOULD ALSO BE NOTED THAT OPERATION 98 COULD PRINT OR VIEW MUCH DATA IN A
SHORT PERIOD OF TIME. THE SYSTEM TURNS FULL CONTROL OVER TO PRINTING THE
TABLE.
.PA
OPERATION 113 - TYPE CODES 33 - 37.
TYPE CODE 33 - COPY AND PACK A TABLE FORM A SOURCE TABLE TO A TARGET TABLE
ACCORDING TO ROWS IN A THIRD TABLE THAT CONTAINS 1'S AND 0'S.
TYPE CODE 34 - STORE A CONSTANT INTO ALL ROWS OF A SPECIFIED TABLE.
TYPE CODE 35 - SORT A SOURCE TABLE.
TYPE CODE 36 - DISTRIBUTE AMOUNT IN CURRENT COLUMN TO ROWS OF A TABLE.
TYPE CODE 37 - FIND ROW NUMBER OF LOWEST VALUE IN A TABLE.
TYPE CODE 38 - FIND ROW NUMBER OF LARGEST VALUE IN A TABLE.
ALL TYPE CODES WORK IN CONJUNCTION WITH OPERATION 98, AND THE SYSTEM
REQUIRES THAT A WORK TABLE (OR ANSWER TABLE) BE ESTABLISHED BY STORING SOME
VALUE INTO IT PRIOR TO OPERATION 98. SINCE MOST PROCESSING INCLUDES MORE THAN
ONE TABLE, SEVERAL OPERATIONS MUST WORK TOGETHER TO ESTABLISH INITIAL
CONDITIONS FOR OPERATION 98. TYPE CODES 33 - 37 ARE DISCUSSED SEPARATELY AND
AN EXAMPLE OF EACH IS GIVEN ON THE FOLLOWING PAGES.
.PA
OPERATION 113 - TYPE CODE 33 - COPY AND PACK A TABLE.
TYPE CODE 33 MODIFIES OPERATION 113 SUCH THAT OPERATION 98 CAUSES A
SOURCE TABLE TO BE COPIED TO TARGET TABLE ACCORDING TO VALUES IN A THIRD
(ANSWER) TABLE THAT HAS EITHER 1'S OR 0'S IN IT. THIS EFFECTS A PACK FROM ONE
TABLE TO ANOTHER. THE SEQUENCE OF EVENTS TO PRIME THE 98 SO THAT IT IS A COPY
ARE:
1) RETRIEVE A ROW FROM THE TARGET TABLE USING OPERATION 94 OR 102.
2) STORE SOME VALUE INTO ROW 1 OF THE ANSWER TABLE. (THIS TABLE IS USUALLY
FILLED WITH 1'S AND 0'S).
3) SET UP THE NUMBER OF ROWS WITH OPERATION 83.
4) SET UP THE SOURCE TABLE AND ROW NUMBER WITH OPERATION 116 (OR 81 & 38).
5) EXECUTE OPERATION 98.
EXAMPLE:
---I-------I-------------------------------I---I---------------------
1 I I6 I ^ I \ I 18(0)Y117(1,1)93N
2 I I6 I ^ I \ I 18(100)Y83N
3 I I6 I ^ I \ I 18(10)Y113N
4 I D12.2 I ^ I \ I 19(0.)Y116(2,1)Y98N
5 I I6 I ^ I \ I 116(1,1)Y94N
6 I I6 I ^ I \ I 116(3,1)Y94N
7 I I6 I ^ I \ I 10(5,7)Y117(1,1)Y93N
8 I I6 I ^ I \ I 18(33)Y113N
9 I D12.2 I ^ I ^ I 19(0.)Y116(4,1)Y98N
IN THE EXAMPLE REPORT, FIELDS 1 - 4 ARE USED TO SEARCH TABLE 2 ( A "D"
TABLE) AND FOR ALL VALUES GREATER THAN 0, A 1 IS STORED IN THE CORRESPONDING
ROW OF TABLE 1; ALL THE REST ARE 0'S (SEE TYPE CODE 10). FIELDS 5 - 9 ARE USED
TO COPY AND PACK DATA IN TABLE 4 INTO TABLE 3. NOTE THAT FIELD 7 BRINGS DOWN
THE VALUE OF FIELD 5 WITH ARITMETIC SO AS NOT DAMAGE LINKEAGE TO TO OPERATION
98 IN FIELD 9. TABLE 1 IS THE ANSWER TABLE, TABLE 4 IS THE SOURCE TABLE AND
TABLE 3 IS THE TARGET TABLE.
.PA
OPERATION 113 - TYPE CODE 34 - STORE A CONSTANT TO ALL ROWS OF A TABLE.
TYPE CODE 34 MODIFIES OPERATION 113 SO THAT OPERATION 98 CAUUSES THE
VALUE IN THE CURRENT FIELD TO BE PLACED IN ALL ROWS OF A SPECIFIED TABLE UP TO
THE ROW NUMBER SPECIFIED BY OPERATION 83.
A 0 MUST BE STORED INTO SOME WORK TABLE PRIOR TO OPERATION 98.
EXAMPLE:
---I-----I----------------------------------I---I-------------------
1 I I6 I ^ I \ I 18(0)Y117(1,1)Y93N
2 I I6 I ^ I \ I 18(100)Y83N
3 I I6 I ^ I \ I 18(34)Y113N
4 I I6 I ^ I \ I 18(50)Y116(2,1)Y98N
5 I I6 I ^ I \ I 18(10)Y83N
6 I A20 I THIS IS TABLE 3^ I ^ I 65Y116(3,1)Y98N
IN THE EXAMPLE THE VALUE 50 WILL BE STORED INTO THE FIRST 100 ROWS OF
TABLE 2 AND "THIS IS TABLE 3 " WILL BE STORED INTO THE FIRST 10 ROWS OF
TABLE 3.
.PA
OPERATION 113 - TYPE CODE 35 - SORT A TABLE.
TYPE CODE 35 MODIFIES OPERATION 113 TO CAUSE OPERATION 98 TO PUT THE
SORTED ROW NUMBERS OF THE SOURCE TABLE INTO THE ANSWER TABLE. THE SOURCE TABLE
IS DESTROYED, SO IT SHOULD BE BE COPIED TO A WORK TABLE USING OPERATION 146 OR
AN EQUIVALENT SCHEME.
FIRST THE NUMBER OF ROWS SHOULD BE ESTABLISHED USING OPERATION 83. NEXT
STORE 0 INTO AN ANSWER TABLE USING OPERATION 93 (OR EQUIVALENT). SET IN A TYPE
CODE OF 35. ESTABLISH A SOURCE TABLE AND ROW NUMBER USING OPERATION 81 AND 38
(OR OPERATION 116) AND EXECUTE OPERATION 98. THE INTEGER VALUES IN THE ANSWER
TABLE IS THE SORT OF THE SOURCE TABLE. I.E. THE FIRST ROW OF THE ANSWER TABLE
CONTAINS THE ROW NUMBER OF THE FIRST ITEM IN THE SORTED LIST, THE SECOND ROW
CONTAINS THE ROW NUMBER OF THE SECOND ITEM, ETC.
EXAMPLE:
---I------I----------------------------------------I---I-------------------
1 I I6 I ^ (COPY TABLE 2 TO 1) I \ I 116(3,2)Y146Y18(0)Y
I I I I 117(1,1)Y93N
2 I I6 I ^ (100 ROWS) I \ I 18(100)Y83N
3 I I6 I ^ I \ I 18(35)113N
4 I A6 I ^ I ^ I 65Y116(3,1)Y98N
IN THE EXAMPLE, IN FIELD 1, OPERATION 146 COPIES TABLE 2 TO TABLE 3. NEXT
A 0 IS STORED INTO TABLE 1 (THE ANSWER TABLE) TO PRIME THE SORT. THE NUMBER OF
ROWS IS SPECIFIED AS 100 IN FIELD 2 AND FIELD 3 SETS IN TYPE CODE 35. FIELD 3
EXECUTES THE SORT SETTING IN TABLE 3 AS SOURCE BEGINNING AT ROW 1. TABLE ONE
WILL CONTAIN THE SORTED ROW NUMBERS AND TABLE 3 WILL BE DESTROYED BY THE SORT.
.PA
OPERATION 113 - TYPE CODE 36 - DISTRIBUTE AMOUNT IN FIELD TO A TABLE.
TYPE CODE 36 ON OPERATION 113 WORKS WITH OPERATION 98. FIRST AN ANSWER
(OR WORK) TABLE MUST BE SET UP BY STORING 0 INTO THE FIRST ROW OF IT. THEN
OPERATION 83 MUST SET UP THE LAST ROW AND OPERATIONS 81 AND 38 SET UP THE
TABLE AND BEGINNING ROW NUMBER TELLING WHERE THE DATA IS TO BE DISTRIBUTED TO.
TYPE CODE 36 MODIFIES OPERATION 113 TO MAKE OPERATION 98 DISTRIBUTE DATA
TO SEQUENTIAL ROWS OF A DESIGNATED TABLE. IF THE AMOUNT TO DISTRIBUTE DOES NOT
BRING THE TABLE TO 0, THERE WILL BE NO DISTRIBUTION ON THE LAST ROW, THAT ROW
NUMBER WILL BE PLACED IN MEMORY AS AN "I" VALUE, AND THE AMOUNT LEFT TO BE
DISTRIBUTED TO THE LAST ROW WILL BE PLACED IN THE FLOATING POINT REGISTER FOR
THE CURRENT FIELD. IF THE AMOUNT IN THE FIELD BRINGS THE TABLE TO 0, NO
NEGATIVE VALUES WILL GO INTO THE TABLE, THE FLOATING POINT REGISTER FOR THE
CURRENT FIELD ALONG WITH MEMORY WILL BE UNAFFECTED.
EXAMPLE:
---I---------I----------------------------I---I--------------------------
1 I I6 I ^ I \ I 40Y18(0)Y117(1,1)Y93Y103N
2 I I6 I ^ I \ I 18(10)Y83N
3 I I6 I ^ I \ I 18(36)Y113N
4 I I6 I CUSTOMER NUMBER^ I \ I 0Y81N
5 I D12.2 I AMOUNT OF PAYMENT^ I \ I 0Y116(0,1)Y98N
6 I I6 I ^ I \ I 104Y33Y143(0,8)Y38N
7 I D12.2 I ^ I \ I 13(7,5)Y99N
8 I I6 I TO CONTINUE,RTN, ELSE 1^ I ^ I 0Y33Y143(0,1)N
IN THE EXAMPLE, FIELD 1 SETS UP A SYSTEM WORK TABLE AS 1 AND STORES 0
INTO MEMORY. FIELD 2 SETS UP ROW 10 AS THE LAST ROW TO PROCESS WHILE FIELD 3
SETS IN THE TYPE CODE 36. FIELD 4 SETS THE NUMBER KEYED IN AS A TABLE NUMBER
TO DISTRIBUTE THE AMOUNT TO. THE AMOUNT KEYED INTO FIELD 5 WILL BE DISTRIBUTED
STARTING AT ROW 1 OF THE SPECIFIED TABLE. FIELD 6 TESTS MEMORY FOR 0 AND IF
THE TABLE WENT TO 0 A JUMP IS MADE TO FIELD 8 BECAUSE OF OPERATION 143. IF THE
TABLE DID NOT GO TO 0, THE RESIDUAL AMOUNT (WHICH WAS PLACED IN THE FLOATING
POINT REGISTER OF FIELD 5) IS MADE NEGATIVE AND ADDED TO THE LAST FIELD OF
DISTRIBUTION.
Gass Index