SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 1 SDEC MAC 27-MAR-74 09:33 ACCUMULATOR DEFINITIONS 1 TITLE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. 2 SUBTTL ACCUMULATOR DEFINITIONS 3 4 400000' TWOSEG 5 6 000001 VCODE==1 7 000002 VMAJOR==2 8 000003 VMINOR==3 9 000062 VEDIT==62 10 11 12 000000 T0==0 ;TEMPORARY ACS FOR LOCAL USE 13 000001 T1==1 14 000002 T2==2 15 000003 T3==3 16 000004 T4==4 17 000005 T5==5 18 000006 G1==6 ;GLOBALS FOR PASSING ARGS BETWEEN S/R'S 19 000007 G2==7 20 000010 G3==10 ;COUNT ON LINE 21 000011 A1==11 ;ARITHMETIC REGISTERS 22 000012 A2==12 23 000013 A3==13 24 000014 A4==14 25 000015 PS1==15 ;STACK POINTERS 26 000016 PS2==16 27 000017 PSB==17 28 000016 L==16 ;LINK REGISTER 29 000011 F1==A1 ;FLAGS NEEDED DURING DECODING 30 000012 F2==A2 31 000014 T6==A4 ;EXTRA TEMP NEEDED DURING DECODING 32 33 INTERN .JBVER 34 000137 .JBVER==137 35 000137 LOC .JBVER 36 000137 1 002 03 000062 BYTE (3)VCODE(9)VMAJOR(6)VMINOR(18)VEDIT 37 38 39 000000' RELOC 0 40 400000' RELOC 400000 41 42 43 44 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 2 SDEC MAC 27-MAR-74 09:33 INITIALISATION 45 SUBTTL INITIALISATION 46 47 400000' 047 00 0 00 000000 START: RESET 48 400001' 200 17 0 00 401541' MOVE PSB, [IOWD 100, SUBSTK] 49 50 400002' 402 00 0 00 000000' SETZM VARTAB ;ZERO VARTAB TO IMAG 51 400003' 200 00 0 00 401542' MOVE T0, [XWD VARTAB,VARTAB+1] 52 400004' 251 00 0 00 000167' BLT T0, S1-1 53 54 OUTSTR [ASCIZ /SCAT (26-MAR-74) READY 55 56 400005' 051 03 0 00 401543' /] 57 58 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 3 SDEC MAC 27-MAR-74 09:33 NEW COMMAND INITIALISATION 59 SUBTTL NEW COMMAND INITIALISATION 60 61 400006' 402 00 0 00 000170' NEWCOM: SETZM S1 ;ZERO S1 TO WFROM 62 400007' 200 00 0 00 401551' MOVE T0, [XWD S1, S1+1] 63 400010' 251 00 0 00 000473' BLT T0, WFROM 64 400011' 400 10 0 00 000010 SETZ G3, G3 ;ZERO LINE COUNT 65 400012' 200 11 0 00 401552' MOVE F1, [23,,23] ;SET CHECK FLAGS 66 400013' 255 17 0 00 400014' JFCL 17, .+1 ;CLEAR ERROR FLAGS 67 68 400014' 200 15 0 00 401553' MOVE PS1, [IOWD 100, S1] ;SET UP STACK POINTERS 69 400015' 200 16 0 00 401554' MOVE PS2, [IOWD 100, S2] 70 400016' 200 17 0 00 401541' MOVE PSB, [IOWD 100, SUBSTK] 71 72 400017' 051 01 0 00 401555' OUTCHR ["*"] ;INDICATE READY 73 400020' 271 10 0 00 000001 ADDI G3, 1 ;POSITION ON LINE 74 75 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 4 SDEC MAC 27-MAR-74 09:33 INPUT AND DECODING 76 SUBTTL INPUT AND DECODING 77 78 400021' 260 17 0 00 401053' INNOC: PUSHJ PSB, GETCHR ;HERE IF NO CHAR READY 79 400022' INMITC: ;HERE IF ALREADY HAVE CHAR 80 400022' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 81 400023' 254 00 0 00 400030' JRST .+5 ;NO 82 400024' 301 00 0 00 000101 CAIL T0, "A" ;IS IT A LETTER? 83 400025' 303 00 0 00 000132 CAILE T0, "Z" 84 400026' 334 00 0 00 000000 SKIPA ;NO 85 400027' 254 00 0 00 400065' JRST LETTER ;YES A LETTER 86 87 400030' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 88 400031' 254 00 0 00 400034' JRST .+3 ;NO 89 400032' 306 00 0 00 000050 CAIN T0, "(" ;COMPLEX NO.? 90 400033' 254 00 0 00 400072' JRST CNUMBR ;YES 91 92 400034' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 93 400035' 254 00 0 00 400046' JRST .+9 ;NO 94 400036' 302 00 0 00 000052 CAIE T0, "*" ;AN OPERATOR? 95 400037' 306 00 0 00 000057 CAIN T0, "/" 96 400040' 254 00 0 00 400077' JRST OPR ;YES *,/ 97 400041' 302 00 0 00 000053 CAIE T0, "+" 98 400042' 306 00 0 00 000055 CAIN T0, "-" 99 400043' 254 00 0 00 400077' JRST OPR ;YES +,- 100 400044' 306 00 0 00 000136 CAIN T0, "^" 101 400045' 254 00 0 00 400077' JRST OPR ;YES ^ 102 400046' 606 00 0 00 777626 TRNN T0, 777626 103 400047' 254 00 0 00 400077' JRST OPR 104 105 400050' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 106 400051' 254 00 0 00 400054' JRST .+3 ;NO 107 400052' 306 00 0 00 000137 CAIN T0, "_" ;ASSIGNMENT? 108 400053' 254 00 0 00 400120' JRST ASSIGN 109 400054' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 110 400055' 254 00 0 00 400060' JRST .+3 ;NO 111 400056' 306 00 0 00 000133 CAIN T0, "[" ;BRACE? 112 400057' 254 00 0 00 400115' JRST BRACE ;YES 113 114 400060' 260 17 0 00 401346' PUSHJ PSB, SKCHCK ;IS THIS ONE WANTED 115 400061' 254 00 0 00 400064' JRST .+3 116 400062' 306 00 0 00 000135 CAIN T0, "]" ;LAST CHANCE 117 400063' 254 00 0 00 400123' JRST BACBRA ;WHEW 118 119 400064' 254 00 0 00 400143' JRST PROCIG ;NAUGHTY, NAUGHTY 120 121 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 5 SDEC MAC 27-MAR-74 09:33 PROCESS EACH TYPE OF INPUT 122 SUBTTL PROCESS EACH TYPE OF INPUT 123 124 ; A VARIABLE NAME ********** 125 126 400065' 260 17 0 00 401066' LETTER: PUSHJ PSB, CONST ;GET ITS VALUE OR STACK IT 127 400066' 261 16 0 00 000007 PUSH PS2, G2 ;NO ASSIGNMENT 128 400067' 261 16 0 00 000006 PUSH PS2, G1 ;ASSIGNMENT - IMAG PART 129 400070' 200 11 0 00 401556' MOVE F1, [54,,54] 130 400071' 254 00 0 00 400022' JRST INMITC ;BACK FOR NEXT PROCESS 131 132 ; A COMPLEX PAIR ********** 133 134 400072' 260 17 0 00 401142' CNUMBR: PUSHJ PSB, RCPAIR ;GET ITS VALUE 135 400073' 261 16 0 00 000006 PUSH PS2, G1 ;REAL PART 136 400074' 261 16 0 00 000007 PUSH PS2, G2 ;IMAG PART 137 400075' 200 11 0 00 401557' MOVE F1, [44,,44] 138 400076' 254 00 0 00 400021' JRST INNOC ;NEXT ONE 139 140 ; AN OPERATOR ********** 141 142 400077' 603 15 0 00 000077 OPR: TLNE PS1, 77 ;IS S1 EMPTY? 143 400100' 254 00 0 00 400104' JRST NOTEMP ;NO 144 400101' 261 15 0 00 000000 FALLEV: PUSH PS1, T0 ;YES OR LEVEL TEST FALSE 145 400102' 200 11 0 00 401552' MOVE F1, [23,,23] 146 400103' 254 00 0 00 400111' JRST OPRET 147 400104' 260 17 0 00 401312' NOTEMP: PUSHJ PSB, LEV ;IS CHAR LEV .LE. TOP S1 148 400105' 254 00 0 00 400101' JRST FALLEV ;NO 149 400106' 262 15 0 00 000001 POP PS1, T1 ;YES 150 400107' 261 16 0 00 000001 PUSH PS2, T1 151 400110' 254 00 0 00 400077' JRST OPR ;TRY AGAIN 152 400111' 602 00 0 00 777626 OPRET: TRNE T0, 777626 153 400112' 254 00 0 00 400021' JRST INNOC 154 400113' 201 00 0 00 000133 MOVEI T0, "[" 155 400114' 254 00 0 00 400115' JRST BRACE 156 157 ;AN OPENING BRACE OR ASSIGNMENT ********** 158 159 400115' 261 15 0 00 000000 BRACE: PUSH PS1, T0 ;PUT IT AWAY 160 400116' 200 11 0 00 401560' MOVE F1, [63,,63] 161 400117' 254 00 0 00 400021' JRST INNOC ;GET NEXT ONE 162 163 ; ASSIGNMENT ********** 164 165 400120' 261 15 0 00 000000 ASSIGN: PUSH PS1, T0 ;PUT ON STACK 166 400121' 200 11 0 00 401552' MOVE F1, [23,,23] 167 400122' 254 00 0 00 400021' JRST INNOC ;RETURN 168 169 ; A CLOSING BRACE ********** 170 171 400123' 200 11 0 00 401557' BACBRA: MOVE F1, [44,,44] 172 400124' 607 15 0 00 000077 BACB1: TLNN PS1, 77 ;IS S1 EMPTY? 173 400125' 254 00 0 00 400133' JRST UNB ;YES 174 400126' 262 15 0 00 000001 POP PS1, T1 ;NO SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 5-1 SDEC MAC 27-MAR-74 09:33 PROCESS EACH TYPE OF INPUT 175 400127' 306 01 0 00 000133 CAIN T1, "[" ;IS IT [ 176 400130' 254 00 0 00 400021' JRST INNOC ;YES 177 400131' 261 16 0 00 000001 PUSH PS2, T1 ;NO - PUT IT ON S2 178 400132' 254 00 0 00 400124' JRST BACB1 ;TRY AGAIN 179 400133' 505 10 0 00 000011 UNB: HRLI G3, 9 ;UNB PARENTHESES 180 400134' 271 10 0 00 000001 ADDI G3, 1 181 400135' 254 00 0 00 400751' JRST ERRH 182 400136' 505 10 0 00 000011 UNB1: HRLI G3, 9 ;ENTER ERROR HANDLER 183 400137' 550 05 0 00 000010 HRRZ T5, G3 ; AT ERPRNT 184 400140' 554 04 0 00 000010 HLRZ T4, G3 185 400141' 200 03 0 00 401561' MOVE T3, [-1] 186 400142' 254 00 0 00 400757' JRST ERPRNT 187 188 ; HERE FOR OTHER CHARACTERS ********** 189 190 400143' 306 00 0 00 000012 PROCIG: CAIN T0, 12 ;IS IT 191 400144' 254 00 0 00 400157' JRST POSFIN ;YES 192 193 400145' 306 00 0 00 000040 CAIN T0, " " ;IGNORE BLANKS 194 400146' 254 00 0 00 400154' JRST BLPRC 195 196 400147' 306 00 0 00 000015 CAIN T0, 15 ;IGNORE CR IN ANTICIPATION 197 400150' 254 00 0 00 400021' JRST INNOC ; OF LF 198 199 400151' 505 10 0 00 000001 HRLI G3, 1 ;OTHER IS ILLEGAL 200 400152' 271 10 0 00 000001 ADDI G3, 1 201 400153' 254 00 0 00 400751' JRST ERRH ;JUMP TO ERROR HANDLER 202 203 400154' 242 11 0 00 777764 BLPRC: LSH F1, ^D-12 ;RESTORE FLAG 204 400155' 504 11 0 00 000011 HRL F1, F1 ; AND DUPLICATE 205 400156' 254 00 0 00 400021' JRST INNOC 206 207 ; HERE FOR END OF POSTFIX STRING ********** 208 209 400157' 607 15 0 00 000077 POSFIN: TLNN PS1, 77 ;S1 EMPTY 210 400160' 254 00 0 00 400166' JRST POSTR ;YES 211 400161' 262 15 0 00 000002 POP PS1, T2 ;NO TRANSFER S1 TO S2 212 400162' 306 02 0 00 000133 CAIN T2, "[" ;IF [ APPEARS IT 213 400163' 254 00 0 00 400136' JRST UNB1 ; IS UNBAL. 214 400164' 261 16 0 00 000002 PUSH PS2, T2 215 400165' 254 00 0 00 400157' JRST POSFIN ;TRY AGAIN 216 217 ; TRANSFER WHOLE STRING TO S1 218 ; IN REVERSE ORDER 219 220 221 400166' 607 16 0 00 000077 POSTR: TLNN PS2, 77 ;S2 EMPTY? 222 400167' 254 00 0 00 400173' JRST PROCES ;YES 223 400170' 262 16 0 00 000000 POP PS2, T0 ;EXCHANGE 224 400171' 261 15 0 00 000000 PUSH PS1, T0 225 400172' 254 00 0 00 400166' JRST POSTR 226 227 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 6 SDEC MAC 27-MAR-74 09:33 PROCESSING OF POLISH STRING 228 SUBTTL PROCESSING OF POLISH STRING 229 230 ; 231 ; NOW WE HAVE A POLISH STRING IN S1 TO EXECUTE 232 ; 233 400173' 400 01 0 00 000001 PROCES: SETZ T1, T1 ;ZERO ACS 0-14 234 400174' 200 00 0 00 401562' MOVE T0, [XWD T1, T2] 235 400175' 251 00 0 00 000014 BLT T0, A4 236 237 238 ; 239 ; PREPARE TO DO ARITHMETIC 240 ; 241 242 400176' 607 15 0 00 000077 TPOP: TLNN PS1, 77 ;S1 EMPTY? 243 400177' 254 00 0 00 400507' JRST RESOUT ;YES 244 400200' 262 15 0 00 000000 POP PS1, T0 ;GET TOP CHAR 245 246 400201' 306 00 0 00 000053 CAIN T0, "+" ;IS IT + 247 400202' 254 00 0 00 400222' JRST CPL 248 249 400203' 306 00 0 00 000055 CAIN T0, "-" ;IS IT - 250 400204' 254 00 0 00 400227' JRST CMIN 251 252 400205' 306 00 0 00 000057 CAIN T0, "/" ;IS IT / 253 400206' 254 00 0 00 400253' JRST CDIV 254 255 400207' 306 00 0 00 000052 CAIN T0, "*" ;IS IT * 256 400210' 254 00 0 00 400234' JRST CMUL 257 258 400211' 306 00 0 00 000136 CAIN T0, "^" ;IS IT ^ 259 400212' 254 00 0 00 400301' JRST CUP 260 261 400213' 306 00 0 00 000137 CAIN T0, "_" ;IS IT _ 262 400214' 254 00 0 00 400314' JRST CASS 263 264 400215' 550 01 0 00 000000 HRRZ T1, T0 265 400216' 306 01 0 00 000151 CAIN T1, 151 266 400217' 254 00 0 00 400337' JRST FUNCTH 267 268 269 400220' 261 16 0 00 000000 PUSH PS2, T0 ;MUST BE NO. 270 400221' 254 00 0 00 400176' JRST TPOP 271 272 273 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 7 SDEC MAC 27-MAR-74 09:33 DO ARITHMETIC 274 SUBTTL DO ARITHMETIC 275 276 ; DO ADDITION 277 278 400222' 260 17 0 00 401505' CPL: PUSHJ PSB, GET4 ;UNSTACK LAST VALUES 279 400223' 144 11 0 00 000013 FADR A1, A3 280 400224' 144 12 0 00 000014 FADR A2, A4 281 400225' 260 17 0 00 401512' PUSHJ PSB, STOR2 ;PUT BACK 282 400226' 254 00 0 00 400176' JRST TPOP 283 284 ; DO SUBTRACTION 285 286 400227' 260 17 0 00 401505' CMIN: PUSHJ PSB, GET4 ; UNSTACK LAST VALUES 287 400230' 154 11 0 00 000013 FSBR A1, A3 ; SUBTRACT 288 400231' 154 12 0 00 000014 FSBR A2, A4 289 400232' 260 17 0 00 401512' PUSHJ PSB, STOR2 ;RE-STORE 290 400233' 254 00 0 00 400176' JRST TPOP 291 292 ; DO MULTIPLICATION 293 294 400234' 260 17 0 00 401505' CMUL: PUSHJ PSB, GET4 295 400235' 200 01 0 00 000011 MOVE T1, A1 ;DO REAL PART 296 400236' 164 01 0 00 000013 FMPR T1, A3 297 400237' 200 02 0 00 000012 MOVE T2, A2 298 400240' 164 02 0 00 000014 FMPR T2, A4 299 400241' 154 01 0 00 000002 FSBR T1, T2 ;REAL PART IN T1 300 301 400242' 200 02 0 00 000012 MOVE T2, A2 ;DO IMAG PART 302 400243' 164 02 0 00 000013 FMPR T2, A3 303 400244' 200 03 0 00 000011 MOVE T3, A1 304 400245' 164 03 0 00 000014 FMPR T3, A4 305 400246' 144 02 0 00 000003 FADR T2, T3 ;IMAG PART IN T2 306 307 400247' 200 11 0 00 000001 MOVE A1, T1 ;PUT THEM AWAY 308 400250' 200 12 0 00 000002 MOVE A2, T2 309 400251' 260 17 0 00 401512' PUSHJ PSB, STOR2 310 400252' 254 00 0 00 400176' JRST TPOP 311 312 ; DO DIVISION 313 314 400253' 260 17 0 00 401505' CDIV: PUSHJ PSB, GET4 315 400254' 200 00 0 00 000013 MOVE T0, A3 ;GET DIVISOR 316 400255' 164 00 0 00 000013 FMPR T0, A3 ;SQUARE 317 400256' 200 01 0 00 000014 MOVE T1, A4 318 400257' 164 01 0 00 000014 FMPR T1, A4 ;SQUARE 319 400260' 144 00 0 00 000001 FADR T0, T1 ;ADD 320 321 400261' 200 01 0 00 000011 MOVE T1, A1 ;DO REAL PART 322 400262' 164 01 0 00 000013 FMPR T1, A3 323 400263' 200 02 0 00 000012 MOVE T2, A2 324 400264' 164 02 0 00 000014 FMPR T2, A4 325 400265' 144 01 0 00 000002 FADR T1, T2 ;REAL IN T1 326 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 7-1 SDEC MAC 27-MAR-74 09:33 DO ARITHMETIC 327 400266' 200 02 0 00 000012 MOVE T2, A2 ;DO IMAG PART 328 400267' 164 02 0 00 000013 FMPR T2, A3 329 400270' 200 03 0 00 000011 MOVE T3, A1 330 400271' 164 03 0 00 000014 FMPR T3, A4 331 400272' 154 02 0 00 000003 FSBR T2, T3 ;IMAG IN T2 332 333 400273' 174 01 0 00 000000 FDVR T1, T0 ;DIVIDE 334 400274' 174 02 0 00 000000 FDVR T2, T0 335 400275' 200 11 0 00 000001 MOVE A1, T1 ;AND PUT AWAY 336 400276' 200 12 0 00 000002 MOVE A2, T2 337 400277' 260 17 0 00 401512' PUSHJ PSB, STOR2 338 400300' 254 00 0 00 400176' JRST TPOP 339 340 ; DO EXPONENTIATION 341 342 400301' 260 17 0 00 401505' CUP: PUSHJ PSB, GET4 343 400302' 202 16 0 00 000503' MOVEM L, SAVL ;SAVE 16 344 400303' 201 16 0 00 000013 MOVEI L, A3 ;POINTER TO POWER 345 400304' 200 00 0 00 000011 MOVE T0, A1 ;BASE IN T0,T1 346 400305' 200 01 0 00 000012 MOVE T1, A2 347 400306' 260 17 0 00 000000* PUSHJ PSB, CEXP.3## ;SYSTEM ROUTINE 348 400307' 200 16 0 00 000503' MOVE L, SAVL ;RESTORE L 349 400310' 200 11 0 00 000000 MOVE A1, T0 ;RESULT IN T0,T1 350 400311' 200 12 0 00 000001 MOVE A2, T1 351 400312' 260 17 0 00 401512' PUSHJ PSB, STOR2 ;STORE 352 400313' 254 00 0 00 400176' JRST TPOP 353 354 ; DO ASSIGNMENT 355 356 400314' 260 17 0 00 401507' CASS: PUSHJ PSB, GET2 ;GET TWO VALUES 357 400315' 262 16 0 00 000001 POP PS2, T1 ;VAR NAME 358 400316' 260 17 0 00 401352' PUSHJ PSB, WR6STR ;WRITE O/P 359 400317' 476 00 0 00 000470' SETOM ASSFLG ;SET FLAG 360 400320' 211 06 0 00 000050 MOVNI G1, 50 ;COUNTER 361 362 400321' 200 00 0 06 000050' ASSLOP: MOVE T0, VARTAB+50(G1) ;SEARCH VARTAB 363 400322' 316 00 0 00 000001 CAMN T0, T1 ;FOR VARIABLE 364 400323' 254 00 0 00 400333' JRST ASSFND 365 400324' 322 00 0 00 400332' JUMPE T0, ASSNFD ;OR NULL 366 400325' 341 06 0 00 400321' AOJL G1, ASSLOP 367 368 400326' 201 05 0 00 000000 MOVEI T5, 0 ;ERROR IF OUT END 369 400327' 201 04 0 00 000007 MOVEI T4, 7 370 400330' 201 03 0 00 401561' MOVEI T3, [-1] 371 400331' 254 00 0 00 400757' JRST ERPRNT 372 373 400332' 202 01 0 06 000050' ASSNFD: MOVEM T1, VARTAB+50(G1) ;NEW VARIABLE 374 400333' 202 11 0 06 000120' ASSFND: MOVEM A1, REAL+50(G1) ;OLD " 375 400334' 202 12 0 06 000170' MOVEM A2, IMAG+50(G1) 376 400335' 260 17 0 00 401512' PUSHJ PSB, STOR2 377 400336' 254 00 0 00 400176' JRST TPOP 378 379 ; FUNCTION HANDLER SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 7-2 SDEC MAC 27-MAR-74 09:33 DO ARITHMETIC 380 381 382 400337' 260 17 0 00 401507' FUNCTH: PUSHJ PSB, GET2 383 384 400340' 316 00 0 00 401563' CAMN T0, ['MAG',,151] 385 400341' 254 00 0 00 400363' JRST MAG 386 400342' 316 00 0 00 401564' CAMN T0, ['ANG',,151] 387 400343' 254 00 0 00 400371' JRST ANG 388 400344' 316 00 0 00 401565' CAMN T0, ['SNH',,151] 389 400345' 254 00 0 00 400401' JRST SNH 390 400346' 316 00 0 00 401566' CAMN T0, ['TNH',,151] 391 400347' 254 00 0 00 400407' JRST TNH 392 400350' 316 00 0 00 401567' CAMN T0, ['CSH',,151] 393 400351' 254 00 0 00 400404' JRST CSH 394 400352' 316 00 0 00 401570' CAMN T0, ['CAR',,151] 395 400353' 254 00 0 00 400463' JRST CAR 396 400354' 316 00 0 00 401571' CAMN T0, ['POL',,151] 397 400355' 254 00 0 00 400476' JRST POL 398 399 400356' 260 17 0 00 401512' ERRFUN: PUSHJ PSB, STOR2 400 400357' 551 04 0 00 000012 HRRZI T4, 12 401 400360' 400 05 0 00 000005 SETZ T5, T5 402 400361' 200 03 0 00 401561' MOVE T3, [-1] 403 400362' 254 00 0 00 400757' JRST ERPRNT 404 405 400363' 266 16 0 00 000000* MAG: JSA L, CABS## 406 400364' 000000 000011 EXP A1 407 400365' 200 11 0 00 000000 MOVE A1, T0 408 400366' 201 12 0 00 000000 MOVEI A2, 0 409 400367' 260 17 0 00 401512' PUSHJ PSB, STOR2 410 400370' 254 00 0 00 400176' JRST TPOP 411 412 400371' 266 16 0 00 000000* ANG: JSA L, ATAN2## 413 400372' 320 00 0 00 000012 ARG A2 414 400373' 320 00 0 00 000011 ARG A1 415 400374' 164 00 0 00 401572' FMPR T0, [57.29577951] 416 400375' 200 11 0 00 000000 MOVE A1, T0 417 400376' 201 12 0 00 000000 MOVEI A2, 0 418 400377' 260 17 0 00 401512' PUSHJ PSB, STOR2 419 400400' 254 00 0 00 400176' JRST TPOP 420 421 400401' 260 17 0 00 400423' SNH: PUSHJ PSB, SINH 422 400402' 260 17 0 00 401512' PUSHJ PSB, STOR2 423 400403' 254 00 0 00 400176' JRST TPOP 424 425 426 400404' 260 17 0 00 400442' CSH: PUSHJ PSB, COSH 427 400405' 260 17 0 00 401512' PUSHJ PSB, STOR2 428 400406' 254 00 0 00 400176' JRST TPOP 429 430 431 400407' 200 13 0 00 000011 TNH: MOVE A3, A1 432 400410' 200 14 0 00 000012 MOVE A4, A2 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 7-3 SDEC MAC 27-MAR-74 09:33 DO ARITHMETIC 433 434 400411' 260 17 0 00 400423' PUSHJ PSB, SINH 435 400412' 250 13 0 00 000011 EXCH A3, A1 436 400413' 250 14 0 00 000012 EXCH A4, A2 437 400414' 260 17 0 00 400442' PUSHJ PSB, COSH 438 439 ;SINH IN A3,A4 440 ;COSH IN A1,A2 441 442 400415' 200 00 0 00 000013 MOVE T0, A3 443 400416' 200 01 0 00 000014 MOVE T1, A4 444 445 400417' 201 16 0 00 000011 MOVEI L, A1 446 400420' 260 17 0 00 000000* PUSHJ PSB, CFDM.0## 447 448 400421' 260 17 0 00 401512' PUSHJ PSB, STOR2 449 400422' 254 00 0 00 400176' JRST TPOP 450 451 452 400423' 266 16 0 00 000000* SINH: JSA L, CEXP## 453 400424' 000000 000011 EXP A1 454 400425' 200 02 0 00 000000 MOVE T2, T0 455 400426' 200 03 0 00 000001 MOVE T3, T1 456 457 400427' 164 11 0 00 401573' FMPR A1, [-1.0] 458 400430' 164 12 0 00 401573' FMPR A2, [-1.0] 459 460 400431' 266 16 0 00 400423* JSA L, CEXP## 461 400432' 000000 000011 EXP A1 462 463 400433' 154 02 0 00 000000 FSBR T2, T0 464 400434' 154 03 0 00 000001 FSBR T3, T1 465 466 400435' 202 02 0 00 000011 MOVEM T2, A1 467 400436' 202 03 0 00 000012 MOVEM T3, A2 468 469 400437' 174 11 0 00 401574' FDVR A1, [2.0] 470 400440' 174 12 0 00 401574' FDVR A2, [2.0] 471 472 400441' 263 17 0 00 000000 POPJ PSB, 473 474 475 400442' 266 16 0 00 400431* COSH: JSA L, CEXP## 476 400443' 000000 000011 EXP A1 477 400444' 200 02 0 00 000000 MOVE T2, T0 478 400445' 200 03 0 00 000001 MOVE T3, T1 479 480 400446' 164 11 0 00 401573' FMPR A1, [-1.0] 481 400447' 164 12 0 00 401573' FMPR A2, [-1.0] 482 483 400450' 200 02 0 00 000000 MOVE T2, T0 484 400451' 200 03 0 00 000001 MOVE T3, T1 485 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 7-4 SDEC MAC 27-MAR-74 09:33 DO ARITHMETIC 486 400452' 266 16 0 00 400442* JSA L, CEXP## 487 400453' 000000 000011 EXP A1 488 489 400454' 144 00 0 00 000002 FADR T0, T2 490 400455' 144 01 0 00 000003 FADR T1, T3 491 492 400456' 202 00 0 00 000011 MOVEM T0, A1 493 400457' 202 01 0 00 000012 MOVEM T1, A2 494 495 400460' 174 11 0 00 401574' FDVR A1, [2.0] 496 400461' 174 12 0 00 401574' FDVR A2, [2.0] 497 498 400462' 263 17 0 00 000000 POPJ PSB, 499 500 400463' 266 16 0 00 000000* CAR: JSA L, SIND## 501 400464' 320 00 0 00 000012 ARG A2 502 400465' 202 00 0 00 000005 MOVEM T0, T5 503 400466' 266 16 0 00 000000* JSA L, COSD## 504 400467' 320 00 0 00 000012 ARG A2 505 ;SIN IN T5, COS IN T0 506 400470' 164 00 0 00 000011 FMPR T0, A1 507 400471' 164 05 0 00 000011 FMPR T5, A1 508 509 400472' 202 00 0 00 000011 CARRET: MOVEM T0, A1 510 400473' 202 05 0 00 000012 MOVEM T5, A2 511 400474' 260 17 0 00 401512' PUSHJ PSB, STOR2 512 400475' 254 00 0 00 400176' JRST TPOP 513 514 400476' 266 16 0 00 400363* POL: JSA L, CABS## 515 400477' 000000 000011 EXP A1 516 400500' 202 00 0 00 000005 MOVEM T0, T5 517 400501' 266 16 0 00 400371* JSA L, ATAN2## 518 400502' 000000 000012 EXP A2 519 400503' 000000 000011 EXP A1 520 400504' 164 00 0 00 401572' FMPR T0, [57.29577951] 521 400505' 250 00 0 00 000005 EXCH T0, T5 522 400506' 254 00 0 00 400472' JRST CARRET 523 524 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 8 SDEC MAC 27-MAR-74 09:33 NOW OUTPUT RESULTS 525 SUBTTL NOW OUTPUT RESULTS 526 527 400507' 335 00 0 00 000470' RESOUT: SKIPGE ASSFLG ;NEED 'RESULT = ' 528 400510' 254 00 0 00 400514' JRST NUMPRT 529 530 400511' 200 01 0 00 401575' MOVE T1, [SIXBIT /RESULT/] 531 400512' 260 17 0 00 401352' PUSHJ PSB, WR6STR 532 400513' 260 17 0 00 401507' PUSHJ PSB, GET2 ;AND GET RESULTS 533 534 400514' 260 17 0 00 401472' NUMPRT: PUSHJ PSB, WCPAIR ;WRITE NUMBER 535 400515' 051 03 0 00 401540' OUTSTR CRLF 536 537 400516' 254 00 0 00 400006' JRST NEWCOM 538 539 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 9 SDEC MAC 27-MAR-74 09:33 SWITCH HANDLER 540 SUBTTL SWITCH HANDLER 541 542 400517' 200 00 0 00 401576' SWITCH: MOVE T0, [XWD T1, SAV] ;SAVE ACS 543 400520' 251 00 0 00 000500' BLT T0, SAV+4 544 545 400521' 260 17 0 00 401061' NSW: PUSHJ PSB, INSW ;GET SW CHAR 546 547 400522' 302 00 0 00 000033 CAIE T0, 33 ;ESCAPE OR 548 400523' 306 00 0 00 000175 CAIN T0, 175 ;ALTMODE - LAST SWITCH 549 400524' 254 00 0 00 400552' JRST LASTSW 550 400525' 306 00 0 00 000104 CAIN T0, "D" ;D - DUMP 551 400526' 254 00 0 00 400567' JRST DUMP 552 400527' 306 00 0 00 000105 CAIN T0, "E" ;E - EXIT 553 400530' 047 00 0 00 000012 EXIT 554 400531' 306 00 0 00 000122 CAIN T0, "R" ;R - RESTART COMMAND 555 400532' 254 00 0 00 400626' JRST RE 556 400533' 306 00 0 00 000121 CAIN T0, "Q" ;Q - QUERY ERRORS 557 400534' 254 00 0 00 400557' JRST QUERY 558 400535' 306 00 0 00 000114 CAIN T0, "L" ;L - LIST ERRORS AND IMPLICIT R 559 400536' 254 00 0 00 400617' JRST ERRSW 560 400537' 306 00 0 00 000103 CAIN T0, "C" ;C - CLEAR ERROR COUNT 561 400540' 254 00 0 00 400606' JRST ECLR 562 400541' 306 00 0 00 000110 CAIN T0, "H" ;H - HELP 563 400542' 254 00 0 00 400612' JRST HELP 564 400543' 306 00 0 00 000130 CAIN T0, "X" ;X SWITCH - DELETE VARIABLES 565 400544' 254 00 0 00 400630' JRST DELVAR 566 567 ; UNRECOGNIZED SWITCH ********** 568 569 OUTSTR [ASCIZ / 570 400545' 051 03 0 00 401577' UNRECOGNIZED SWITCH /] 571 400546' 051 01 0 00 000000 OUTCHR T0 572 400547' 541 10 0 00 000044 HRRI G3, ^D36 573 400550' 051 03 0 00 401604' NSMES: OUTSTR [ASCIZ /, NEXT SWITCH $/] 574 400551' 254 00 0 00 400521' JRST NSW 575 576 ; LAST SWITCH ********** 577 578 LASTSW: OUTSTR [ASCIZ / 579 CONTINUE, NOTHING HAS BEEN CHANGED 580 400552' 051 03 0 00 401610' /] 581 400553' 200 00 0 00 401620' LASTNO: MOVE T0, [XWD SAV, T1] 582 400554' 251 00 0 00 000005 BLT T0, T5 ;RESTORE ACS 583 400555' 260 17 0 00 401053' PUSHJ PSB, GETCHR 584 400556' 263 17 0 00 000000 POPJ PSB, ;RETURN 585 586 ; ERROR QUERY ********** 587 588 400557' 554 01 0 00 000010 QUERY: HLRZ T1, G3 ;GET ERROR COUNT 589 400560' 322 01 0 00 400564' JUMPE T1, QNO ;NO ERRORS 590 OUTSTR [ASCIZ / 591 400561' 051 03 0 00 401621' ERRORS/] ;THERE ARE SOME 592 400562' 541 10 0 00 000025 HRRI G3, ^D21 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 9-1 SDEC MAC 27-MAR-74 09:33 SWITCH HANDLER 593 400563' 254 00 0 00 400550' JRST NSMES 594 400564' 051 01 0 00 401623' QNO: OUTCHR ["$"] ;TERMINATE SWITCH LIST 595 400565' 271 10 0 00 000001 ADDI G3, 1 596 400566' 254 00 0 00 400553' JRST LASTNO ;AND RETURN AS THO NOTHING HAPPENED 597 598 ; DUMP OF VARIABLES ********** 599 600 400567' DUMP: 601 400567' 332 00 0 00 000000' SKIPE VARTAB ;ANY DEFINED? 602 400570' 254 00 0 00 400573' JRST DNO1 ;YES 603 OUTSTR [ASCIZ / 604 400571' 051 03 0 00 401624' NO VARIABLES DEFINED/] ;NO 605 400572' 254 00 0 00 400550' JRST NSMES 606 607 400573' 400 06 0 00 000006 DNO1: SETZ G1, G1 ;ZERO INDEX 608 400574' 051 03 0 00 401540' DNO2: OUTSTR CRLF ;NEXT LINE 609 400575' 200 01 0 06 000000' MOVE T1, VARTAB(G1) ;GET NEXT NAME 610 400576' 322 01 0 00 400604' JUMPE T1, DEND ;NULL IS END 611 400577' 260 17 0 00 401352' PUSHJ PSB, WR6STR ;WRITE NAME 612 400600' 200 11 0 06 000050' MOVE A1, REAL(G1);AND VALUES 613 400601' 200 12 0 06 000120' MOVE A2, IMAG(G1) 614 400602' 260 17 0 00 401472' PUSHJ PSB, WCPAIR 615 400603' 344 06 0 00 400574' AOJA G1, DNO2 ;LOOP FOR NEXT 616 617 DEND: OUTSTR [ASCIZ / 618 400604' 051 03 0 00 401631' NOW/] 619 400605' 254 00 0 00 400550' JRST NSMES 620 621 ; CLEAR ERROR COUNT ********** 622 623 400606' 505 10 0 00 000000 ECLR: HRLI G3, 0 624 OUTSTR [ASCIZ / 625 400607' 051 03 0 00 401633' ERRORS CLEARED/] 626 400610' 541 10 0 00 000035 HRRI G3, ^D29 627 400611' 254 00 0 00 400550' JRST NSMES 628 629 ; HELP - HELP TEXT ********** 630 631 HELP: OUTSTR [ASCIZ / 632 633 SWITCHES ARE: 634 ============= 635 C - CLEAR ERROR COUNT, COMMAND CONTINUED 636 D - DUMP ALL VARIABLES AND VALUES ASSIGNED TO DATE 637 E - EXIT 638 400612' 051 03 0 00 401637' H - TYPE THIS TEXT/] 639 OUTSTR [ASCIZ / 640 L - LIST ERRORS AND IMPLICIT R 641 Q - QUERY IF ERRORS EXIST 642 400613' 051 03 0 00 401701' R - RESTART COMMAND/] 643 OUTSTR [ASCIZ / 644 X - DELETE VARIABLES 645 - TERMINATES SWITCH LIST SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 9-2 SDEC MAC 27-MAR-74 09:33 SWITCH HANDLER 646 647 400614' 051 03 0 00 401723' NOW/] 648 649 400615' 541 10 0 00 000022 HRRI G3, ^D18 650 400616' 254 00 0 00 400550' JRST NSMES 651 652 ; ERROR LIST ********** 653 654 400617' 554 01 0 00 000010 ERRSW: HLRZ T1, G3 655 400620' 322 01 0 00 400564' JUMPE T1, QNO 656 400621' 051 03 0 00 401540' OUTSTR CRLF 657 400622' 550 05 0 00 000010 HRRZ T5, G3 658 400623' 554 04 0 00 000010 HLRZ T4, G3 659 400624' 200 03 0 00 401561' MOVE T3, [-1] 660 400625' 254 00 0 00 400757' JRST ERPRNT 661 662 ; RESTART COMMAND ********** 663 400626' 051 03 0 00 401540' RE: OUTSTR CRLF 664 400627' 254 00 0 00 400006' JRST NEWCOM 665 666 ; DELETE VARIABLES ********** 667 668 DELVAR: OUTSTR [ASCIZ / 669 400630' 051 03 0 00 401740' CONFIRM: /] 670 400631' 201 10 0 00 000011 MOVEI G3, 9 671 400632' 260 17 0 00 401061' PUSHJ PSB, INSW 672 673 400633' 302 00 0 00 000052 CAIE T0, "*" ;WANT ALL? 674 400634' 254 00 0 00 400643' JRST DELSOM 675 676 ; CLEAR ALL 677 678 400635' 200 00 0 00 401542' MOVE T0, [XWD VARTAB,VARTAB+1] 679 400636' 402 00 0 00 000000' SETZM VARTAB 680 400637' 251 00 0 00 000167' BLT T0, S1-1 ;BLT 0 TO ALL 681 682 OUTSTR [ASCIZ / 683 400640' 051 03 0 00 401743' ALL CLEARED/] 684 400641' 201 10 0 00 000026 MOVEI G3, 26 685 400642' 254 00 0 00 400550' JRST NSMES 686 687 ;CLEAR ONLY SOME 688 689 400643' 200 01 0 00 401746' DELSOM: MOVE T1, [POINT 6,T2] ;DECODE NAME 690 400644' 200 03 0 00 401747' MOVE T3, [-6] ;CHAR CNT 691 400645' 400 02 0 00 000002 SETZ T2, T2 ;ZERO RECEPTOR 692 693 400646' 307 00 0 00 000132 DELS1: CAIG T0, "Z" ;FIRST CHAR A-Z 694 400647' 305 00 0 00 000101 CAIGE T0, "A" 695 400650' 334 00 0 00 000000 SKIPA 696 400651' 254 00 0 00 400673' JRST DELLEG ;LEGAL 697 698 400652' 307 00 0 00 000071 CAIG T0, "9" SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 9-3 SDEC MAC 27-MAR-74 09:33 SWITCH HANDLER 699 400653' 305 00 0 00 000060 CAIGE T0, "0" 700 400654' 334 00 0 00 000000 SKIPA 701 400655' 254 00 0 00 400673' JRST DELLEG 702 703 400656' 302 00 0 00 000054 CAIE T0, "," 704 400657' 254 00 0 00 400663' JRST CRTEST 705 706 400660' 402 00 0 00 000504' SETZM NLETT 707 400661' 260 17 0 00 400701' PUSHJ PSB, DELEND ;DEL VAR IN T2 708 400662' 254 00 0 00 400643' JRST DELSOM 709 710 400663' 302 00 0 00 000015 CRTEST: CAIE T0, 15 ;IGNORE CR 711 400664' 254 00 0 00 400667' JRST LFTEST 712 713 400665' 260 17 0 00 401061' PUSHJ PSB, INSW 714 400666' 254 00 0 00 400646' JRST DELS1 715 716 400667' 306 00 0 00 000012 LFTEST: CAIN T0, 12 ;END OF LINE 717 400670' 254 00 0 00 400715' JRST DELFIN 718 719 400671' 505 10 0 00 000001 HRLI G3, 1 720 400672' 254 00 0 00 400751' JRST ERRH 721 722 723 400673' 275 00 0 00 000040 DELLEG: SUBI T0, 40 ;HERE TO DECODE VARIABLE NAME 724 400674' 136 00 0 00 000001 IDPB T0, T1 ;PUT CHAR AWAY 725 400675' 260 17 0 00 401061' PUSHJ PSB, INSW 726 400676' 343 03 0 00 400646' AOJLE T3, DELS1 ;RETURN WITH CHAR 727 728 400677' 505 10 0 00 000002 HRLI G3, 2 ;ERROR 729 400700' 254 00 0 00 400751' JRST ERRH 730 731 732 400701' 211 01 0 00 000050 DELEND: MOVNI T1, 50 733 734 400702' 316 02 0 01 000050' DELEN1: CAMN T2, VARTAB+50(T1) 735 400703' 254 00 0 00 400710' JRST DELFND 736 400704' 332 00 0 01 000050' SKIPE VARTAB+50(T1) 737 400705' 341 01 0 00 400702' AOJL T1, DELEN1 738 739 400706' 505 10 0 00 000003 HRLI G3, 3 740 400707' 254 00 0 00 400751' JRST ERRH 741 742 743 400710' 200 00 0 00 401561' DELFND: MOVE T0, [-1] 744 400711' 202 00 0 01 000050' MOVEM T0, VARTAB+50(T1) 745 400712' 331 00 0 00 000504' SKIPL NLETT 746 400713' 260 17 0 00 401061' PUSHJ PSB, INSW 747 400714' 263 17 0 00 000000 POPJ PSB, 748 749 400715' 322 02 0 00 400720' DELFIN: JUMPE T2, SHUFFL 750 400716' 476 00 0 00 000504' SETOM NLETT 751 400717' 260 17 0 00 400701' PUSHJ PSB, DELEND ;PUT AWAY PRESENT ONE FIRST SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 9-4 SDEC MAC 27-MAR-74 09:33 SWITCH HANDLER 752 753 400720' 211 05 0 00 000050 SHUFFL: MOVNI T5, 50 ;AND SHUFFLE 754 400721' 200 04 0 00 401561' MOVE T4, [-1] 755 756 400722' 336 00 0 05 000050' SHUFF1: SKIPN VARTAB+50(T5) 757 400723' 254 00 0 00 400747' JRST SHUFIN 758 400724' 316 04 0 05 000050' CAMN T4, VARTAB+50(T5) 759 400725' 254 00 0 00 400730' JRST SHUFMK 760 400726' 341 05 0 00 400722' SHFRET: AOJL T5, SHUFF1 761 400727' 254 00 0 00 400747' JRST SHUFIN 762 763 400730' 200 03 0 00 000005 SHUFMK: MOVE T3, T5 764 400731' 336 00 0 03 000051' SHFMK1: SKIPN VARTAB+51(T3) 765 400732' 254 00 0 00 400743' JRST SHFMK2 766 400733' 200 01 0 03 000051' MOVE T1, VARTAB+51(T3) 767 400734' 202 01 0 03 000050' MOVEM T1, VARTAB+50(T3) 768 400735' 200 01 0 03 000121' MOVE T1, REAL+51(T3) 769 400736' 202 01 0 03 000120' MOVEM T1, REAL+50(T3) 770 400737' 200 01 0 03 000171' MOVE T1, IMAG+51(T3) 771 400740' 202 01 0 03 000170' MOVEM T1, IMAG+50(T3) 772 400741' 315 03 0 00 401750' CAMGE T3, [-2] 773 400742' 344 03 0 00 400731' AOJA T3, SHFMK1 774 775 400743' 402 00 0 03 000050' SHFMK2: SETZM VARTAB+50(T3) 776 400744' 402 00 0 03 000120' SETZM REAL+50(T3) 777 400745' 402 00 0 03 000170' SETZM IMAG+50(T3) 778 779 400746' 254 00 0 00 400720' JRST SHUFFL 780 781 400747' 051 03 0 00 401751' SHUFIN: OUTSTR [ASCIZ /CLEARED/] 782 400750' 254 00 0 00 400550' JRST NSMES 783 784 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 10 SDEC MAC 27-MAR-74 09:33 ERROR HANDLER 785 SUBTTL ERROR HANDLER 786 787 400751' 550 05 0 00 000010 ERRH: HRRZ T5, G3 ;POSITION OF ERROR 788 400752' 554 04 0 00 000010 HLRZ T4, G3 ;ERROR TYPE 789 400753' 200 03 0 00 401561' MOVE T3, [-1] ;CONTROL COUNT 790 791 400754' 260 17 0 00 401053' ERRCHR: PUSHJ PSB, GETCHR ;FINISH LINE 792 400755' 302 00 0 00 000012 CAIE T0, 12 ; = EOL 793 400756' 254 00 0 00 400754' JRST ERRCHR ;TRY AGAIN 794 795 400757' 305 05 0 00 000025 ERPRNT: CAIGE T5, 25 ;WHAT TO PRINT FIRST 796 400760' 260 17 0 00 401042' PUSHJ PSB, ARROW ;ARROW TO BE PRINTED 797 400761' 260 17 0 00 400766' PUSHJ PSB, MESS ;MESSAGE 798 400762' 357 00 0 00 000003 AOSG T3 ;NEED TO DO ARROW 799 400763' 260 17 0 00 401042' PUSHJ PSB, ARROW 800 801 400764' 051 03 0 00 401540' OUTSTR CRLF 802 400765' 254 00 0 00 400006' JRST NEWCOM ;NEXT COMMAND 803 804 ; PRINT MESSAGE ********** 805 806 400766' 254 00 0 04 400767' MESS: JRST MS(T4) ;OUTPUT APPROPRIATE MESSAGE 807 400767' 254 00 0 00 401002' MS: JRST E0 808 400770' 254 00 0 00 401005' JRST E1 809 400771' 254 00 0 00 401010' JRST E2 810 400772' 254 00 0 00 401013' JRST E3 811 400773' 254 00 0 00 401016' JRST E4 812 400774' 254 00 0 00 401021' JRST E5 813 400775' 254 00 0 00 401024' JRST E6 814 400776' 254 00 0 00 401027' JRST E7 815 400777' 254 00 0 00 401032' JRST E8 816 401000' 254 00 0 00 401035' JRST E9 817 401001' 254 00 0 00 401040' JRST E10 818 819 401002' 051 03 0 00 401753' E0: OUTSTR [ASCIZ /NO ERRORS YET/] 820 401003' 275 05 0 00 000015 SUBI T5, ^D13 821 401004' 263 17 0 00 000000 POPJ PSB, 822 401005' 051 03 0 00 401756' E1: OUTSTR [ASCIZ /ILL. CHAR. IN INPUT/] 823 401006' 275 05 0 00 000023 SUBI T5, ^D19 824 401007' 263 17 0 00 000000 POPJ PSB, 825 401010' 051 03 0 00 401762' E2: OUTSTR [ASCIZ /TOO MANY CHARS/] 826 401011' 275 05 0 00 000016 SUBI T5, ^D14 827 401012' 263 17 0 00 000000 POPJ PSB, 828 401013' 051 03 0 00 401765' E3: OUTSTR [ASCIZ /UNDEFINED VARIABLE/] 829 401014' 275 05 0 00 000022 SUBI T5, ^D18 830 401015' 263 17 0 00 000000 POPJ PSB, 831 401016' 051 03 0 00 401771' E4: OUTSTR [ASCIZ /DELIMITER EXPECTED/] 832 401017' 275 05 0 00 000022 SUBI T5, ^D18 833 401020' 263 17 0 00 000000 POPJ PSB, 834 401021' 051 03 0 00 401775' E5: OUTSTR [ASCIZ /NO. OUT OF RANGE/] 835 401022' 275 05 0 00 000020 SUBI T5, ^D16 836 401023' 263 17 0 00 000000 POPJ PSB, 837 401024' 051 03 0 00 402001' E6: OUTSTR [ASCIZ /EXP OUT OF RANGE/] SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 10-1 SDEC MAC 27-MAR-74 09:33 ERROR HANDLER 838 401025' 275 05 0 00 000020 SUBI T5, ^D16 839 401026' 263 17 0 00 000000 POPJ PSB, 840 401027' 051 03 0 00 402005' E7: OUTSTR [ASCIZ /TOO MANY VARIABLES/] 841 401030' 275 05 0 00 000023 SUBI T5, ^D19 842 401031' 263 17 0 00 000000 POPJ PSB, 843 401032' 051 03 0 00 402011' E8: OUTSTR [ASCIZ *EXEC OV/UND FLOW*] 844 401033' 275 05 0 00 000020 SUBI T5, ^D16 845 401034' 263 17 0 00 000000 POPJ PSB, 846 401035' 051 03 0 00 402015' E9: OUTSTR [ASCIZ /UNBAL PARENTH/] 847 401036' 275 05 0 00 000015 SUBI T5, ^D13 848 401037' 263 17 0 00 000000 POPJ PSB, 849 401040' 051 03 0 00 402020' E10: OUTSTR [ASCIZ /UDF FCN/] 850 401041' 263 17 0 00 000000 POPJ PSB, 851 852 ; PRINT ARROW ********** 853 854 401042' 336 00 0 00 000005 ARROW: SKIPN T5 ;IF NO ARROW REQD. 855 401043' 263 17 0 00 000000 POPJ PSB, 856 401044' 275 05 0 00 000002 SUBI T5, 2 ;AMEND POSITION FOR ARROW 857 401045' 271 03 0 00 000001 ADDI T3, 1 858 401046' 213 05 0 00 000005 MOVNS T5, T5 859 401047' 051 01 0 00 402022' ARR1: OUTCHR [" "] 860 401050' 341 05 0 00 401047' AOJL T5, ARR1 861 401051' 051 01 0 00 402023' OUTCHR ["^"] 862 401052' 263 17 0 00 000000 POPJ PSB, 863 864 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 865 SUBTTL SUBROUTINES 866 867 ; ROUTINE TO GET A CHARACTER --------------------------------------------------- 868 869 401053' 051 00 0 00 000000 GETCHR: INCHRW T0, ;GET THE CHAR 870 401054' 271 10 0 00 000001 ADDI G3, 1 ;INC CHAR CNT 871 401055' 302 00 0 00 000033 CAIE T0, 33 ;ESCAPR OR 872 401056' 306 00 0 00 000175 CAIN T0, 175 ;ALTMODE - SWITCH? 873 401057' 260 17 0 00 400517' PUSHJ PSB, SWITCH 874 401060' 263 17 0 00 000000 POPJ PSB, ;NO - SO RETURN 875 876 ; ROUTINE TO GET A SWITCH ------------------------------------------------------ 877 878 401061' 051 00 0 00 000000 INSW: INCHRW T0, ;GET THE CHAR 879 401062' 271 10 0 00 000001 ADDI G3, 1 880 401063' 306 00 0 00 000040 CAIN T0, " " ;IGNORE BLANKS 881 401064' 254 00 0 00 401061' JRST INSW 882 401065' 263 17 0 00 000000 POPJ PSB, 883 884 ; ROUTINE TO EVALUATE A VARIABLE ----------------------------------------------- 885 886 401066' 200 05 0 00 402024' CONST: MOVE T5, [POINT 6,T4] 887 401067' 400 04 0 00 000004 SETZ T4, T4 ;ZERO RECEPTOR 888 401070' 275 00 0 00 000040 SUBI T0, 40 ;CONV TO SIXBIT AND 889 401071' 136 00 0 00 000005 IDPB T0, T5 ;PUT AWAY EXISTING CHAR 890 401072' 200 03 0 00 402025' MOVE T3, [-5] ;GET READY FOR NEXT 5 891 892 401073' 260 17 0 00 401053' NEXTCH: PUSHJ PSB, GETCHR ;GET CHAR 893 894 401074' 301 00 0 00 000101 CAIL T0, "A" ;IS IT A LETTER 895 401075' 303 00 0 00 000132 CAILE T0, "Z" 896 401076' 334 00 0 00 000000 SKIPA ;NO 897 401077' 254 00 0 00 401103' JRST GOOD ;YES 898 899 401100' 301 00 0 00 000060 CAIL T0, "0" ;IS IT A NUMBER 900 401101' 303 00 0 00 000071 CAILE T0, "9" 901 401102' 254 00 0 00 401110' JRST LASTCH ;NO 902 903 401103' 353 00 0 00 000003 GOOD: AOSLE T3 ;INC CHAR CNT 904 401104' 254 00 0 00 401135' JRST TOMANY ;TOO MANY 905 401105' 275 00 0 00 000040 SUBI T0, 40 ;CONV TO 6BIT 906 401106' 136 00 0 00 000005 IDPB T0, T5 ;PUT IT AWAY 907 401107' 254 00 0 00 401073' JRST NEXTCH ;NEXT ONE 908 909 401110' 306 00 0 00 000137 LASTCH: CAIN T0, "_" ;IS IT _ 910 401111' 254 00 0 00 401132' JRST SKRT ;YES SKIP 911 401112' 306 00 0 00 000133 CAIN T0, "[" 912 401113' 254 00 0 00 401124' JRST FUNCT 913 401114' 400 05 0 00 000005 SETZ T5, T5 ;NO GET VALUES 914 915 401115' 200 01 0 05 000000' NVAR: MOVE T1, VARTAB(T5) ;GET NEXT VAR 916 401116' 322 01 0 00 401140' JUMPE T1, NDEF ;IS IT NULL 917 401117' 312 01 0 00 000004 CAME T1, T4 ;EQUAL? SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-1 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 918 401120' 344 05 0 00 401115' AOJA T5, NVAR ;NO TRY NEXT ONE 919 920 401121' 200 06 0 05 000120' RET: MOVE G1, IMAG(T5) ;GET IMAG 921 401122' 200 07 0 05 000050' MOVE G2, REAL(T5) ; &REAL PARTS 922 401123' 263 17 0 00 000000 POPJ PSB, ;RETURN 923 924 401124' 602 04 0 00 777777 FUNCT: TRNE T4, 777777 925 401125' 254 00 0 00 401135' JRST TOMANY 926 927 401126' 541 04 0 00 000151 HRRI T4, 151 928 401127' 262 17 0 17 000000 POP PSB, (PSB) 929 401130' 200 00 0 00 000004 MOVE T0, T4 930 401131' 254 00 0 00 400022' JRST INMITC 931 932 933 401132' 202 04 0 00 000006 SKRT: MOVEM T4, G1 ;SKIP RETURN 934 401133' 350 00 0 17 000000 AOS (PSB) 935 401134' 263 17 0 00 000000 POPJ PSB, 936 937 401135' 505 10 0 00 000002 TOMANY: HRLI G3, 2 ;TOO MANY CHARS 938 401136' 271 10 0 00 000001 ADDI G3, 1 939 401137' 254 00 0 00 400751' JRST ERRH ;ERROR HANDLER 940 941 401140' 505 10 0 00 000003 NDEF: HRLI G3, 3 ;NOT DEFINED 942 401141' 254 00 0 00 400751' JRST ERRH ;MORE ERRORS 943 944 ; ROUTINE TO READ A COMPLEX PAIR, WITH THANKS TO R. COOK'S IOLIB V.3. ---------- 945 946 401142' 476 00 0 00 000472' RCPAIR: SETOM TIME ;INITIATE 947 401143' 200 03 0 00 402026' MOVE T3, [MOVEM T4,G1] 948 401144' 403 06 0 00 000007 SETZB G1, G2 949 950 401145' 260 17 0 00 401053' RREAL: PUSHJ PSB, GETCHR ;GET FIRST CHAR 951 401146' 260 17 0 00 401263' PUSHJ PSB, NEGTIV ;PROCESS SIGN 952 401147' 260 17 0 00 401053' PUSHJ PSB, GETCHR ;IT WAS SIGNED 953 401150' 205 01 0 00 204500 MOVSI T1, (10.0) ;NOT SIGNED 954 401151' 634 04 0 00 000004 TDZA T4, T4 ;ZERO RECEPTOR 955 956 401152' 260 17 0 00 401053' RRE10: PUSHJ PSB, GETCHR ;GET ACHAR 957 401153' 260 17 0 00 401230' PUSHJ PSB, CDIGIT ;CONVERT ASCII TO F.P 958 401154' 254 00 0 00 401161' JRST RRE20 ;NOT A DIGIT 959 401155' 164 04 0 00 000001 FMPR T4, T1 ;*10 960 401156' 144 04 0 00 000000 FADR T4, T0 ;ADD NEW NO. 961 401157' 260 17 0 00 401341' PUSHJ PSB, OFCHK ;CHECK OVERFLOW 962 401160' 254 00 0 00 401152' JRST RRE10 ;GO BACK FOR NEXT 963 964 401161' 302 00 0 00 000056 RRE20: CAIE T0, "." ;CORRECT? 965 401162' 254 00 0 00 401172' JRST RRE40 ;NO - MAY BE EXPONENT 966 401163' 260 17 0 00 401227' RRE30: PUSHJ PSB, RDIGIT ;READ AND CONVERT 967 401164' 254 00 0 00 401172' JRST RRE40 ;NOT A DIGIT 968 401165' 174 00 0 00 000001 FDVR T0, T1 ;CORRECT FOR DEC PLACE 969 401166' 144 04 0 00 000000 FADR T4, T0 ;AND ADD 970 401167' 260 17 0 00 401341' PUSHJ PSB, OFCHK ;CHECK UNDERFLOW SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-2 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 971 401170' 165 01 0 00 204500 FMPRI T1, (10.0) ;CORRECT MULT FOR DEC PLACE 972 401171' 254 00 0 00 401163' JRST RRE30 ;NEXT 973 974 401172' 164 04 0 00 000471' RRE40: FMPR T4, SIGN ;GET CORR. SIGN 975 401173' 302 00 0 00 000105 CAIE T0, "E" ;EXPONENT? 976 401174' 254 00 0 00 401210' JRST RRE60 ;NO 977 401175' 336 00 0 00 000004 SKIPN T4 ;MANTISSA 1.0 FOR PURE E FORMAT 978 401176' 201 04 0 00 402027' MOVEI T4, [1.0] 979 401177' 260 17 0 00 401237' PUSHJ PSB, RDECEX ;YES GET DEC EXPONENT 980 401200' 200 05 0 00 402030' MOVE T5, [FMPRI T4,(10.0)] ;ASSUME +VE EXP. 981 401201' 335 00 0 00 000002 SKIPGE T2 ;IS IT REALLY -VE 982 401202' 505 05 0 00 175200 HRLI T5, (FDVRI T4,) ;YES 983 401203' 217 02 0 00 000002 MOVMS T2, T2 984 985 401204' 361 02 0 00 401210' RRE50: SOJL T2, RRE60 ;APPLY EXP. 986 401205' 256 00 0 00 000005 XCT T5 987 401206' 260 17 0 00 401341' PUSHJ PSB, OFCHK ;CHECK IF OVFLW OCCURRED 988 401207' 254 00 0 00 401204' JRST RRE50 989 990 401210' 306 00 0 00 000051 RRE60: CAIN T0, ")" ;END OF NUMBER? 991 401211' 254 00 0 00 401221' JRST RRE70 ;YES 992 401212' 302 00 0 00 000054 CAIE T0, "," ;END OF FIRST HALF 993 401213' 254 00 0 00 401224' JRST RRE80 ;NO - ERROR 994 995 401214' 256 00 0 00 000003 RRE61: XCT T3 ;GET IN CORRECT AC 996 401215' 271 03 0 00 000001 ADDI T3, 1 ;READY FOR NEXT HALF 997 401216' 357 00 0 00 000472' AOSG TIME ;NO NEXT HALF? 998 401217' 260 17 0 00 401145' PUSHJ PSB, RREAL ;READ NEXT HALF 999 401220' 263 17 0 00 000000 RRE63: POPJ PSB, ;POP TWICE TO RETURN 1000 1001 401221' 322 04 0 00 401220' RRE70: JUMPE T4, RRE63 ;) FOUND AFTER 1ST HALF 1002 401222' 350 00 0 00 000472' AOS TIME ;) FOUND DURING FIRST OR SECOND HALF 1003 401223' 254 00 0 00 401214' JRST RRE61 1004 1005 401224' 505 10 0 00 000004 RRE80: HRLI G3, 4 ;ERROR CONDITION 1006 401225' 271 10 0 00 000001 ADDI G3, 1 1007 401226' 254 00 0 00 400751' JRST ERRH 1008 1009 ; ROUTINES USED BY RCPAIR ------------------------------------------------------ 1010 1011 401227' 260 17 0 00 401053' RDIGIT: PUSHJ PSB, GETCHR ;GET CHAR 1012 401230' 301 00 0 00 000060 CDIGIT: CAIL T0, "0" ;CONVERT IT 1013 401231' 303 00 0 00 000071 CAILE T0, "9" ;IS IT LEGAL? 1014 401232' 263 17 0 00 000000 POPJ PSB, ;NO 1015 401233' 275 00 0 00 000060 SUBI T0, "0" ;CONVERT 1016 401234' 132 00 0 00 000233 FSC T0, 233 1017 401235' 350 00 0 17 000000 AOS (PSB) ;SKIP RETURN 1018 401236' 263 17 0 00 000000 POPJ PSB, 1019 1020 401237' 400 02 0 00 000002 RDECEX: SETZ T2, T2 ;ZERO RECEPTOR 1021 401240' 260 17 0 00 401053' PUSHJ PSB, GETCHR ;GET CHAR 1022 401241' 260 17 0 00 401262' PUSHJ PSB, NEGDEC ;SIGN? 1023 401242' 260 17 0 00 401053' RDEC1: PUSHJ PSB, GETCHR ;YES SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-3 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 1024 401243' 301 00 0 00 000060 CAIL T0, "0" ;NO 1025 401244' 303 00 0 00 000071 CAILE T0, "9" ;IS IT LEGAL 1026 401245' 254 00 0 00 401252' JRST RDEND ;NO 1027 401246' 221 02 0 00 000012 IMULI T2, ^D10 ;MUL * 10 1028 401247' 275 00 0 00 000060 SUBI T0, 60 ;ADD TO NUMBER 1029 401250' 270 02 0 00 000000 ADD T2, T0 ; AFTER CONVERSION 1030 401251' 254 00 0 00 401242' JRST RDEC1 ;GO BACK FOR NEXT 1031 401252' 220 02 0 00 000471' RDEND: IMUL T2, SIGN ;FIX SIGN 1032 401253' 307 02 0 00 000046 CAIG T2, ^D38 ;CHECK EXPONENT SIZE 1033 401254' 315 02 0 00 402031' CAMGE T2, [^D-38] 1034 401255' 254 00 0 00 401257' JRST RDERR 1035 401256' 263 17 0 00 000000 POPJ PSB, 1036 401257' 505 10 0 00 000006 RDERR: HRLI G3, 6 1037 401260' 254 00 0 00 400751' JRST ERRH 1038 401261' 263 17 0 00 000000 POPJ PSB, ;RETURN 1039 1040 401262' 476 00 0 00 000473' NEGDEC: SETOM WFROM ;INDICATES INTEGER 1041 401263' 200 14 0 00 401561' NEGTIV: MOVE T6, [-1] ;ASSUME -VE 1042 401264' 350 00 0 17 000000 AOS (PSB) ;ASSUME SKIP 1043 401265' 306 00 0 00 000055 CAIN T0, "-" ;IS IT -VE 1044 401266' 254 00 0 00 401273' JRST TST ;YES - OK 1045 401267' 306 00 0 00 000053 CAIN T0, "+" 1046 401270' 254 00 0 00 401272' JRST PL ;WHOOPS A + 1047 401271' 350 00 0 17 000000 AOS (PSB) ;ANYTHING ELSE 1048 401272' 201 14 0 00 000001 PL: MOVEI T6, 1 ;RESTORE + 1049 401273' 331 00 0 00 000473' TST: SKIPL WFROM ;NOW SHOULD WE FLOAT 1050 401274' 254 00 0 00 401301' JRST FLOTR ;YES 1051 401275' 202 14 0 00 000471' TSTRET: MOVEM T6, SIGN ;PUT AWAY 1052 401276' 370 00 0 17 000000 SOS (PSB) ;RESTORE CORRECT SKIP 1053 401277' 402 00 0 00 000473' SETZM WFROM ;RESTORE CORRECT ENTRY 1054 401300' 263 17 0 00 000000 POPJ PSB, ;AND RETURN 1055 401301' 200 01 0 00 000014 FLOTR: MOVE T1, T6 1056 401302' 231 01 0 00 000400 IDIVI T1, 400 1057 401303' 332 00 0 00 000001 SKIPE T1 1058 401304' 641 01 0 00 243000 TLC T1, 243000 1059 401305' 641 02 0 00 233000 TLC T2, 233000 1060 401306' 141 01 0 00 000002 FADL T1, T2 1061 401307' 200 14 0 00 000001 MOVE T6, T1 1062 401310' 400 02 0 00 000002 SETZ T2, T2 1063 401311' 254 00 0 00 401275' JRST TSTRET 1064 1065 ; ROUTINE TO MAKE LEVEL COMPARISONS -------------------------------------------- 1066 1067 401312' 260 17 0 00 401327' LEV: PUSHJ PSB, LEVFND ;FIND CURRENT LEVEL 1068 401313' 202 01 0 00 000005 MOVEM T1, T5 ;PUT LEVEL IN T5 1069 401314' 202 00 0 00 000003 MOVEM T0, T3 ;SAVE T0 1070 1071 401315' 262 15 0 00 000000 POP PS1, T0 ;FIND LEV TOP S1 1072 401316' 202 00 0 00 000502' MOVEM T0, REPLT0 ;STORE FOR POSSIBLE REPLACEMENT 1073 401317' 260 17 0 00 401327' PUSHJ PSB, LEVFND 1074 401320' 202 01 0 00 000004 MOVEM T1, T4 ;PUT LEV S1 IN T4 1075 401321' 200 00 0 00 000003 MOVE T0, T3 ;RESTORE T0 1076 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-4 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 1077 401322' 317 05 0 00 000004 CAMG T5, T4 1078 401323' 350 00 0 17 000000 AOS (PSB) ;SKIP RETURN IF LE 1079 401324' 200 03 0 00 000502' MOVE T3, REPLT0 ;PUT BACK ON STACK 1080 401325' 261 15 0 00 000003 PUSH PS1, T3 ; IF TEST FAILS 1081 401326' 263 17 0 00 000000 POPJ PSB, 1082 1083 401327' 201 04 0 00 000011 LEVFND: MOVEI T4, 11 ;SET UP TABLE SEARCH 1084 401330' 361 04 0 00 401337' FINONE: SOJL T4, NFND 1085 401331' 554 01 0 04 401524' HLRZ T1, LEVTAB(T4) ;GET NEXT CHAR 1086 401332' 550 14 0 00 000000 HRRZ T6, T0 1087 401333' 312 14 0 00 000001 CAME T6, T1 1088 401334' 254 00 0 00 401330' JRST FINONE ;NO 1089 401335' 550 01 0 04 401524' HRRZ T1, LEVTAB(T4) ;YES - GET ITS LEVEL 1090 401336' 263 17 0 00 000000 POPJ PSB, ;RETURN 1091 401337' 201 01 0 00 000007 NFND: MOVEI T1, 7 ;MUST BE CONST OR VAR 1092 401340' 263 17 0 00 000000 POPJ PSB, 1093 1094 ;ROUTINE TO TEST FOV & FUND FLOWS ---------------------------------------------- 1095 1096 401341' 255 01 0 00 401343' OFCHK: JFOV FOVH ;OF OCCURRED 1097 401342' 263 17 0 00 000000 POPJ PSB, ;NO 1098 401343' 505 10 0 00 000005 FOVH: HRLI G3, 5 ;YES 1099 401344' 271 10 0 00 000001 ADDI G3, 1 1100 401345' 254 00 0 00 400751' JRST ERRH 1101 1102 ; ROUTINE TO CHECK IF INPUT DECODING DESIRED ----------------------------------- 1103 1104 401346' 231 11 0 00 000002 SKCHCK: IDIVI F1, 2 ;STRIP OFF LOW DIGIT 1105 401347' 332 00 0 00 000012 SKIPE F2 ;IS IT ZERO 1106 401350' 350 00 0 17 000000 AOS (PSB) ;NO 1107 401351' 263 17 0 00 000000 POPJ PSB, ;YES 1108 ; 1109 ; WR6STR - WRITES A 6BIT STRING IN T1 ------------------------------------------ 1110 ; 1111 1112 401352' 211 02 0 00 000006 WR6STR: MOVNI T2, 6 ;LOOP COUNTER 1113 401353' 200 03 0 00 402032' MOVE T3, [POINT 6,T1] ;BYTE POINTER 1114 1115 401354' 134 00 0 00 000003 WR6ST1: ILDB T0, T3 ;GET NEXT CHAR 1116 401355' 271 00 0 00 000040 ADDI T0, 40 1117 401356' 260 17 0 00 401362' PUSHJ PSB, WASCII ;AND OUTPUT 1118 401357' 341 02 0 00 401354' AOJL T2, WR6ST1 1119 1120 401360' 051 03 0 00 402033' OUTSTR [ASCIZ / = /] ;FOLLOW BY = 1121 401361' 263 17 0 00 000000 POPJ PSB, 1122 1123 ; 1124 ; WASCII - WRITES AN ASCII CHAR IN T0 ------------------------------------------ 1125 ; 1126 1127 401362' 051 01 0 00 000000 WASCII: OUTCHR T0 ;SIMPLY O/P CHAR 1128 401363' 263 17 0 00 000000 POPJ PSB, 1129 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-5 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 1130 ; 1131 ; WFPNO - WRITE A FLOATING POINT NO IN T1 -------------------------------- 1132 ; THANKS TO ROB COOK'S IOLIB V.3. 1133 ; 1134 1135 401364' 403 04 0 00 000005 WFPNO: SETZB T4, T5 ;INIT EXPS 1136 401365' 200 14 0 00 402034' MOVE T6, [1.0E-7] ;SMALLEST PRINTABLE FRACTION 1137 401366' 214 03 0 00 000001 MOVM T3, T1 ;SAVE NO 1138 401367' 325 01 0 00 401372' JUMPGE T1, WFP1 ;SPACE IF POSVE 1139 401370' 201 00 0 00 000055 MOVEI T0, "-" ;OTHERWISE SIGN 1140 401371' 334 00 0 00 000000 SKIPA 1141 401372' 201 00 0 00 000040 WFP1: MOVEI T0, " " 1142 401373' 260 17 0 00 401362' PUSHJ PSB, WASCII 1143 1144 401374' 322 03 0 00 401405' JUMPE T3, WRE30 ;SPECIAL TEEATMENT FOR 0.0 1145 1146 401375' 315 03 0 00 402027' WRE20: CAMGE T3, [1.0] ;BIGGER THAN RANGE 1147 401376' 254 00 0 00 401401' JRST WRE25 1148 401377' 175 03 0 00 204500 FDVRI T3, (10.0) ;YES - REDUCE 1149 401400' 344 05 0 00 401375' AOJA T5, WRE20 ;AND LOOP 1150 1151 401401' 311 03 0 00 402035' WRE25: CAML T3, [0.1] ;IS IT .LT. 0.1 1152 401402' 254 00 0 00 401405' JRST WRE30 ;NO 1153 401403' 165 03 0 00 204500 FMPRI T3, (10.0) ;YES INC NO. 1154 401404' 364 05 0 00 401401' SOJA T5, WRE25 1155 1156 401405' 271 03 0 00 000001 WRE30: ADDI T3, 1 ;BEAT ROUNDING ERRORS 1157 401406' 214 01 0 00 000005 MOVM T1, T5 ;MOD OF EXPONENT 1158 401407' 303 01 0 00 000006 CAILE T1, 6 ;E FORMAT? 1159 401410' 250 04 0 00 000005 EXCH T4, T5 ;YES 1160 401411' 327 05 0 00 401415' JUMPG T5, WRE40 ;IF EXP .LT.0 1161 401412' 201 00 0 00 000060 MOVEI T0, "0" 1162 401413' 260 17 0 00 401362' PUSHJ PSB, WASCII ;PRECEDE BY 0 1163 401414' 254 00 0 00 401417' JRST WRE50 1164 1165 401415' 260 17 0 00 401435' WRE40: PUSHJ PSB, WDIGIT ;WRITE A DIGIT 1166 401416' 367 05 0 00 401415' SOJG T5, WRE40 ;LOOP FOR ALL INTEGERS 1167 1168 401417' 201 00 0 00 000056 WRE50: MOVEI T0, "." ;DELIMITER 1169 401420' 260 17 0 00 401362' PUSHJ PSB, WASCII 1170 1171 401421' 325 05 0 00 401425' WRE60: JUMPGE T5, WRE70 ;ANY MORE LEADING ZEROES 1172 401422' 201 00 0 00 000060 MOVEI T0, "0" ;YES 1173 401423' 260 17 0 00 401362' PUSHJ PSB, WASCII 1174 401424' 344 05 0 00 401421' AOJA T5, WRE60 ;LOOP FOR MORE 1175 1176 401425' 260 17 0 00 401435' WRE70: PUSHJ PSB, WDIGIT ;WRITE A DIGIT 1177 401426' 326 03 0 00 401425' JUMPN T3, WRE70 ;UNTIL NONE LEFT 1178 1179 401427' 336 00 0 00 000004 SKIPN T4 1180 401430' 263 17 0 00 000000 POPJ PSB, ;FINISH IF NOT WANTED 1181 401431' 201 00 0 00 000105 MOVEI T0, "E" ;SHOW E 1182 401432' 260 17 0 00 401362' PUSHJ PSB, WASCII SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-6 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 1183 401433' 200 01 0 00 000004 MOVE T1, T4 ;SET UP AND 1184 401434' 254 00 0 00 401451' JRST WDECL ;WRITE EXPONENT 1185 1186 401435' 165 03 0 00 204500 WDIGIT: FMPRI T3, (10.0) ;MAKE A DIGIT 1187 401436' 165 14 0 00 204500 FMPRI T6, (10.0) ;* TEST FRACTION 1188 401437' 200 01 0 00 000003 MOVE T1, T3 ;COPY NO 1189 401440' 225 01 0 00 000400 MULI T1, 400 ;SEPARATE EXPON. 1190 401441' 240 02 0 01 777535 ASH T2, -243(T1) ;KEEP TOP DIGIT 1191 401442' 201 00 0 02 000060 MOVEI T0, "0"(T2) ;SET FOR O/P 1192 401443' 132 02 0 00 000233 FSC T2, 233 ;CONVERT DIG TO REAL 1193 401444' 154 03 0 00 000002 FSBR T3, T2 ;REMOVE FROM NO. 1194 401445' 260 17 0 00 401362' PUSHJ PSB, WASCII ;WRITE NO. 1195 401446' 317 03 0 00 000014 CAMG T3, T6 ;BIGGER THAN SMALLEST ALLOWABLE 1196 401447' 400 03 0 00 000003 SETZ T3, T3 ; 8 DIGITS WRITTEN 1197 401450' 263 17 0 00 000000 POPJ PSB, 1198 ; 1199 ; WDECL - WRITES A DECIMAL INTEGER IN T1 --------------------------------------- 1200 ; 1201 1202 401451' 403 04 0 00 000005 WDECL: SETZB T4, T5 ;TO WRITE A DEC EXPONENT 1203 401452' 335 00 0 00 000001 SKIPGE T1 ;NEG? 1204 401453' 201 04 0 00 000001 MOVEI T4, 1 ;YES 1205 401454' 214 01 0 00 000001 MOVM T1, T1 ;GET MAGNITUDE 1206 1207 401455' 231 01 0 00 000012 WD1: IDIVI T1, 12 ;STRIP OFF LOW DIGIT 1208 401456' 261 15 0 00 000002 PUSH PS1, T2 ;STACK IT 1209 401457' 322 01 0 00 401461' JUMPE T1, WPR ;END? 1210 401460' 344 05 0 00 401455' AOJA T5, WD1 1211 1212 401461' 201 00 0 00 000053 WPR: MOVEI T0, "+" ;OP SIGN 1213 401462' 332 00 0 00 000004 SKIPE T4 1214 401463' 201 00 0 00 000055 MOVEI T0, "-" 1215 401464' 260 17 0 00 401362' PUSHJ PSB, WASCII 1216 1217 401465' 262 15 0 00 000000 WP1: POP PS1, T0 ;UNSTACK VALUE 1218 401466' 271 00 0 00 000060 ADDI T0, 60 ;AND PRINT 1219 401467' 260 17 0 00 401362' PUSHJ PSB, WASCII 1220 401470' 365 05 0 00 401465' SOJGE T5, WP1 1221 1222 401471' 263 17 0 00 000000 POPJ PSB, 1223 1224 ; 1225 ; WCPAIR WRITES A COMPLEX PAIR FROM A1,A2 -------------------------------------- 1226 ; 1227 401472' 201 00 0 00 000050 WCPAIR: MOVEI T0, "(" ;JUST USE PREVIOUS ROUTINES 1228 401473' 260 17 0 00 401362' PUSHJ PSB, WASCII 1229 401474' 200 01 0 00 000011 MOVE T1, A1 1230 401475' 260 17 0 00 401364' PUSHJ PSB, WFPNO 1231 401476' 201 00 0 00 000054 MOVEI T0, "," 1232 401477' 260 17 0 00 401362' PUSHJ PSB, WASCII 1233 401500' 200 01 0 00 000012 MOVE T1, A2 1234 401501' 260 17 0 00 401364' PUSHJ PSB, WFPNO 1235 401502' 201 00 0 00 000051 MOVEI T0, ")" SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 11-7 SDEC MAC 27-MAR-74 09:33 SUBROUTINES 1236 401503' 260 17 0 00 401362' PUSHJ PSB, WASCII 1237 401504' 263 17 0 00 000000 POPJ PSB, 1238 1239 ; GET4 &GET2 TO UNSTACK VALUES FROM S1 --------------------------- 1240 1241 401505' 262 16 0 00 000014 GET4: POP PS2, A4 ;GET LAST VALUES 1242 401506' 262 16 0 00 000013 POP PS2, A3 ;INTO ARITH REGS 1243 401507' 262 16 0 00 000012 GET2: POP PS2, A2 1244 401510' 262 16 0 00 000011 POP PS2, A1 1245 401511' 263 17 0 00 000000 POPJ PSB, 1246 1247 ; STOR2 TO PUT 2 VALUES BACK ON S1 AND TEST FOR OVFLOW----------------- 1248 1249 401512' 261 16 0 00 000011 STOR2: PUSH PS2, A1 ;REAL 1250 401513' 261 16 0 00 000012 PUSH PS2, A2 ;IMAG 1251 401514' 260 17 0 00 401516' PUSHJ PSB, EXOV 1252 401515' 263 17 0 00 000000 POPJ PSB, 1253 1254 ; EXOV TO TEST FOR EXECUTION OVFLOWS ----------------------------------- 1255 1256 401516' 255 01 0 00 401520' EXOV: JFOV EXER ;OFLOW? 1257 401517' 263 17 0 00 000000 POPJ PSB, ;NO 1258 401520' 201 05 0 00 000000 EXER: MOVEI T5, 0 ;YES 1259 401521' 201 04 0 00 000010 MOVEI T4, 8 1260 401522' 201 03 0 00 401561' MOVEI T3, [-1] 1261 401523' 254 00 0 00 400757' JRST ERPRNT 1262 1263 1264 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 12 SDEC MAC 27-MAR-74 09:33 DATA LOCATIONS IN HISEG 1265 SUBTTL DATA LOCATIONS IN HISEG 1266 1267 401524' 000052 000004 LEVTAB: 52,,4 ;* 1268 401525' 000151 000006 151,,6 ;SUBR. 1269 401526' 000057 000004 57,,4 ;/ 1270 401527' 000053 000003 53,,3 ;+ 1271 401530' 000055 000003 55,,3 ;- 1272 401531' 000136 000005 136,,5 ;^ 1273 401532' 000137 000002 137,,2 ;_ 1274 401533' 000133 000002 133,,2 ;[ 1275 401534' 000135 000001 135,,1 ;] 1276 1277 401535' 123 103 101 124 062 DESCR: ASCII /SCAT2/ 1278 401536' 104 101 124 106 114 FILNAM: ASCII /DATFL/ 1279 401537' 000111 000132 PPN: 111,,132 1280 401540' CRLF: ASCIZ / 1281 401540' 015 012 000 000 000 / 1282 1283 401541' LIT 1284 401541' 777700 000367' 1285 401542' 000000' 000001' 1286 401543' 123 103 101 124 040 1287 401544' 050 062 066 055 115 1288 401545' 101 122 055 067 064 1289 401546' 051 040 122 105 101 1290 401547' 104 131 015 012 040 1291 401550' 015 012 000 000 000 1292 401551' 000170' 000171' 1293 401552' 000023 000023 1294 401553' 777700 000167' 1295 401554' 777700 000267' 1296 401555' 000000 000052 1297 401556' 000054 000054 1298 401557' 000044 000044 1299 401560' 000063 000063 1300 401561' 777777 777777 1301 401562' 000001 000002 1302 401563' 554147 000151 1303 401564' 415647 000151 1304 401565' 635650 000151 1305 401566' 645650 000151 1306 401567' 436350 000151 1307 401570' 434162 000151 1308 401571' 605754 000151 1309 401572' 206712 273407 1310 401573' 576400 000000 1311 401574' 202400 000000 1312 401575' 62 45 63 65 54 64 1313 401576' 000001 000474' 1314 401577' 015 012 125 116 122 1315 401600' 105 103 117 107 116 1316 401601' 111 132 105 104 040 1317 401602' 123 127 111 124 103 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 12-1 SDEC MAC 27-MAR-74 09:33 DATA LOCATIONS IN HISEG 1318 401603' 110 040 000 000 000 1319 401604' 054 040 116 105 130 1320 401605' 124 040 123 127 111 1321 401606' 124 103 110 040 044 1322 401607' 000 000 000 000 000 1323 401610' 015 012 103 117 116 1324 401611' 124 111 116 125 105 1325 401612' 054 040 116 117 124 1326 401613' 110 111 116 107 040 1327 401614' 110 101 123 040 102 1328 401615' 105 105 116 040 103 1329 401616' 110 101 116 107 105 1330 401617' 104 015 012 000 000 1331 401620' 000474' 000001 1332 401621' 015 012 105 122 122 1333 401622' 117 122 123 000 000 1334 401623' 000000 000044 1335 401624' 015 012 116 117 040 1336 401625' 126 101 122 111 101 1337 401626' 102 114 105 123 040 1338 401627' 104 105 106 111 116 1339 401630' 105 104 000 000 000 1340 401631' 015 012 116 117 127 1341 401632' 000 000 000 000 000 1342 401633' 015 012 105 122 122 1343 401634' 117 122 123 040 103 1344 401635' 114 105 101 122 105 1345 401636' 104 000 000 000 000 1346 401637' 015 012 015 012 123 1347 401640' 127 111 124 103 110 1348 401641' 105 123 040 101 122 1349 401642' 105 072 015 012 075 1350 401643' 075 075 075 075 075 1351 401644' 075 075 075 075 075 1352 401645' 075 075 015 012 103 1353 401646' 040 040 040 040 055 1354 401647' 040 103 114 105 101 1355 401650' 122 040 105 122 122 1356 401651' 117 122 040 103 117 1357 401652' 125 116 124 054 040 1358 401653' 103 117 115 115 101 1359 401654' 116 104 040 103 117 1360 401655' 116 124 111 116 125 1361 401656' 105 104 015 012 104 1362 401657' 040 040 040 040 055 1363 401660' 040 104 125 115 120 1364 401661' 040 101 114 114 040 1365 401662' 126 101 122 111 101 1366 401663' 102 114 105 123 040 1367 401664' 101 116 104 040 126 1368 401665' 101 114 125 105 123 1369 401666' 040 101 123 123 111 1370 401667' 107 116 105 104 040 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 12-2 SDEC MAC 27-MAR-74 09:33 DATA LOCATIONS IN HISEG 1371 401670' 124 117 040 104 101 1372 401671' 124 105 015 012 105 1373 401672' 040 040 040 040 055 1374 401673' 040 105 130 111 124 1375 401674' 015 012 110 040 040 1376 401675' 040 040 055 040 124 1377 401676' 131 120 105 040 124 1378 401677' 110 111 123 040 124 1379 401700' 105 130 124 000 000 1380 401701' 015 012 114 040 040 1381 401702' 040 040 055 040 114 1382 401703' 111 123 124 040 105 1383 401704' 122 122 117 122 123 1384 401705' 040 101 116 104 040 1385 401706' 111 115 120 114 111 1386 401707' 103 111 124 040 122 1387 401710' 015 012 121 040 040 1388 401711' 040 040 055 040 121 1389 401712' 125 105 122 131 040 1390 401713' 111 106 040 105 122 1391 401714' 122 117 122 123 040 1392 401715' 105 130 111 123 124 1393 401716' 015 012 122 040 040 1394 401717' 040 040 055 040 122 1395 401720' 105 123 124 101 122 1396 401721' 124 040 103 117 115 1397 401722' 115 101 116 104 000 1398 401723' 015 012 130 040 040 1399 401724' 040 040 055 040 104 1400 401725' 105 114 105 124 105 1401 401726' 040 126 101 122 111 1402 401727' 101 102 114 105 123 1403 401730' 015 012 074 101 114 1404 401731' 124 076 055 040 124 1405 401732' 105 122 115 111 116 1406 401733' 101 124 105 123 040 1407 401734' 123 127 111 124 103 1408 401735' 110 040 114 111 123 1409 401736' 124 015 012 015 012 1410 401737' 116 117 127 000 000 1411 401740' 015 012 103 117 116 1412 401741' 106 111 122 115 072 1413 401742' 040 000 000 000 000 1414 401743' 015 012 101 114 114 1415 401744' 040 103 114 105 101 1416 401745' 122 105 104 000 000 1417 401746' 44 06 0 00 000002 1418 401747' 777777 777772 1419 401750' 777777 777776 1420 401751' 103 114 105 101 122 1421 401752' 105 104 000 000 000 1422 401753' 116 117 040 105 122 1423 401754' 122 117 122 123 040 SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 12-3 SDEC MAC 27-MAR-74 09:33 DATA LOCATIONS IN HISEG 1424 401755' 131 105 124 000 000 1425 401756' 111 114 114 056 040 1426 401757' 103 110 101 122 056 1427 401760' 040 111 116 040 111 1428 401761' 116 120 125 124 000 1429 401762' 124 117 117 040 115 1430 401763' 101 116 131 040 103 1431 401764' 110 101 122 123 000 1432 401765' 125 116 104 105 106 1433 401766' 111 116 105 104 040 1434 401767' 126 101 122 111 101 1435 401770' 102 114 105 000 000 1436 401771' 104 105 114 111 115 1437 401772' 111 124 105 122 040 1438 401773' 105 130 120 105 103 1439 401774' 124 105 104 000 000 1440 401775' 116 117 056 040 117 1441 401776' 125 124 040 117 106 1442 401777' 040 122 101 116 107 1443 402000' 105 000 000 000 000 1444 402001' 105 130 120 040 117 1445 402002' 125 124 040 117 106 1446 402003' 040 122 101 116 107 1447 402004' 105 000 000 000 000 1448 402005' 124 117 117 040 115 1449 402006' 101 116 131 040 126 1450 402007' 101 122 111 101 102 1451 402010' 114 105 123 000 000 1452 402011' 105 130 105 103 040 1453 402012' 117 126 057 125 116 1454 402013' 104 040 106 114 117 1455 402014' 127 000 000 000 000 1456 402015' 125 116 102 101 114 1457 402016' 040 120 101 122 105 1458 402017' 116 124 110 000 000 1459 402020' 125 104 106 040 106 1460 402021' 103 116 000 000 000 1461 402022' 000000 000040 1462 402023' 000000 000136 1463 402024' 44 06 0 00 000004 1464 402025' 777777 777773 1465 402026' 202 04 0 00 000006 1466 402027' 201400 000000 1467 402030' 165 04 0 00 204500 1468 402031' 777777 777732 1469 402032' 44 06 0 00 000001 1470 402033' 040 075 040 000 000 1471 402034' 151655 376246 1472 402035' 175631 463146 1473 000000' RELOC 1474 1475 PAGE SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 13 SDEC MAC 27-MAR-74 09:33 DATA LOCATIONS IN LOSEG 1476 SUBTTL DATA LOCATIONS IN LOSEG 1477 1478 1479 000000' VARTAB: BLOCK 50 ;PREDEFINED VARIABLES 1480 000050' REAL: BLOCK 50 ;REAL PARTS 1481 000120' IMAG: BLOCK 50 ;IMAG PARTS 1482 000170' S1: BLOCK 100 ;TEMP STORAGE STACKS 1483 000270' S2: BLOCK 100 1484 000370' SUBSTK: BLOCK 100 ;S/R LINKAGE 1485 000470' ASSFLG: BLOCK 1 ;ASSIGNMENT FLAG 1486 000471' SIGN: BLOCK 1 ;SIGN HANDLING 1487 000472' TIME: BLOCK 1 ;RECURSIVE S/R TIME CALLED 1488 000473' WFROM: BLOCK 1 ;-VE PROCESSING 1489 000474' SAV: BLOCK 5 ;SAVE ACS 1490 000501' SAVT0: BLOCK 1 ;SAVE T0 1491 000502' REPLT0: BLOCK 1 ;REPLACE T0 1492 000503' SAVL: BLOCK 1 ;SAVE L 1493 000504' NLETT: BLOCK 1 1494 1495 400000' END START NO ERRORS DETECTED HI-SEG. BREAK IS 402040 PROGRAM BREAK IS 000505 3K CORE USED SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 14 SDEC MAC 27-MAR-74 09:33 SYMBOL TABLE A1 000011 SPD E2 401010' NEGTIV 401263' SAVL 000503' A2 000012 SPD E3 401013' NEWCOM 400006' SAVT0 000501' A3 000013 SPD E4 401016' NEXTCH 401073' SHFMK1 400731' A4 000014 SPD E5 401021' NFND 401337' SHFMK2 400743' ANG 400371' E6 401024' NLETT 000504' SHFRET 400726' ARR1 401047' E7 401027' NOTEMP 400104' SHUFF1 400722' ARROW 401042' E8 401032' NSMES 400550' SHUFFL 400720' ASSFLG 000470' E9 401035' NSW 400521' SHUFIN 400747' ASSFND 400333' ECLR 400606' NUMPRT 400514' SHUFMK 400730' ASSIGN 400120' ERPRNT 400757' NVAR 401115' SIGN 000471' ASSLOP 400321' ERRCHR 400754' OFCHK 401341' SIND 400463' EXT ASSNFD 400332' ERRFUN 400356' OPR 400077' SINH 400423' ATAN2 400501' EXT ERRH 400751' OPRET 400111' SKCHCK 401346' BACB1 400124' ERRSW 400617' OUTCHR 051040 000000 SKRT 401132' BACBRA 400123' EXER 401520' OUTSTR 051140 000000 SNH 400401' BLPRC 400154' EXIT 047000 000012 PL 401272' START 400000' BRACE 400115' EXOV 401516' POL 400476' STOR2 401512' CABS 400476' EXT F1 000011 SPD POSFIN 400157' SUBSTK 000370' CAR 400463' F2 000012 SPD POSTR 400166' SWITCH 400517' CARRET 400472' FALLEV 400101' PPN 401537' T0 000000 SPD CASS 400314' FILNAM 401536' PROCES 400173' T1 000001 SPD CDIGIT 401230' FINONE 401330' PROCIG 400143' T2 000002 SPD CDIV 400253' FLOTR 401301' PS1 000015 SPD T3 000003 SPD CEXP 400452' EXT FOVH 401343' PS2 000016 SPD T4 000004 SPD CEXP.3 400306' EXT FUNCT 401124' PSB 000017 SPD T5 000005 SPD CFDM.0 400420' EXT FUNCTH 400337' QNO 400564' T6 000014 SPD CMIN 400227' G1 000006 SPD QUERY 400557' TIME 000472' CMUL 400234' G2 000007 SPD RCPAIR 401142' TNH 400407' CNUMBR 400072' G3 000010 SPD RDEC1 401242' TOMANY 401135' CONST 401066' GET2 401507' RDECEX 401237' TPOP 400176' COSD 400466' EXT GET4 401505' RDEND 401252' TST 401273' COSH 400442' GETCHR 401053' RDERR 401257' TSTRET 401275' CPL 400222' GOOD 401103' RDIGIT 401227' UNB 400133' CRLF 401540' HELP 400612' RE 400626' UNB1 400136' CRTEST 400663' IMAG 000120' REAL 000050' VARTAB 000000' CSH 400404' INCHRW 051000 000000 REPLT0 000502' VCODE 000001 SPD CUP 400301' INMITC 400022' RESET 047000 000000 VEDIT 000062 SPD DELEN1 400702' INNOC 400021' RESOUT 400507' VMAJOR 000002 SPD DELEND 400701' INSW 401061' RET 401121' VMINOR 000003 SPD DELFIN 400715' L 000016 SPD RRE10 401152' WASCII 401362' DELFND 400710' LASTCH 401110' RRE20 401161' WCPAIR 401472' DELLEG 400673' LASTNO 400553' RRE30 401163' WD1 401455' DELS1 400646' LASTSW 400552' RRE40 401172' WDECL 401451' DELSOM 400643' LETTER 400065' RRE50 401204' WDIGIT 401435' DELVAR 400630' LEV 401312' RRE60 401210' WFP1 401372' DEND 400604' LEVFND 401327' RRE61 401214' WFPNO 401364' DESCR 401535' LEVTAB 401524' RRE63 401220' WFROM 000473' DNO1 400573' LFTEST 400667' RRE70 401221' WP1 401465' DNO2 400574' MAG 400363' RRE80 401224' WPR 401461' DUMP 400567' MESS 400766' RREAL 401145' WR6ST1 401354' E0 401002' MS 400767' S1 000170' WR6STR 401352' E1 401005' NDEF 401140' S2 000270' WRE20 401375' E10 401040' NEGDEC 401262' SAV 000474' WRE25 401401' SCAT2 STANDARD COMPLEX ALGEBRA TRANSLATER V.2. MACRO 47(116)-2 09:33 27-MAR-74 PAGE 14-1 SDEC MAC 27-MAR-74 09:33 SYMBOL TABLE WRE30 401405' WRE40 401415' WRE50 401417' WRE60 401421' WRE70 401425' .JBVER 000137 SIN A1 21# 29 279 287 295 303 307 321 329 335 345 349 374 406 407 414 416 431 435 445 453 457 461 466 469 476 480 487 492 495 506 507 509 515 519 612 1229 1244 1249 A2 22# 30 280 288 297 301 308 323 327 336 346 350 375 408 413 417 432 436 458 467 470 481 493 496 501 504 510 518 613 1233 1243 1250 A3 23# 279 287 296 302 315 316 322 328 344 431 435 442 1242 A4 24# 31 235 280 288 298 304 317 318 324 330 432 436 443 1241 ANG 387 412# ARR1 859# 860 ARROW 796 799 854# ASSFLG 359 527 1485# ASSFND 364 374# ASSIGN 108 165# ASSLOP 362# 366 ASSNFD 365 373# ATAN2 412# 412 517# 517 BACB1 172# 178 BACBRA 117 171# BLPRC 194 203# BRACE 112 155 159# CABS 405# 405 514# 514 CAR 395 500# CARRET 509# 522 CASS 262 356# CDIGIT 957 1012# CDIV 253 314# CEXP 452# 452 460# 460 475# 475 486# 486 CEXP.3 347# 347 CFDM.0 446# 446 CMIN 250 286# CMUL 256 294# CNUMBR 90 134# CONST 126 886# COSD 503# 503 COSH 426 437 475# CPL 247 278# CRLF 535 608 656 663 801 1280# CRTEST 704 710# CSH 393 426# CUP 259 342# DELEN1 734# 737 DELEND 707 732# 751 DELFIN 717 749# DELFND 735 743# DELLEG 696 701 723# DELS1 693# 714 726 DELSOM 674 689# 708 DELVAR 565 668# DEND 610 617# DESCR 1277# DNO1 602 607# DNO2 608# 615 DUMP 551 600# E0 807 819# E1 808 822# E10 817 849# E2 809 825# E3 810 828# E4 811 831# E5 812 834# E6 813 837# E7 814 840# E8 815 843# E9 816 846# ECLR 561 623# ERPRNT 186 371 403 660 795# 1261 ERRCHR 791# 793 ERRFUN 399# ERRH 181 201 720 729 740 787# 939 942 1007 1037 1100 ERRSW 559 654# EXER 1256 1258# EXOV 1251 1256# F1 29# 65 129 137 145 160 166 171 203 204 1104 F2 30# 1105 FALLEV 144# 148 FILNAM 1278# FINONE 1084# 1088 FLOTR 1050 1055# FOVH 1096 1098# FUNCT 912 924# FUNCTH 266 382# G1 18# 128 135 360 362 366 373 374 375 607 609 612 613 615 920 933 947 948 G2 19# 127 136 921 948 G3 20# 64 73 179 180 182 183 184 199 200 572 588 592 595 623 626 649 654 657 658 670 684 719 728 739 787 788 870 879 937 938 941 1005 1006 1036 1098 1099 GET2 356 382 532 1243# GET4 278 286 294 314 342 1241# GETCHR 78 583 791 869# 892 950 952 956 1011 1021 1023 GOOD 897 903# HELP 563 631# IMAG 375 613 770 771 777 920 1481# INMITC 79# 130 930 INNOC 78# 138 153 161 167 176 197 205 INSW 545 671 713 725 746 878# 881 L 28# 343 344 348 405 412 445 452 460 475 486 500 503 514 517 LASTCH 901 909# LASTNO 581# 596 LASTSW 549 578# LETTER 85 126# LEV 147 1067# LEVFND 1067 1073 1083# LEVTAB 1085 1089 1267# LFTEST 711 716# MAG 385 405# MESS 797 806# MS 806 807# NDEF 916 941# NEGDEC 1022 1040# NEGTIV 951 1041# NEWCOM 61# 537 664 802 NEXTCH 892# 907 NFND 1084 1091# NLETT 706 745 750 1493# NOTEMP 143 147# NSMES 573# 593 605 619 627 650 685 782 NSW 545# 574 NUMPRT 528 534# NVAR 915# 918 OFCHK 961 970 987 1096# OPR 96 99 101 103 142# 151 OPRET 146 152# PL 1046 1048# POL 397 514# POSFIN 191 209# 215 POSTR 210 221# 225 PPN 1279# PROCES 222 233# PROCIG 119 190# PS1 25# 68 142 144 149 159 165 172 174 209 211 224 242 244 1071 1080 1208 1217 PS2 26# 69 127 128 135 136 150 177 214 221 223 269 357 1241 1242 1243 1244 1249 1250 PSB 27# 48 70 78 80 87 92 105 109 114 126 134 147 278 281 286 289 294 309 314 337 342 347 351 356 358 376 382 399 409 418 421 422 426 427 434 437 446 448 472 498 511 531 532 534 545 583 584 611 614 671 707 713 725 746 747 751 791 796 797 799 821 824 827 830 833 836 839 842 845 848 850 855 862 873 874 882 892 922 928 934 935 950 951 952 956 957 961 966 970 979 987 998 999 1011 1014 1017 1018 1021 1022 1023 1035 1038 1042 1047 1052 1054 1067 1073 1078 1081 1090 1092 1097 1106 1107 1117 1121 1128 1142 1162 1165 1169 1173 1176 1180 1182 1194 1197 1215 1219 1222 1228 1230 1232 1234 1236 1237 1245 1251 1252 1257 QNO 589 594# 655 QUERY 557 588# RCPAIR 134 946# RDEC1 1023# 1030 RDECEX 979 1020# RDEND 1026 1031# RDERR 1034 1036# RDIGIT 966 1011# RE 555 663# REAL 374 612 768 769 776 921 1480# REPLT0 1072 1079 1491# RESOUT 243 527# RET 920# RRE10 956# 962 RRE20 958 964# RRE30 966# 972 RRE40 965 967 974# RRE50 985# 988 RRE60 976 985 990# RRE61 995# 1003 RRE63 999# 1001 RRE70 991 1001# RRE80 993 1005# RREAL 950# 998 S1 52 61 62 68 680 1482# S2 69 1483# SAV 542 543 581 1489# SAVL 343 348 1492# SAVT0 1490# SHFMK1 764# 773 SHFMK2 765 775# SHFRET 760# SHUFF1 756# 760 SHUFFL 749 753# 779 SHUFIN 757 761 781# SHUFMK 759 763# SIGN 974 1031 1051 1486# SIND 500# 500 SINH 421 434 452# SKCHCK 80 87 92 105 109 114 1104# SKRT 910 933# SNH 389 421# START 47# 1495 STOR2 281 289 309 337 351 376 399 409 418 422 427 448 511 1249# SUBSTK 48 70 1484# SWITCH 542# 873 T0 12# 51 52 62 63 82 83 89 94 95 97 98 100 102 107 111 116 144 152 154 159 165 190 193 196 223 224 234 235 244 246 249 252 255 258 261 264 269 315 316 319 333 334 345 349 362 363 365 384 386 388 390 392 394 396 407 415 416 442 454 463 477 483 489 492 502 506 509 516 520 521 542 543 547 548 550 552 554 556 558 560 562 564 571 581 582 673 678 680 693 694 698 699 703 710 716 723 724 743 744 792 869 871 872 878 880 888 889 894 895 899 900 905 906 909 911 929 960 964 968 969 975 990 992 1012 1013 1015 1016 1024 1025 1028 1029 1043 1045 1069 1071 1072 1075 1086 1115 1116 1127 1139 1141 1161 1168 1172 1181 1191 1212 1214 1217 1218 1227 1231 1235 T1 13# 149 150 174 175 177 233 234 264 265 295 296 299 307 317 318 319 321 322 325 333 335 346 350 357 363 373 443 455 464 478 484 490 493 530 542 581 588 589 609 610 654 655 689 724 732 734 736 737 744 766 767 768 769 770 771 915 916 917 953 959 968 971 1055 1056 1057 1058 1060 1061 1068 1074 1085 1087 1089 1091 1113 1137 1138 1157 1158 1183 1188 1189 1190 1203 1205 1207 1209 1229 1233 T2 14# 211 212 214 234 297 298 299 301 302 305 308 323 324 325 327 328 331 334 336 454 463 466 477 483 489 689 691 734 749 981 983 985 1020 1027 1029 1031 1032 1033 1059 1060 1062 1112 1118 1190 1191 1192 1193 1208 T3 15# 185 303 304 305 329 330 331 370 402 455 464 467 478 484 490 659 690 726 763 764 766 767 768 769 770 771 772 773 775 776 777 789 798 857 890 903 947 995 996 1069 1075 1079 1080 1113 1115 1137 1144 1146 1148 1151 1153 1156 1177 1186 1188 1193 1195 1196 1260 T4 16# 184 369 400 658 754 758 788 806 886 887 917 924 927 929 933 947 954 959 960 969 974 977 978 980 982 1001 1074 1077 1083 1084 1085 1089 1135 1159 1179 1183 1202 1204 1213 1259 T5 17# 183 368 401 502 507 510 516 521 582 657 753 756 758 760 763 787 795 820 823 826 829 832 835 838 841 844 847 854 856 858 860 886 889 906 913 915 918 920 921 980 982 986 1068 1077 1135 1149 1154 1157 1159 1160 1166 1171 1174 1202 1210 1220 1258 T6 31# 1041 1048 1051 1055 1061 1086 1087 1136 1187 1195 TIME 946 997 1002 1487# TNH 391 431# TOMANY 904 925 937# TPOP 242# 270 282 290 310 338 352 377 410 419 423 428 449 512 TST 1044 1049# TSTRET 1051# 1063 UNB 173 179# UNB1 182# 213 VARTAB 50 51 362 373 601 609 678 679 734 736 744 756 758 764 766 767 775 915 1479# VCODE 6# 36 VEDIT 9# 36 VMAJOR 7# 36 VMINOR 8# 36 WASCII 1117 1127# 1142 1162 1169 1173 1182 1194 1215 1219 1228 1232 1236 WCPAIR 534 614 1227# WD1 1207# 1210 WDECL 1184 1202# WDIGIT 1165 1176 1186# WFP1 1138 1141# WFPNO 1135# 1230 1234 WFROM 63 1040 1049 1053 1488# WP1 1217# 1220 WPR 1209 1212# WR6ST1 1115# 1118 WR6STR 358 531 611 1112# WRE20 1146# 1149 WRE25 1147 1151# 1154 WRE30 1144 1152 1156# WRE40 1160 1165# 1166 WRE50 1163 1168# WRE60 1171# 1174 WRE70 1171 1176# 1177 .JBVER 33 34# 35 EXIT 553 INCHRW 869 878 OUTCHR 72 571 594 859 861 1127 OUTSTR 54 535 569 573 578 590 603 608 617 624 631 639 643 656 663 668 682 781 801 819 822 825 828 831 834 837 840 843 846 849 1120 RESET 47