File DC.TK

Directory of image this file is from
This file as a plain text file

/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 <TABERR,XERROR /.MUST BE .LE. 500> *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 <LOCAT,XERROR /LOCATION 600 MUST BE ZERO > 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 <TOOLONG,XERROR>/.<=10



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search