1 / VC8E/VR14 scope test program. 2 3 / VC8E IOTs 4 5 DILC=6050 / reset 6 DICD=6051 / clear done flag 7 DISD=6052 / skip if done 8 DILX=6053 / load X 9 DILY=6054 / load Y 10 DIXY=6055 / intensify point 11 DILE=6056 / load enable/status reg, clear AC 12 DIRE=6056 / read enable/status reg 13 14 / VC8E enable/status register bits 15 16 VCDONE=4000 / done flag (read only) 17 VCWRTH=0040 / write-through (for storage scopes) 18 VCSTOR=0020 / store (for storage scopes) 19 VCERAS=0010 / erase (for storage scopes) 20 VCCOLR=0004 / color (for VR20) 21 /VCCOLR=0002 / channel (for VR14/VR20) 22 VCINTE=0001 / interrupt enable 23 24 / VC8E dot pitch for pixels in text 25 VCPICH=0010 26 27 / Index Regs 28 * 0010 29 00010 0000 X0, .-. 30 31 / Globals 32 * 0020 33 00020 0000 TBL, 0 34 00021 1000 TBLLOC, OUTTB 35 00022 0000 POINTS, 0 36 00023 4000 K4000, 4000 37 38 / Main program 39 * 0200 40 START, / initialization 41 00200 6050 DILC 42 REPLOT, / main display refresh loop 43 00201 7200 CLA 44 00202 1021 TAD TBLLOC 45 00203 3020 DCA TBL 46 00204 4577 JMS I [VCAT] 47 00205 1200 1200 48 00206 0300 300 49 00207 4576 JMS I [VCTEXT] 50 00210 0252 STR1 51 00211 4576 JMS I [VCTEXT] 52 00212 0300 STR2 53 00213 4577 JMS I [VCAT] 54 00214 1400 1400 55 00215 1400 1400 56 00216 4576 JMS I [VCTEXT] 57 00217 0316 STR3 58 00220 1021 PLOTB, TAD TBLLOC 59 00221 7041 CMA IAC 60 00222 1020 TAD TBL 61 00223 7041 CMA IAC 62 00224 3022 DCA POINTS 63 00225 7040 CMA 64 00226 1021 TAD TBLLOC 65 00227 3010 DCA X0 66 00230 1410 OUTIT, TAD I X0 67 00231 7510 SPA 68 00232 5245 JMP DOX 69 00233 6054 DILY 70 00234 6052 DISD 71 00235 5234 JMP .-1 / wait for ready 72 00236 6055 DIXY / intensify 73 00237 7200 CLA 74 00240 2022 ISZ POINTS 75 00241 5230 JMP OUTIT 76 00242 6031 KSF 77 00243 5220 JMP PLOTB 78 00244 5646 JMP I DOX+1 79 00245 6053 DOX, DILX 80 00246 7600 7600 CLA 81 00247 2022 ISZ POINTS 82 00250 5230 JMP OUTIT 83 00251 5220 JMP PLOTB 84 85 00252 0102 STR1, TEXT 'ABCDEFGHIJKLM%NOPQRSTUVWXYZ%"0123456789"%@' 00253 0304 00254 0506 00255 0710 00256 1112 00257 1314 00260 1545 00261 1617 00262 2021 00263 2223 00264 2425 00265 2627 00266 3031 00267 3245 00270 4260 00271 6162 00272 6364 00273 6566 00274 6770 00275 7142 00276 4500 00277 0000 86 00300 4143 STR2, TEXT "!#$&'()*+,-.%/:;<=>?[\]^_@" 00301 4446 00302 4750 00303 5152 00304 5354 00305 5556 00306 4557 00307 7273 00310 7475 00311 7677 00312 3334 00313 3536 00314 3700 00315 0000 87 00316 2410 STR3, TEXT 'THE BIG DOG ATE%BEANS FOR BREAKFAST@' 00317 0540 00320 0211 00321 0740 00322 0417 00323 0740 00324 0124 00325 0545 00326 0205 00327 0116 00330 2340 00331 0617 00332 2240 00333 0222 00334 0501 00335 1306 00336 0123 00337 2400 00340 0000 88 89 PAGE 90 91 00400 0000 VCAT, .-. / Move to X,Y 92 / Inline param1: X coord 93 / Inline param2: Y coord 94 / Return follows with AC = 0 95 / Uses: VCvariables 96 00401 7200 CLA 97 00402 1600 TAD I VCAT / get X 98 00403 3344 DCA VCX 99 00404 1344 TAD VCX 100 00405 3345 DCA VCXTMP 101 00406 2200 ISZ VCAT / bump 102 00407 1600 TAD I VCAT / get Y 103 00410 3346 DCA VCY 104 00411 2200 ISZ VCAT / bump 105 00412 5600 JMP I VCAT 106 107 00413 0000 VCTEXT, .-. / Display text on screen, using inline params 108 / Inline param1: Address of text string 109 / Return follows with AC = 0 110 / Text is packed 6-bit stripped ASCII, 111 / where @ marks end of string and % is CRLF. 112 / Uses: VCvariables 113 00414 7200 CLA 114 00415 1613 TAD I VCTEXT / get text pointer 115 00416 3236 DCA VCTXPT 116 00417 2213 ISZ VCTEXT / bump 117 VCTLP, 118 00420 1636 TAD I VCTXPT / get a pair of characters 119 00421 7002 BSW 120 00422 0235 AND C077 / extract first 121 00423 7450 SNA / test for end of string 122 00424 5613 JMP I VCTEXT / if so, return 123 00425 4237 JMS VCCHAR / else display it 124 00426 1636 TAD I VCTXPT 125 00427 0235 AND C077 / extract second 126 00430 7450 SNA / test for end of string 127 00431 5613 JMP I VCTEXT / if so, return 128 00432 4237 JMS VCCHAR / else display it 129 00433 2236 ISZ VCTXPT 130 00434 5220 JMP VCTLP 131 132 00435 0077 C077, 0077 / mask to extract a byte 133 00436 0000 VCTXPT, .-. / pointer to char string 134 135 00437 0000 VCCHAR, .-. / Display char from AC on screen 136 / Char is in 6 bit trimmed ASCII 137 / returns AC=0 138 00440 1273 TAD NPCSGN / compare with EOL 139 00441 7450 SNA 140 00442 5262 JMP VCCHCR / got a %, use as CRLF 141 00443 1274 TAD PPCSGN / undo the damage 142 00444 7104 CLL RAL / 2 words per char 143 00445 1270 TAD VCTTAP / make address of table entry 144 00446 3275 DCA VCCHPT / save pointer to char 145 00447 1675 TAD I VCCHPT / get first 2 columns 146 00450 4276 JMS VCDCOL / display first column 147 00451 4276 JMS VCDCOL / display second column 148 00452 2275 ISZ VCCHPT 149 00453 1675 TAD I VCCHPT / get second 2 columns 150 00454 4276 JMS VCDCOL / display third column 151 00455 4276 JMS VCDCOL / display final column 152 00456 1345 TAD VCXTMP 153 00457 1271 TAD VCDOTS 154 00460 3345 DCA VCXTMP / advance over interchar column 155 00461 5637 JMP I VCCHAR 156 157 00462 1272 VCCHCR, TAD VCDPLN / get line pitch 158 00463 1346 TAD VCY / 159 00464 3346 DCA VCY / update y 160 00465 1344 TAD VCX 161 00466 3345 DCA VCXTMP / force X to margin 162 00467 5637 JMP I VCCHAR 163 164 00470 0550 VCTTAP, VCTTAB / pointer to table base 165 00471 0010 VCDOTS, VCPICH / dot pitch, next is line pitch 166 00472 7700 VCDPLN, 0-VCPICH-VCPICH-VCPICH-VCPICH-VCPICH-VCPICH-VCPICH-VCPICH 167 00473 7733 NPCSGN, -0045 168 00474 0045 PPCSGN, 0045 169 00475 0000 VCCHPT, .-. / pointer to column bitmap of char 170 171 00476 0000 VCDCOL, .-. / Display one column of char from AC 172 / Returns AC shift-right 6 bits 173 00477 3343 DCA VCDCSV / save column 174 00500 1345 TAD VCXTMP 175 00501 1023 TAD K4000 176 00502 3420 DCA I TBL 177 00503 2020 ISZ TBL 178 00504 1345 TAD VCXTMP 179 00505 6053 DILX / set X coord for column 180 00506 1271 TAD VCDOTS 181 00507 3345 DCA VCXTMP / save updated X coord 182 00510 1346 TAD VCY / get base Y coord 183 00511 3347 DCA VCYTMP / save working copy of Y 184 00512 4322 JMS VCDROW / show row 1 185 00513 4322 JMS VCDROW / show row 2 186 00514 4322 JMS VCDROW / show row 3 187 00515 4322 JMS VCDROW / show row 4 188 00516 4322 JMS VCDROW / show row 5 189 00517 4322 JMS VCDROW / show row 6 190 00520 1343 TAD VCDCSV / recover column 191 00521 5676 JMP I VCDCOL 192 193 00522 0000 VCDROW, .-. / Display a dot in a column 194 / on entry and exit, AC = 0 195 00523 1347 TAD VCYTMP 196 00524 3420 DCA I TBL 197 00525 1347 TAD VCYTMP 198 00526 6054 DILY / set Y coord for column 199 00527 1271 TAD VCDOTS 200 00530 3347 DCA VCYTMP / save updated Y coord 201 00531 1343 TAD VCDCSV / get column 202 00532 7110 CLL RAR / shift a bit into link 203 00533 3343 DCA VCDCSV / save shifted column 204 00534 7420 SNL 205 00535 5722 JMP I VCDROW / return if no dot 206 00536 2020 ISZ TBL 207 00537 6052 DISD 208 00540 5337 JMP .-1 / wait for ready 209 00541 6055 DIXY / intensify 210 00542 5722 JMP I VCDROW 211 212 00543 0000 VCDCSV, .-. / save location for column of char 213 214 00544 0000 VCX, .-. / starting X coord (margin) 215 00545 0000 VCXTMP, .-. / working copy of X coord 216 00546 0000 VCY, .-. / starting Y coord (baseline) 217 00547 0000 VCYTMP, .-. / working copy of Y coord 218 219 VCTTAB, / array of bitmaps for each character. Format: 220 / 2 words per character, giving 4 wide by 6 high 221 / bitmap. Left column in low byte of first word, 222 / right column in high byte of last, bottom bit in 223 / least significant position. 224 / entries are in trimmed ASCII order 225 226 00550 4136 4136;3455 / @ NULL 00551 3455 227 00552 4437 4437;3744 / A 00553 3744 228 00554 5177 5177;2651 / B 00555 2651 229 00556 4136 4136;2241 / C 00557 2241 230 00560 4177 4177;3641 / D 00561 3641 231 00562 5177 5177;4151 / E 00563 4151 232 00564 4477 4477;4044 / F 00565 4044 233 00566 4136 4136;2645 / G 00567 2645 234 235 00570 0477 0477;7704 / H 00571 7704 236 00572 4100 4100;4177 / I 00573 4177 237 00574 4102 4102;7641 / J 00575 7641 238 00576 1477 1477;4122 / K 00577 4122 239 00600 0177 0177;0101 / L 00601 0101 240 00602 2077 2077;7720 / M 00603 7720 241 00604 1077 1077;7704 / N 00605 7704 242 00606 4136 4136;3641 / O 00607 3641 243 244 00610 4477 4477;3044 / P 00611 3044 245 00612 4136 4136;3743 / Q 00613 3743 246 00614 4477 4477;3146 / R 00615 3146 247 00616 5122 5122;2245 / S 00617 2245 248 00620 4040 4040;4077 / T 00621 4077 249 00622 0176 0176;7601 / U 00623 7601 250 00624 0374 0374;7403 / V 00625 7403 251 00626 0277 0277;7702 / W 00627 7702 252 253 00630 1463 1463;6314 / X 00631 6314 254 00632 1261 1261;7004 / Y 00633 7004 255 00634 4543 4543;6151 / Z 00635 6151 256 00636 7700 7700;0041 / [ 00637 0041 257 00640 3040 3040;0106 / \ 00641 0106 258 00642 4100 4100;0077 / ] 00643 0077 259 00644 2000 2000;2077 / ^ 00645 2077 260 00646 1604 1604;0404 / _ 00647 0404 261 262 00650 0000 0000;0000 / space 00651 0000 263 00652 0000 0000;0075 / ! 00653 0075 264 00654 6000 6000;6000 / " 00655 6000 265 00656 3712 3712;3712 / # 00657 3712 266 00660 7322 7322;2267 / $ 00661 2267 267 00662 6661 6661;4333 / % CR 00663 4333 268 00664 5126 5126;0526 / & 00665 0526 269 00666 5000 5000;0060 / ' 00667 0060 270 271 00670 3600 3600;0041 / ( 00671 0041 272 00672 4100 4100;0036 / ) 00673 0036 273 00674 1422 1422;2214 / * 00675 2214 274 00676 0404 0404;0437 / + 00677 0437 275 00700 0500 0500;0006 / , 00701 0006 276 00702 0404 0404;0404 / - 00703 0404 277 00704 0300 0300;0003 / . 00705 0003 278 00706 0601 0601;4030 / / 00707 4030 279 280 00710 4537 4537;7651 / 0 00711 7651 281 00712 2100 2100;0177 / 1 00713 0177 282 00714 4321 4321;3145 / 2 00715 3145 283 00716 4122 4122;2651 / 3 00717 2651 284 00720 0474 0474;0477 / 4 00721 0477 285 00722 5172 5172;4651 / 5 00723 4651 286 00724 5136 5136;4651 / 6 00725 4651 287 00726 4340 4340;6054 / 7 00727 6054 288 289 00730 5126 5126;2651 / 8 00731 2651 290 00732 4531 4531;3645 / 9 00733 3645 291 00734 6600 6600;0066 / : 00735 0066 292 00736 6500 6500;0066 / ; 00737 0066 293 00740 0400 0400;2112 / < 00741 2112 294 00742 1212 1212;1212 / = 00743 1212 295 00744 1221 1221;0004 / > 00745 0004 296 00746 5540 5540;2050 / ? 00747 2050 297 *1000 298 01000 0000 OUTTB, 0 299 00176 0413 $ 00177 0400 C077 0435 DICD 6051 unreferenced DILC 6050 DILE 6056 unreferenced DILX 6053 DILY 6054 DIRE 6056 unreferenced DISD 6052 DIXY 6055 DOX 0245 K4000 0023 NPCSGN 0473 OUTIT 0230 OUTTB 1000 PLOTB 0220 POINTS 0022 PPCSGN 0474 REPLOT 0201 unreferenced START 0200 unreferenced STR1 0252 STR2 0300 STR3 0316 TBL 0020 TBLLOC 0021 VCAT 0400 VCCHAR 0437 VCCHCR 0462 VCCHPT 0475 VCCOLR 0004 unreferenced VCDCOL 0476 VCDCSV 0543 VCDONE 4000 unreferenced VCDOTS 0471 VCDPLN 0472 VCDROW 0522 VCERAS 0010 unreferenced VCINTE 0001 unreferenced VCPICH 0010 VCSTOR 0020 unreferenced VCTEXT 0413 VCTLP 0420 VCTTAB 0550 VCTTAP 0470 VCTXPT 0436 VCWRTH 0040 unreferenced VCX 0544 VCXTMP 0545 VCY 0546 VCYTMP 0547 X0 0010