1 / VC8E *TV* HANDLER FOR A STORAGE SCOPE (DTB, CRW, JVZ) 2 3 /THIS HANDLER USES A STANDARD VC8E INTERFACE TO PRODUCE 4 /OUTPUT ON A TEKTRONIX 611/613 STORAGE SCOPE. THE RANGE 5 /OF THE X- AND Y-AXES IS ASSUMED TO BE FROM -777 TO +777. 6 /THIS REQUIRES ADDITIONAL INSTRUCTIONS, HENCE THE CTRL/C 7 /CHECK HAS BEEN OMITTED. THE INTERFACE IS ALSO ASSUMED TO 8 /-NOT- HAVE THE *ERASE* FUNCTION IN THE ENABLE REGISTER, 9 /BUT TO USE THE *DICD* INSTRUCTION TO CLEAR THE SCREEN. 10 11 /THE HANDLER OUTPUTS CHARACTERS UNTIL THE SCREEN IS FULL 12 /THEN WAITS FOR KEYBOARD INPUT BEFORE ERASING EVERYTHING 13 14 /NOTE: THE *MQ* REGISTER IS USED BY THE DISPLAY ROUTINE. 15 16 /ACKNOWLEDGEMENTS: THIS HANDLER BENEFITS FROM THE MANY 17 /HOURS OF HARD WORK BY DANIEL T. BROWN & CRAIG R. WYSS 18 /OF THE DEPT. OF PHYSIOLOGY AND BIOPHYSICS AT THE UNIV. 19 /OF WASHINGTON. 20 21 22 DICD=6051 23 DILX=6053 24 DILY=6054 25 DIXY=6055 26 27 IFNDEF DIER /EQUATE *ERASE* WITH *CLEAR DONE* 28 29 /PARAMETER BLOCK FOR *BUILD*: 30 31 PAGE 0 32 00000 7777 -1 33 00001 2603 DEVICE VC8E 00002 7005 34 00003 2426 DEVICE TV 00004 0000 35 00005 1300 1300;4175 00006 4175 36 00007 0000 ZBLOCK 2 00010 0000 37 38 PAGE 1 39 00200 0000 START, 0 /POINTS TO THE NEXT PAGE 40 00201 7326 CLA STL RTL 41 00202 6214 RDF 42 00203 1307 TAD CDF0 /COMPUTE THE RETURN *CDI* 43 00204 3245 DCA CDIX 44 00205 1775 TAD I CRT /ARG1 45 00206 7500 SMA /CHECK FOR A *READ* 46 00207 5241 JMP EXIT 47 00210 0377 K377, AND (70 48 00211 1307 TAD CDF0 49 00212 3332 DCA CDFX /BUFFER FIELD 50 00213 1775 TAD I CRT 51 00214 7004 C7004, RAL /MULTIPLY BY 2 52 00215 0241 AND EXIT /GET WORD COUNT 53 00216 7170 STL CMA RAR /NEGATE & DIVIDE BY 2 54 00217 3240 DCA WCNT 55 00220 2375 ISZ CRT 56 00221 1775 TAD I CRT /ARG2 57 00222 3257 DCA BUFF /BUFFER ADDRESS 58 00223 5235 JMP BEGIN 59 00224 0000 TEMP, 0 60 61 00225 4247 LOOP, JMS GETC /UNPACK THE BUFFER 62 00226 3224 DCA TEMP 63 00227 4247 JMS GETC /FIRST TWO CHARACTERS ARE EASY 64 00230 7112 CLL RTR 65 00231 7012 RTR 66 00232 1224 TAD TEMP /HERE*S HOW WE GET THE THIRD 67 00233 7012 RTR 68 00234 7012 RTR 69 00235 4306 BEGIN, JMS PUTC /SETS THE D.F. THE FIRST TIME 70 00236 2240 ISZ WCNT 71 00237 5225 JMP LOOP 72 00240 0000 WCNT, 0 73 74 00241 7600 EXIT, 7600 /*CLA* 75 00242 2375 ISZ CRT /PASS THE BLOCK NUMBER 76 00243 2375 ISZ CRT /AND THE ERROR RETURN 77 00244 2375 ISZ CRT 78 00245 6203 CDIX, CDF CIF 79 00246 5775 JMP I CRT /**RETURN** 80 81 00247 0000 GETC, 0 /READ THE BUFFER 82 00250 1657 TAD I BUFF 83 00251 4306 JMS PUTC /AND WRITE IT OUT 84 00252 1657 TAD I BUFF 85 00253 0255 AND .+2 /GET THE UPPER FOUR BITS 86 00254 2257 ISZ BUFF 87 00255 7400 7400 /= *NOP* 88 00256 5647 JMP I GETC 89 00257 0000 BUFF, 0 90 91 00260 7772 M6, -6 92 00261 7766 MLF, -12 93 00262 0177 K177, 177 94 00263 6031 WAIT, KSF /WAIT AT THE BOTTOM OF A PAGE 95 00264 5263 JMP .-1 96 00265 6051 DIER /PUSH THE *ERASE* BUTTON 97 00266 6032 KCC /CLEAR THE FLAG 98 00267 2334 ISZ CNTR /WAIT A WHILE... 99 00270 5267 JMP .-1 100 00271 2373 ISZ Y /WAIT A WHILE LONGER... 101 00272 5267 JMP .-3 102 00273 1337 TAD C1744 103 00274 5301 JMP LF+4 /AND START FROM THE TOP AGAIN 104 105 00275 1371 LF, TAD C1000 /RESET THE X POSITION 106 00276 3372 DCA X 107 00277 1373 TAD Y 108 00300 1305 TAD M40 /MOVE DOWNWARD A LINE 109 00301 3373 DCA Y 110 00302 1373 TAD Y 111 00303 7750 M30, SNA SPA CLA /LAST LINE? 112 00304 5263 JMP WAIT 113 00305 7740 M40, SMA SZA CLA /EFFECTIVE *JMP CDFX* 114 115 00306 0000 PUTC, 0 /CHARACTER CHECKS 116 00307 6201 CDF0, CDF 0 /FOR ACCESS TO PAGE 2 117 00310 0262 AND K177 118 00311 7450 SNA 119 00312 5332 JMP CDFX /IGNORE NULLS 120 00313 1261 TAD MLF 121 00314 7450 SNA /NEW LINE? 122 00315 5275 JMP LF /YES - *CR* IS IGNORED 123 00316 1323 TAD M20 124 00317 7450 SNA /END OF FILE? 125 00320 5241 JMP EXIT /YES 126 00321 1260 TAD M6 127 00322 7510 SPA /NON-PRINTING? USE A SPACE 128 00323 7760 M20, SMA SZA SNL CLA /=212-232; EFFECTIVE *SKP* 129 00324 7104 CLL RAL /X2 130 00325 1200 TAD START /PLUS BEGINNING 131 00326 3344 DCA ADDR /= PATTERN ADDRESS 132 00327 4335 JMS OUTC /WRITE THE BIT PATTERN 133 00330 4335 JMS OUTC 134 00331 4345 JMS PLTC /PLUS A LITTLE SPACE 135 00332 6201 CDFX, CDF /FOR ACCESS TO THE BUFFER 136 00333 5706 JMP I PUTC 137 00334 0000 CNTR, 0 138 MQL=7421 139 00335 0000 OUTC, 0 /WRITE TWO VERTICAL LINES 140 00336 2344 ISZ ADDR 141 00337 1744 C1744, TAD I ADDR /FIELD 0, OF COURSE 142 00340 7421 MQL 143 00341 4345 JMS PLTC /PRINT THE DOTS 144 00342 4345 JMS PLTC 145 00343 5735 JMP I OUTC 146 00344 0000 ADDR, 0 147 00345 0000 PLTC, 0 /NOW FOR SOME ACTION! 148 00346 1260 TAD M6 149 00347 3334 DCA CNTR /6 DOTS HIGH 150 00350 7125 STL IAC RAL /=3 151 00351 1372 TAD X /SET THE X-COORDINATE 152 00352 6053 DILX 153 00353 3372 DCA X /SAVE FOR THE NEXT COLUMN 154 SWP=7521 155 00354 1373 TAD Y 156 00355 1371 DOTS, TAD C1000 /TOGGLE THE SIGN BIT 157 00356 6054 DILY /SET THE Y-COORDINATE 158 00357 1214 TAD C7004 /ADVANCE AND SAVE 159 00360 7521 SWP 160 00361 7510 SPA /READ THE PATTERN 161 00362 6055 DIXY /INTENSIFY 162 00363 7104 CLL RAL 163 00364 7521 SWP /SWAP AND SAVE AGAIN 164 00365 2334 ISZ CNTR /COUNT THE DOTS 165 00366 5355 JMP DOTS 166 00367 7200 CLA /REMOVE VERTICAL VALUE 167 00370 5745 JMP I PLTC 168 00371 1000 C1000, 1000 169 170 00372 0000 X, 0 /INITIAL VALUES 171 00373 1744 Y, TAD I ADDR /PRACTICALLY FS 172 173 *400-3 174 00375 0001 CRT, "A&77 /HERE*S THE ENTRY POINT! 175 00376 4200 JMS START /GET THE ADDRESS OF PAGE 2 176 177 00377 0070 PAGE 2 178 179 00400 0000 0000 /SPACE 180 00401 0000 0000 181 00402 5600 5600 /! 182 00403 0000 0000 183 00404 0303 0303 /" 184 00405 0000 0000 185 00406 1477 1477 /# 186 00407 7714 7714 187 00410 5652 5652 /$ 188 00411 7772 7772 189 00412 2313 2313 /% 190 00413 6462 6462 191 00414 7652 7652 /& 192 00415 7752 7752 193 00416 0300 0300 /' 194 00417 0000 0000 195 00420 3641 3641 /( 196 00421 0000 0000 197 00422 4136 4136 /) 198 00423 0000 0000 199 00424 0005 0005 /* 200 00425 0205 0205 201 00426 1034 1034 /+ 202 00427 1000 1000 203 00430 0040 0040 /, 204 00431 3000 3000 205 00432 1010 1010 /- 206 00433 1000 1000 207 00434 4000 4000 /. 208 00435 0000 0000 209 00436 2010 2010 // 210 00437 0402 0402 211 00440 3641 3641 /0 212 00441 4136 4136 213 00442 4442 4442 /1 214 00443 7740 7740 215 00444 4261 4261 /2 216 00445 5146 5146 217 00446 2145 2145 /3 218 00447 5321 5321 219 00450 1710 1710 /4 220 00451 1077 1077 221 00452 4745 4745 /5 222 00453 4531 4531 223 00454 7750 7750 /6 224 00455 5070 5070 225 00456 6111 6111 /7 226 00457 0503 0503 227 00460 2255 2255 /8 228 00461 5522 5522 229 00462 0705 0705 /9 230 00463 0577 0577 231 00464 2400 2400 /: 232 00465 0000 0000 233 00466 0040 0040 /; 234 00467 3200 3200 235 00470 1024 1024 /< 236 00471 4200 4200 237 00472 1212 1212 /= 238 00473 1200 1200 239 00474 4224 4224 /> 240 00475 1000 1000 241 00476 0255 0255 /? 242 00477 0300 0300 243 244 00500 7775 7775 /@ 245 00501 4577 4577 246 00502 7611 7611 /A 247 00503 1176 1176 248 00504 7745 7745 /B 249 00505 4532 4532 250 00506 3641 3641 /C 251 00507 4122 4122 252 00510 7741 7741 /D 253 00511 4136 4136 254 00512 7745 7745 /E 255 00513 4541 4541 256 00514 7705 7705 /F 257 00515 0501 0501 258 00516 7741 7741 /G 259 00517 5173 5173 260 00520 7710 7710 /H 261 00521 1077 1077 262 00522 4177 4177 /I 263 00523 4100 4100 264 00524 2040 2040 /J 265 00525 4037 4037 266 00526 7714 7714 /K 267 00527 2241 2241 268 00530 7740 7740 /L 269 00531 4040 4040 270 00532 7702 7702 /M 271 00533 0277 0277 272 00534 7706 7706 /N 273 00535 3077 3077 274 00536 7741 7741 /O 275 00537 4177 4177 276 00540 7705 7705 /P 277 00541 0502 0502 278 00542 3641 3641 /Q 279 00543 6176 6176 280 00544 7715 7715 /R 281 00545 2542 2542 282 00546 2245 2245 /S 283 00547 5122 5122 284 00550 0177 0177 /T 285 00551 0100 0100 286 00552 3740 3740 /U 287 00553 4037 4037 288 00554 1720 1720 /V 289 00555 4037 4037 290 00556 7730 7730 /W 291 00557 3077 3077 292 00560 4136 4136 /X 293 00561 3641 3641 294 00562 0374 0374 /Y 295 00563 7403 7403 296 00564 6151 6151 /Z 297 00565 4543 4543 298 00566 7741 7741 /[ 299 00567 0000 0000 300 00570 0204 0204 /\ 301 00571 1020 1020 302 00572 4177 4177 /] 303 00573 0000 0000 304 00574 0436 0436 /^ 305 00575 0400 0400 306 00576 0416 0416 /_ 307 00577 3704 3704 308 $ ADDR 0344 BEGIN 0235 BUFF 0257 C1000 0371 C1744 0337 C7004 0214 CDF0 0307 CDFX 0332 CDIX 0245 CNTR 0334 CRT 0375 DICD 6051 DIER 6051 DILX 6053 DILY 6054 DIXY 6055 DOTS 0355 EXIT 0241 GETC 0247 K177 0262 K377 0210 unreferenced LF 0275 LOOP 0225 M20 0323 M30 0303 unreferenced M40 0305 M6 0260 MLF 0261 MQL 7421 OUTC 0335 PLTC 0345 PUTC 0306 START 0200 SWP 7521 TEMP 0224 WAIT 0263 WCNT 0240 X 0372 Y 0373