Seq # *Modification Id* Act
----------------------------+
00009 M01S00009.281l803 ---| COMMENT COPYRIGHT CONTROL DATA CORP. 1982.
Line S00001 Modification History
M01(Added by)
281l803
Seq # *Modification Id* Act
----------------------------+
00010 M01S00001.281l803 +++| COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00011 M00S00010.cueshel +++| RMSHELL SPACE 4,10
00012 M00S00011.cueshel +++| CUESHEL SPACE 4,10
00013 M00S00012.cueshel +++|*** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
00014 M00S00013.cueshel +++|*
00015 M00S00014.cueshel +++|* M. D. LEMBCKE. 81/10/30.
00016 M00S00015.cueshel +++|* P. A. GILLESBY. 84/10/15.
00017 M00S00016.cueshel +++|
00018 M00S00017.cueshel +++| SPACE 4,10
00019 M00S00018.cueshel +++|*** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
00020 M00S00019.cueshel +++|*
00021 M00S00020.cueshel +++|* *CUESHEL* IS DESIGNED TO ACCOMODATE MULTIPLE SHELL PROGRAMS,
00022 M00S00021.cueshel +++|* EACH SPECIFIED WITH A SEPARATE ENTRY POINT.
00023 M00S00022.cueshel +++|*
00024 M00S00023.cueshel +++|* FLAG = 1 IF RMSHELL
00025 M00S00024.cueshel +++|* FLAG = 2 IF CDSHELL
00026 M00S00025.cueshel +++|*
00027 M00S00026.cueshel +++|* WHEN A COMMAND IS DETECTED, THE COMMAND WILL BE MATCHED
00028 M00S00027.cueshel +++|* AGAINST A VALIDATED LIST. IF A MATCH IS FOUND,
00029 M00S00028.cueshel +++|* THE VALIDATION BITS WILL BE CHECKED TO ENSURE THE COMMAND
00030 M00S00029.cueshel +++|* IS VALID FOR THE SHELL PROGRAM SPECIFIED. IF VALID,
00031 M00S00030.cueshel +++|* THE COMMAND WILL BE ISSUED TO THE SYSTEM VIA *EXCST*
00032 M00S00031.cueshel +++|* (WITH A *$* PREFIX TO FORCE SYSTEM LIBRARY LOAD). IF
00033 M00S00032.cueshel +++|* NO MATCH IS FOUND BUT *CDSHELL* WAS SELECTED, THE
00034 M00S00033.cueshel +++|* COMMAND WILL STILL BE ISSUED TO THE SYSTEM.
00035 M00S00034.cueshel +++|* HOWEVER, IF NO MATCH IS FOUND AND *RMSHELL* WAS
00036 M00S00035.cueshel +++|* SELECTED, AN ERROR MESSAGE WILL BE ISSUED TO THE
00037 M00S00036.cueshel +++|* DAYFILE.
00038 M00S00037.cueshel +++|*
00039 M00S00038.cueshel +++|* THERE ARE FOUR ERRORS THAT WILL CAUSE THE PROGRAM TO
00040 M00S00039.cueshel +++|* TERMINATE. THE FIRST IS WHEN THE STATEMENT EXCEEDS SEVEN
00041 M00S00040.cueshel +++|* CHARACTERS. SECOND IS NO MATCH; WHERE THE USER IS
00042 M00S00041.cueshel +++|* UNAUTHORIZED TO USE THE STATEMENT AND/OR THE STATEMENT WAS
00043 M00S00042.cueshel +++|* NOT RECOGNIZED. THE THIRD IS WHEN THE COMMAND EXCEEDS
00044 M00S00043.cueshel +++|* 80 CHARACTERS AND THE FOURTH IS WHEN A TERMINATING
00045 M00S00044.cueshel +++|* DELIMITER IS NOT FOUND WITHIN THE COMMAND PARAMETERS.
00046 M00S00045.cueshel +++|*
00047 M00S00046.cueshel +++|*
00048 M00S00047.cueshel +++|* NOTES USB (LINE FOLLOWING CUE1) RETURNS THE LWA OF THE
00049 M00S00048.cueshel +++|* BUFFER IN REGISTER B7. THIS VALUE IS NEEDED WHEN
00050 M00S00049.cueshel +++|* REPACKING THE COMMAND. ANY MODIFICATIONS SHOULD
00051 M00S00050.cueshel +++|* AVOID USING B7.
00052 M00S00051.cueshel +++| SPACE 4,10
00053 M00S00052.cueshel +++|*** DAYFILE ERROR MESSAGES.
00054 M00S00053.cueshel +++|*
00055 M00S00054.cueshel +++|* * COMMAND KEYWORD TOO LONG.* THIS MESSAGE WILL BE
00056 M00S00055.cueshel +++|* ISSUED WHEN THE COMMAND EXCEEDS SEVEN CHARACTERS.
00057 M00S00056.cueshel +++|*
Line S00057 Modification History
M01(Removed by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00058 M01S00057.ns2728 ---|* * UNAUTHORIZED COMMAND.* THE USER IS LIMITED
00059 M01S00058.ns2728 ---|* TO WHICH COMMANDS MAY BE USE. THE MESSAGE IS SENT WHENEVER
00060 M01S00059.ns2728 ---|* THE COMMAND IS LESS THAN EIGHT CHARACTERS AND DOES
00061 M01S00060.ns2728 ---|* NOT MATCH AGAINST THE VALIDATED LIST.
Line S00001 Modification History
M01(Added by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00062 M01S00001.ns2728 +++|* * INCORRECT COMMAND.* THIS MESSAGE IS ISSUED IF ONE OF THE
00063 M01S00002.ns2728 +++|* *CUESHEL* ENTRY POINTS IS EXECUTED AS A COMMAND RATHER THAN
00064 M01S00003.ns2728 +++|* AS A SHELL PROCESSOR.
00065 M00S00061.cueshel +++|*
Line S00062 Modification History
M01(Removed by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00066 M01S00062.ns2728 ---|* * INPUT LINE TOO LONG.* THIS MESSAGE WILL BE PRINTED TO THE
Line S00004 Modification History
M01(Added by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00067 M01S00004.ns2728 +++|* * INPUT LINE TOO LONG.* THIS MESSAGE WILL BE ISSUED TO THE
00068 M00S00063.cueshel +++|* DAYFILE WHEN THE COMMAND IS GREATER THAN 80 CHARACTERS.
00069 M00S00064.cueshel +++|*
00070 M00S00065.cueshel +++|* * NO MATCHING DELIMITER.* THIS MESSAGE WILL BE
00071 M00S00066.cueshel +++|* ISSUED WHENEVER A DOLLAR SIGN ($) APPEARS AS A
00072 M00S00067.cueshel +++|* DELIMITER AND AN ENDING DELIMITER IS NOT FOUND.
Line S00005 Modification History
M01(Added by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00073 M01S00005.ns2728 +++|*
00074 M01S00006.ns2728 +++|* * UNAUTHORIZED COMMAND.* THE USER IS AUTHORIZED TO EXECUTE
00075 M01S00007.ns2728 +++|* ONLY A LIMITED SUBSET OF COMMANDS. THIS MESSAGE IS ISSUED
00076 M01S00008.ns2728 +++|* WHENEVER THE COMMAND IS LESS THAN EIGHT CHARACTERS AND DOES
00077 M01S00009.ns2728 +++|* NOT MATCH AGAINST THE VALIDATED LIST (*RMSHELL*), OR MATCHES
00078 M01S00010.ns2728 +++|* AN ENTRY IN THE LIST WHICH IS NOT AUTHORIZED FOR THE ENTRY
00079 M01S00011.ns2728 +++|* POINT IN USE (*CDSHELL* OR *RMSHELL*).
00080 M00S00068.cueshel +++|
00081 M00S00069.cueshel +++| SPACE 4,10
00082 M00S00070.cueshel +++|*** COMMON DECKS.
00083 M00S00071.cueshel +++|
00084 M00S00072.cueshel +++|*CALL COMCCMD
00085 M00S00073.cueshel +++|*CALL COMCMAC
00086 M00S00074.cueshel +++| TITLE MAIN PROGRAM.
00087 M00S00075.cueshel +++|
00088 M00S00076.cueshel +++| ORG 111B
00089 M00S00077.cueshel +++| FWA BSS 0
00090 M00S00078.cueshel +++| CDSHELL SX7 2 SET (X7) TO 2 IF *CDSHELL* PROGRAM
00091 M00S00079.cueshel +++| EQ CUESHEL ENTER MAIN PROGRAM
00092 M00S00080.cueshel +++|
00093 M00S00081.cueshel +++| RMSHELL SX7 1 SET (X7) TO 1 IF *RMSHELL* PROGRAM
00094 M00S00082.cueshel +++|* EQ CUESHEL ENTER MAIN PROGRAM
00095 M00S00083.cueshel +++| SPACE 4,10
00096 M00S00084.cueshel +++| CUESHEL SA7 SHELFLG SAVE VALUE
00097 M00S00085.cueshel +++| SB1 1
Line S00086 Modification History
M01(Removed by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00098 M01S00086.ns2728 ---| SA2 CCDR FWA OF PACKED DATA = RA + 70
Line S00012 Modification History
M01(Added by)
ns2728
Seq # *Modification Id* Act
----------------------------+
00099 M01S00012.ns2728 +++| GETSHC USBB CHECK SHELL CONTROLS
00100 M01S00013.ns2728 +++| SA1 USBB
00101 M01S00014.ns2728 +++| LX1 59-11
00102 M01S00015.ns2728 +++| NG X1,CUE0 IF EXECUTING AS A SHELL
00103 M01S00016.ns2728 +++| MESSAGE CUED,0,R * INCORRECT COMMAND.*
00104 M01S00017.ns2728 +++| ABORT
00105 M01S00018.ns2728 +++|
00106 M01S00019.ns2728 +++| CUE0 SA2 CCDR FWA OF PACKED DATA = RA + 70
00107 M00S00087.cueshel +++| NZ X2,CUE1 IF INPUT PRESENT
00108 M00S00088.cueshel +++| RJ GII GET INTERACTIVE INPUT
Line S00089 Modification History
M01(Removed by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00109 M01S00089.cuesh3 ---| EQ B7,B1,CUE23 IF NO INPUT
Line S00001 Modification History
M01(Added by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00110 M01S00001.cuesh3 +++| EQ B7,B1,CUE22 IF NO INPUT
00111 M00S00090.cueshel +++|
00112 M00S00091.cueshel +++|* UNPACK INPUT STRING INTO BUFFER. THEN CHECK FIRST NON-BLANK
00113 M00S00092.cueshel +++|* CHARACTER. IF IT IS A $, REPLACE IT WITH A BLANK.
00114 M00S00093.cueshel +++|
00115 M00S00094.cueshel +++| CUE1 SB2 CCDR
00116 M00S00095.cueshel +++| RJ USB UNPACKS 1 CHARACTER/WORD RIGHT JUSTIFIED
00117 M00S00096.cueshel +++| SB3 -1
00118 M00S00097.cueshel +++| SB5 B7-USBB+1 MAXIMUM CHARACTER INDEX
00119 M00S00098.cueshel +++| CUE2 SB3 B3+1
00120 M00S00099.cueshel +++| SA2 USBB+B3
Line S00100 Modification History
M01(Removed by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00121 M01S00100.cuesh3 ---| GE B3,B5,CUE23 IF INPUT IS ALL BLANKS
Line S00002 Modification History
M01(Added by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00122 M01S00002.cuesh3 +++| GE B3,B5,CUE22 IF INPUT IS ALL BLANKS
00123 M00S00101.cueshel +++| SX3 X2-1R
00124 M00S00102.cueshel +++| ZR X3,CUE2 IF A BLANK
00125 M00S00103.cueshel +++| SX3 X2-1R$
00126 M00S00104.cueshel +++| SB3 B3-1
00127 M00S00105.cueshel +++| NZ X3,CUE4 IF NOT *$*
00128 M00S00106.cueshel +++| SX6 1R
00129 M00S00107.cueshel +++| SA6 A2+ REPLACE *$* WITH BLANK
00130 M00S00108.cueshel +++|
00131 M00S00109.cueshel +++|* CHECK FOR EXISTING TERMINATOR TO DETERMINE IF ONE
00132 M00S00110.cueshel +++|* MUST BE ADDED.
00133 M00S00111.cueshel +++|
00134 M00S00112.cueshel +++| CUE4 SB3 B3+1
00135 M00S00113.cueshel +++| SA2 USBB+B3 GET NEXT CHARACTER
00136 M00S00114.cueshel +++| GE B3,B5,CUE5 IF AT END OF COMMAND
00137 M00S00115.cueshel +++| SX3 X2-1R)
00138 M00S00116.cueshel +++| ZR X3,CUE8 IF TERMINATOR FOUND
00139 M00S00117.cueshel +++| SX3 X2-1R.
00140 M00S00118.cueshel +++| ZR X3,CUE8 IF TERMINATOR FOUND
00141 M00S00119.cueshel +++| SX3 X2-1R$
00142 M00S00120.cueshel +++| ZR X3,CUE6 IF *$* DELIMITER FOUND
00143 M00S00121.cueshel +++| EQ CUE4 CHECK NEXT CHARACTER
00144 M00S00122.cueshel +++|
00145 M00S00123.cueshel +++| CUE5 SA5 RI
00146 M00S00124.cueshel +++| ZR X5,CUE8 IF INPUT RECEIVED FROM SYSTEM
00147 M00S00125.cueshel +++| SX6 1R. APPEND *.* TO INTERACTIVE INPUT
00148 M00S00126.cueshel +++| SB7 B7+B1
00149 M00S00127.cueshel +++| SA6 B7
00150 M00S00128.cueshel +++| EQ CUE8 PACK COMMAND
00151 M00S00129.cueshel +++|
00152 M00S00130.cueshel +++|* LOOK FOR MATCHING *$*.
00153 M00S00131.cueshel +++|
00154 M00S00132.cueshel +++| CUE6 SB3 B3+1
00155 M00S00133.cueshel +++| SA2 USBB+B3 CHECK NEXT CHARACTER
00156 M00S00134.cueshel +++| LE B3,B5,CUE7 IF NOT END OF COMMAND
00157 M00S00135.cueshel +++| SX7 CUEC *NO MATCHING DELIMITER.*
00158 M00S00136.cueshel +++| SA5 RI
00159 M00S00137.cueshel +++| ZR X5,CUE15 IF INPUT RECEIVED FROM SYSTEM
00160 M00S00138.cueshel +++| SX6 1R. APPEND *.* TO INTERACTIVE INPUT
00161 M00S00139.cueshel +++| SB7 B7+B1
00162 M00S00140.cueshel +++| SA6 B7
00163 M00S00141.cueshel +++| EQ CUE15 SET ERROR AND COMPLETE
00164 M00S00142.cueshel +++|
00165 M00S00143.cueshel +++| CUE7 SX3 X2-1R$
00166 M00S00144.cueshel +++| ZR X3,CUE4 IF MATCHING DELIMITER FOUND
00167 M00S00145.cueshel +++| EQ CUE6 CHECK NEXT CHARACTER
00168 M00S00146.cueshel +++|
Line S00147 Modification History
M01(Removed by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00169 M01S00147.cuesh3 ---|* PACK TOGETHER THE COMMAND AND CHECK FOR *BYE*.
Line S00003 Modification History
M01(Added by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00170 M01S00003.cuesh3 +++|* PACK COMMAND TOGETHER.
00171 M00S00148.cueshel +++|
00172 M00S00149.cueshel +++| CUE8 SB6 B0+ SET NO ERROR
00173 M00S00150.cueshel +++| SA2 CTRLC
00174 M00S00151.cueshel +++| BX3 X3-X3
00175 M00S00152.cueshel +++| SB3 0 SET CHARACTER COUNTER
00176 M00S00153.cueshel +++| SB4 7 SET MAXIMUM CHARACTERS PER COMMAND
00177 M00S00154.cueshel +++| CUE9 SA2 A2+1
00178 M00S00155.cueshel +++| SX6 X2-1R
00179 M00S00156.cueshel +++| ZR X6,CUE9 IF CHARACTER = BLANK
00180 M00S00157.cueshel +++| SX6 X2-1R+
00181 M00S00158.cueshel +++| PL X6,CUE10 IF SEPARATOR FOUND
00182 M00S00159.cueshel +++| SB3 B3+1
00183 M00S00160.cueshel +++| SB4 B4-1 DECREASE CHARACTER COUNT
00184 M00S00161.cueshel +++| SX7 CUEA *COMMAND KEYWORD TOO LONG.*
00185 M00S00162.cueshel +++| NG B4,CUE15 IF MAXIMUM LENGTH EXCEEDED
00186 M00S00163.cueshel +++| LX3 6
00187 M00S00164.cueshel +++| BX3 X3+X2 APPEND CHARACTER TO COMMAND
00188 M00S00165.cueshel +++| EQ CUE9 GET NEXT CHARACTER
00189 M00S00166.cueshel +++|
00190 M00S00167.cueshel +++| CUE10 SB4 10 LEFT JUSTIFY CONTROL STATEMENT
00191 M00S00168.cueshel +++| SX2 6
00192 M00S00169.cueshel +++| SX4 B4-B3 CHARACTER POSITIONS TO SHIFT
00193 M00S00170.cueshel +++| IX4 X4*X2 BITS TO SHIFT
00194 M00S00171.cueshel +++| SB4 X4
00195 M00S00172.cueshel +++| LX6 X3,B4
00196 M00S00173.cueshel +++| SA6 PCS
Line S00174 Modification History
M01(Removed by)
cuesh3
Seq # *Modification Id* Act
----------------------------+
00197 M01S00174.cuesh3 ---| SA5 BYECMD
00198 M01S00175.cuesh3 ---| IX5 X5-X6
00199 M01S00176.cuesh3 ---| ZR X5,CUE22 IF USER ISSUED *BYE* COMMAND
00200 M00S00177.cueshel +++|
00201 M00S00178.cueshel +++|* DO A BINARY TREE SEARCH TO FIND STATEMENT WITHIN THE LIST.
00202 M00S00179.cueshel +++|
00203 M00S00180.cueshel +++| SX3 CMDSL LENGTH OF LIST TO CHECK (MAX)
00204 M00S00181.cueshel +++| SX0 B1
00205 M00S00182.cueshel +++| IX4 X3+X0 ADD IN ROUND UP FACTOR
00206 M00S00183.cueshel +++| AX4 1 X4 = (MAX/2) ROUNDED UP
00207 M00S00184.cueshel +++| BX5 X4 X5 = CURRENT POSITION IN LIST (CUR)
00208 M00S00185.cueshel +++| SA1 PCS X1 = PACKED CONTROL WORD
00209 M00S00186.cueshel +++| CUE11 SA2 X5+CMDS GET COMMAND AND VALIDATION BITS
00210 M00S00187.cueshel +++| MX0 42 MASK OFF COMMAND ONLY
00211 M00S00188.cueshel +++| BX2 X0*X2
00212 M00S00189.cueshel +++| IX2 X2-X1
00213 M00S00190.cueshel +++| IX4 X3-X5 HOW MANY POSITIONS LEFT TO CHECK (MAX-CUR)
00214 M00S00191.cueshel +++| ZR X2,CUE14 IF COMMAND MATCH FOUND IN TABLE
00215 M00S00192.cueshel +++| NZ X4,CUE12 IF MORE ENTRIES IN TABLE TO CHECK
00216 M00S00193.cueshel +++| SB3 2
00217 M00S00194.cueshel +++| SA2 SHELFLG
00218 M00S00195.cueshel +++| SB4 X2
00219 M00S00196.cueshel +++| EQ B3,B4,CUE16 IF *CDSHELL* AND NOT IN TABLE
00220 M00S00197.cueshel +++| SX7 CUEB *UNAUTHORIZED COMMAND.*
00221 M00S00198.cueshel +++| EQ CUE15 IF ERROR
00222 M00S00199.cueshel +++| CUE12 SX0 B1
00223 M00S00200.cueshel +++| IX4 X4+X0 ADD IN ROUND-UP FACTOR
00224 M00S00201.cueshel +++| AX4 1 (MAX-CUR)/2 HALF THE AMOUNT LEFT TO CHECK
00225 M00S00202.cueshel +++| PL X2,CUE13 IF POSITIVE, SKIPPED AHEAD TOO FAR
00226 M00S00203.cueshel +++| IX5 X5+X4 SEARCH AHEAD CUR+((MAX-CUR)/2)
00227 M00S00204.cueshel +++| EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST
00228 M00S00205.cueshel +++|
00229 M00S00206.cueshel +++| CUE13 BX3 X5 NUMBER COMMANDS LEFT TO CHECK (MAX=CUR)
00230 M00S00207.cueshel +++| IX5 X5-X4 SEARCH BACKWARDS HALFWAY OF WHAT IS LEFT
00231 M00S00208.cueshel +++| EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST
00232 M00S00209.cueshel +++|
00233 M00S00210.cueshel +++|* DETERMINE IF COMMAND IS VALIDATED FOR THE SHELL PROGRAM
00234 M00S00211.cueshel +++|* SPECIFIED.
00235 M00S00212.cueshel +++|
00236 M00S00213.cueshel +++| CUE14 SA2 A2 RESET COMMAND AT CURRENT POSITION
00237 M00S00214.cueshel +++| SA3 SHELFLG RETRIEVE SHELL FLAG
00238 M00S00215.cueshel +++| BX2 X3*X2
00239 M00S00216.cueshel +++| NZ X2,CUE16 IF VALID COMMAND
00240 M00S00217.cueshel +++| SX7 CUEB *UNAUTHORIZED COMMAND.*
00241 M00S00218.cueshel +++|
00242 M00S00219.cueshel +++|* STORE APPROPRIATE ERROR MESSAGE AND SET ERROR FLAG.
00243 M00S00220.cueshel +++|
00244 M00S00221.cueshel +++| CUE15 SA7 ERRM
00245 M00S00222.cueshel +++| SB6 1
00246 M00S00223.cueshel +++|
00247 M00S00224.cueshel +++|* REPACK COMMAND WITH *$* PREFIX AND CALL *EXCST*.
00248 M00S00225.cueshel +++|
00249 M00S00226.cueshel +++| CUE16 SA1 CTRLC-1 B7 = LWA IN *USBB* (SET BY *COMCUSB*)
Line S00227 Modification History
M01(Removed by)
cuesh1
Seq # *Modification Id* Act
----------------------------+
00250 M01S00227.cuesh1 ---| SB4 B0+ B4 = COUNT NUMBER OF WORDS REPACKED
Line S00001 Modification History
M01(Added by)
cuesh1
Seq # *Modification Id* Act
----------------------------+
00251 M01S00001.cuesh1 +++| SB4 B0 B4 = COUNT OF WORDS REPACKED
00252 M01S00002.cuesh1 +++| SB2 B0
00253 M00S00228.cueshel +++| CUE17 SX6 B0+ INITIALIZE EMPTY WORD
00254 M00S00229.cueshel +++| SB3 10 B3 = NUMBER CHARACTERS PER WORD (0-9)
00255 M00S00230.cueshel +++| CUE18 SA1 A1+B1 GET NEXT CHARACTER
Line S00003 Modification History
M01(Added by)
cuesh1
Seq # *Modification Id* Act
----------------------------+
00256 M01S00003.cuesh1 +++| SX3 X1-1R$
00257 M01S00004.cuesh1 +++| ZR X3,CUE18.1 IF CHARACTER IS *$*
00258 M01S00005.cuesh1 +++| NZ B2,CUE18.1 IF HAVE FOUND FIRST NON-BLANK
00259 M01S00006.cuesh1 +++| SX3 X1-1R
00260 M01S00007.cuesh1 +++| ZR X3,CUE18 IF CHARACTER IS BLANK
00261 M01S00008.cuesh1 +++| SB2 1 SET B2 TO INDICATE FIRST NON-BLANK