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