/TASK NAME: "D^100+"C&3777 /NAME: DC, DISPLAY A CHAR /CREATED: 27-JUNE-75, JS+JV /THIS IS AN EMULATOR TASK, IT IS CALLED BY THE /BACKGROUND-EMULATOR ONLY: / TAD BJOB /POINTER TO BG-DATA-AREA / JMS MONITOR /DF = MONITOR FIELD / CALL / "D^100+"C&3777 / BUSY OR NOT IN SYSTEM, WAIT A WHILE AND TRY AGAIN / SZA CLA /RETURN AFTER COMPLETION / JMP BGERR /AC NONZERO: ERROR / ETC. /AC=0, NORMAL COMPLETION /THE EMULATOR IS CALLED FROM THE BACKGROUND BY: / TAD (7 / 6770 /GIANT IOT, MEANS NOTHING / DATA / RETURN WITH AC=0 /DATA: CONTAINS AN X,Y SETTING OR THE CHAR. /BIT 0 =0 & BIT 1 =0: IT'S A 8 BIT CHAR /BIT 0 =1: IT'S A X SETTING (FOR THE WHOLE PAGE) /BIT 1 =1: IT'S AN Y SETTING /BIT 2 =0: IT'S A POS SETTING /BIT 2 =1: IT'S A NEG SETTING /THE MODULE BEGINS WITH ERASING THE SREEN. /AS LONG AS THE MODULE STAYS INCORE, IT WILL REMEMBER /THE X- AND Y-LOCATIONS ON THE SCREEN. /ON ^Z OR FF THE MODULE IS SWAPPED OUT, EACH NEXT CHARACTER WILLE MODULE IN CORE, WHICH 051 DILX=6053 DILY=605 DCUPC=ZTEM1 TABPNT=ZTEM2 CNT3=ZTEM3 CNT5=ZTEM4 CNT12=ZTEM5 /USES PAGE 0 : ZTEM1,2,3,4,5. *200 "D^100+"C&3777 /NAME: DC DISPLAY A CHAR ON 603 SCOPE 600 /3 PAGES, NO CONNECTS CHRTAB, TABLE XDCX, DC INIT 0 /END OF LOAD //AC POINTS TO BGDATA-A TO USERS PROGRAM COUNT //USE AUTOINDEX FOR QUICK TABLE USE TAD I AUTO10 //GTF OF USER AND C70 //MASK INSTR. FIELD TAD C6201 //MAKE CDF USERS INSTR. FIELD DCA DCUCDF DCA I AUTO10 //USERS AC = 0 AFTER COMPLETION TAD I DCUPC //GET PC IN AC ISZ I DCUPC //SET NORMAL RETURN DCUCDF, HLT //CDF USERS INSTR. F. JMS DEFER //GET HIS DATA CDTOIF /CHANGE DATA TO INSTR. FIELD DC1, JMP I XINIT /OVERLAIED BY: / CLL RAL SPA SZL /CHARACTER COMMAND ? JMP I XDCX /NO - TRY X-SETTING CLL RAR /SET CODE ON THE RIGHT PLACE SNA JMP DCEXIT /0 TAD (-240 SNA JMP SPACE /SPACE TAD (-212+240 SNA JMP I XLFEED /LF TAD M3 /(-215+212 SNA JMP CR /CR M777, IAC /TAD (-214+215 SZA TAD (-232+214 SNA JMP SWAP /^Z OR FF IAC /AC=CHAR-231 AND C77 /AC=CHAR+47&77 DCA ZTEM6 /MULTIPLY BY 3 TAD ZTEM6 /GIVES THE CODE IN THE TABLE CLL RAL TAD ZTEM6 TAD CHRTAB DCA TABPNT /NOW POINTS TO CHAR-CODE ACM3 DCA CNT3 TAD (-5 DCA CNT5 NXTWRD, TAD (-14 D ISZ TABPNT DCA ZTEM6RAL DCA ZTEM6 SNL ILX CLA TAD YREG DA ZTEM7 ISZ ZTEM7 JMP .-1 DIXY NXT1, ISZ CNT5 JMP SETX TAD (-5 DCA CNT5 TAD (-14 TAD XREG DCA XREG ACM3 TAD YREG DCA YREG JMP CH3 SETX, CLA STL IAC RAL /3 TAD XREG DCA XREG CH3, ISZ CNT3 JMP NXTWRD TA DCA YREG ACM3 SPACE SKP CR, TAD XSAVE XREG TAD M777 SPA CLA JMP DCEXIT TAD M777 /LINE FULL, RESET X DILX DCA XREG JMP I XLFEED DCEXIT, JMS MONITOR EXIT /=RETURN+CLEAR SWAP, CLA JMS MONITOR EXIT+SWPOUT XSAVE, -777 XREG, -777 YREG, 740 PAGE DCSAVE, XSAVE DCYREG, YREG XDCEXIT,DCEXIT DCSWAP, SWAP DCCR, CR XDC1, DC1 0 DCX, SNL /X COORD SETTING ? JMP DCY /NO - TRY Y COVL, CLL RAL /FOR SURE ONLY BIT 0 IS UP CLL SPA IAC STL /NEG: BIT0,1:=1 RTR /POS: BIT0,1:=0 DILX DCA I DCSAVE JMP I DCCR DCY, CLL RAL /Y SETTING CLL SPA /SIGN ? IAC STL /NEG: BIT0,1:=1 RTR /POS: BIT0.1:=0 JMP DCYSET LFEED, TAD I DCYREG TAD C700 SPA JMP I DCSWAP TAD M732 DCYSET, DILY DCA I DCYREG JMP I XDCEXIT INIT, DCA DCTEM TAD DCTEM /FIRST SEE IF IT ISN'T A FF OR ^Z TAD M232 SZA TAD C16 /(232-214 SNA CLA JMP I DCSWAP /YES, DON'T ERASE TWICE TAD C30 /SET STORE+ERASE DILE JMS MONITOR STALL DGNTICK^3%5 /0,6 SECOND TER STALL DILE /SET SEN. TAD COVL DCA I X JMP I XDC1 DCTEM, 0, 700 M232, -232 M732, -732 IFZERO .-500&4000 *500 TABLE, 4305;2102;0410 /Y 7604;2104;2076 /Z 4040;4102;200 /[ 4101;0101;0102 /\ 1604;1020;4116 /] 1052;5102;400 /^ /SPATIE 1020;4102;0012453;7257;5224 /# 35574;2756 /% 3112;2312;2342;410;1010 /( 1010;1020;2210 /) 125;6667;2500 /* 20;4762;400 /+ 0;2;420 /, 0;760;0 /- IFNZRO .-577 0;0;20 /. 210;4102;1040 // 3506;3534;6134 /0 1060;4102;0434 /1 3506;1144;3076 /2 3504;1340;6134 /3 0421;0411;3704 /4 7703;6020;4174 /5 0210;4350;6134 /6 7610;4204;1020 /7 3506;1350;6134 /8 3506;1361;0460 /9 0;2;400 /: 0;2;420 /; 0421;0404;0404 /< 3;7017;4000 /= 2020;2021;0420 /> 3110;4102;10 /? 3527;3675;6734 /@ 1052;1437;6142 /A 7506;1750;6174 /B 3506;410;2134 /C 7506;1430;6174 /D 7702;0750;2076 /E 7702;0750;2040 /F 3506;0413;6134 /G 4306;1770;6142 /H 3420;4102;0434 /I 0204;1020;6134 /J 4312;4612;2242 /K 4102;0410;2176 /L 4356;5430;6142 /M 4346;5532;6342 /N 3506;1430;6134 /O 7506;1750;2040 /P 3506;1432;6336 /Q 7506;1752;2242 /R 3506;0340;6134 /S 7620;4102;0410 /T 4306;1430;6134 /U 4306;1430;5210 /V 4306;1430;6524 /W 4305;2105;210 /.<=10