File CRTCTR.PA (PAL assembler source file)

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

/ UPDATE THE CRT DATA COUNTERS			23-MAY-90
/
/
/
/	 CCCC  RRRR   TTTTT   CCCC  TTTTT  RRRR
/	C      R   R    T    C        T    R   R
/	C      R   R    T    C        T    R   R
/	C      RRRR     T    C        T    RRRR
/	C      R R      T    C        T    R R
/	C      R  R     T    C        T    R  R
/	 CCCC  R   R    T     CCCC    T    R   R
/
/
/

/
/EDIT HISTORY:
/
/21-MAY-90	(LHN)
/	1) ADDED CODE FOR SPLICE SAMPLE COUNTER
/

/
/	THIS TASK MAINTAINS THE PRODUCT DATA COUNTERS
/	DISPLAYED ON THE CRT.  IF THE INCREMENT ARGUMENT
/	IS NEGATIVE, THE COUNTERS ARE CLEARED AND
/	THEN INCREMENTED.
/


	TASK=	CRTCTR
	CUR=	CRTCTFLD
	INIWT=	0
	VERS=	3


	FIELD CRTCTFLD%10
	*CRTCTLOC

/ / /%RP UPDATE THE CRT DATA COUNTERS / / START, CLB TAD (CRTDEF) /POST OUR EVENT FLAG TO CAL /SAY THE DATA UPDATE POST /IS COMPLETED. CDF 20 CAL /GO TO SLEEP 'TIL NEEDED. SUSPND CLB CIF CUR /DISABLE INTERRUPTS FOR A MOMENT. TAD INCRTC /IS THE INCREMENT CHOPS FLAG SET ? SNA JMP CRTC1 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE DCA INCRTC /CLEAR THE CHOPS INCREMENT FLAG JMS CRTADD /GO INCREMENT THE CHOPS TEXT AREA. -6 CRTD01+5 BINCHP CRTDM1 CRTC1, CIF CUR TAD INCRTR /IS THE INCREMENT REJECTS FLAG SET ? SNA JMP CRTC2 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE DCA INCRTR /CLEAR THE REJECTS INCREMENT FLAG. JMS CRTADD /GO INCREMENT THE REJECTS TEXT AREA. -4 CRTD02+3 BINREJ CRTDM2 CRTC2, CIF CUR TAD INCRTS /IS THE INCREMENT SAMPLES FLAG SET ? SNA JMP CRTC3 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE. DCA INCRTS /CLEAR THE INCREMENT SAMPLES FLAG. JMS CRTADD /GO INCREMENT THE SAMPLES TEXT AREA. -4 CRTD03+3 BINSAM CRTDM3
/ CRTC3, CIF CUR TAD INCRTM /IS THE INCREMEMT METER FLAG SET ? SNA JMP CRTC4 /NO, GO ON MQL /SAVE THE INCREMENT VALUE DCA INCRTM /CLEAR THE INCREMENT METERS FLAG. JMS CRTADD /GO INCREMENT THE METERS TEXT AREA. -6 CRTD04+5 BINMTR CRTDM4 CRTC4, CIF CUR TAD INCRTB /IS THE INCREMENT BOXES FLAG SET ? SNA JMP CRTC5 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE DCA INCRTB /CLEAR THE INCREMENT BOXES FLAG. JMS CRTADD /GO INCREMENT THE BOX TEXT AREA. -4 CRTD05+3 BINBOX CRTDM5 CRTC5, CIF CUR TAD INCRST /IS THE INCREMENT SHEETS FLAG SET ? SNA JMP CRTC6 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE DCA INCRST /CLEAR THE INCREMENT FLAG JMS CRTADD /GO INCREMENT THE SHEETS TEXT AREA -3 CRTD06+3 BINSHT CRTDM6 CRTC6, CIF CUR TAD INCRSR /IS THE INCREMENT SHIFT ROLL FLAG SNA /SET ? JMP CRTC7 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE. DCA INCRSR /CLEAR THE INCREMENT SHIFT ROLL FLAG JMS CRTADD /GO INCREMENT THE SHIFT ROLL TEXT -2 /AREA. CRTD07+1 BINSHR CRTDM7
/ CRTC7, CIF CUR TAD INCRSS /IS THE INCREMENT SPLICE SAMPLE SNA / COUNTER FLAG SET ? JMP CRTC8 /NO, GO ON MQL /YES, SAVE THE INCREMENT VALUE. DCA INCRSS /CLEAR THE FLAG JMS CRTADD / GO INCREMENT THE COUNTER -4 CRTD08+3 BINSSM CRTDM8 CRTC8, CLB JMP START /ALL DONE, BACK TO SLEEP
/ CRTDM1, ZBLOCK 3 /CHOP COUNTER CRTD01 CRTDM2, ZBLOCK 3 /REJECT COUNTER CRTD02 CRTDM3, ZBLOCK 3 /SAMPLE COUNTER CRTD03 CRTDM4, ZBLOCK 3 /METER COUNTER CRTD04 PAGE / CRTDM5, ZBLOCK 3 /BOXES COUNTER CRTD05 CRTDM6, ZBLOCK 3 /SHEETS IN BOX COUNTER CRTD06 CRTDM7, ZBLOCK 3 /SHIFT ROLL COUNTER CRTD07 CRTDM8, 1 /THIS COUNTER IS NEVER SEEN ON THE 0 / CRT !! 0 CRTD08 /SPLICE SAMPLE COUNTER /
/ / /%R ASCII CHARACTER ADDITION ROUTINE / /%TW COME HERE TO INCREMENT / A COUNTER FOR THE ROLL STATUS DISPLAY AREA. THE / VALUE IN THE M/Q REGISTER IS THE NUMBER TO BE / ADDED TO THE CURRENT COUNTER VALUE. / IT IS ASSUMED THAT THE INCREMENT IS LESS THAN OR / EQUAL TO 10 DECIMAL. / IF THE INCREMENT ARGUMENT IS NEGATIVE, THE / COUNTER IS CLEARED AND THEN INCREMENTED. / /%TN THE CALLING SEQUENCE IS: /%TN /%TN (M/Q) = INCREMENT VALUE /%TN JMS CRTADD /%TN -(LENGTH OF THE SUM) /%TN ADDRESS OF THE UNITS DIGIT /%TN ADDRESS OF THE BINARY COUNTER /%TN ADDRESS OF THE DISPLAY MESSAGE PACKET /%TN / CRTADD, 0 TAD I CRTADD /GET THE NUMBER OF DIGITS IN THE SUM ISZ CRTADD DCA CRTAA TAD I CRTADD /GET THE ADDRESS OF THE UNITS DIGIT ISZ CRTADD /OF THE CRT TEXT AREA. DCA CRTAB TAD I CRTADD /GET THE ADDRESS OF THE UNITS DIGIT ISZ CRTADD /OF THE BINARY COUNTER. DCA CRTAC ACL /INCREMENT ARGUMENT NEGATIVE ? SPA CLA JMS CRTCLR /YES, GO CLEAR COUNTERS FIRST. ACL /REMOVE MINUS SIGN, IF ANY. CLL RAL CLL RAR TAD I CRTAB /ADD THE INCREMENT TO THE UNITS DCA I CRTAB /DIGIT. JMP CRTA2+1 /GO CHECK FOR A UNITS DIGIT OVERFLOW CRTA1, TAD I CRTAB /WHEN A CARRY OCCURS, CHECK IF THE TAD (-4040) /NEW DIGIT IS NOW A SPACE. SZA CLA JMP CRTA2 /NO, GO ADD IN THE CARRY TAD (4061) /YES, SET THE NEW DIGIT TO 1. DCA I CRTAB JMP CRTA3 /GO ON
CRTA2, ISZ I CRTAB /INCREMENT THE DIGIT TAD I CRTAB /IS THE DIGIT 10 OR GREATER ? TAD (-4072) SPA JMP CRTA3 /NO, GO ON TAD (4060) /YES, RESET THE DIGIT TO ZERO. DCA I CRTAB CLB CMA /MOVE THE TEXT POINTER FOR THE NEXT TAD CRTAB /POWER OF TEN. DCA CRTAB ISZ CRTAA /IS THE LOOP COUNTER ZERO ? JMP CRTA1 /NO, PROCESS THE CARRY DIGIT CRTA3, CLB ACL /GET THE INCREMENT VALUE CLL RAL / REMOVE ANY SIGN BIT AND CLL RAR CDF 20 TAD I CRTAC / INTO THE LOW ORDER BINARY COUNTER DCA I CRTAC SNL /WAS THERE A CARRY ? JMP CRTA4 /NO CARRY, ALL DONE, GO ON ISZ CRTAC /ADD CARRY INTO HIGH ORDER BINARY ISZ I CRTAC / COUNTER. NOP CRTA4, CDF CUR TAD I CRTADD /GET THE ADDRESS OF THE DISPLAY ISZ CRTADD / MESSAGE. DCA CRTA5 TAD I CRTA5 /IS THE MESSAGE PENDING ? SZA CLA JMP I CRTADD /YES, JUST RETURN. CAL /NO, SEND IT TO THE CRT HANDLER. SEND CRT CRTA5, 0 CLB JMP I CRTADD /NOW WE'RE FINISHED, RETURN CRTAA, 0 /LOCAL STORAGE CRTAB, 0 CRTAC, 0 CRTAD, 0
/ / /%R CLEAR THE CRT ROLL STATUS COUNTERS / /%TW COME HERE TO CLEAR THE ROLL STATUS COUNTERS. / / / CRTCLR, 0 CLB IAC TAD CRTAA /SET UP A LOOP COUNTER. DCA CRTAD TAD CRTAA /GET THE ADDRESS OF THE TEXT AREA. TAD CRTAB DCA XR13 TAD (4040) /FILL THE TEXT AREA WITH SPACES. DCA I XR13 ISZ CRTAD JMP .-3 TAD (4060) /PUT A ZERO IN THE UNITS DIGIT. DCA I XR13 CDF 20 DCA I CRTAC /CLEAR THE UNITS COUNTER DIGIT. CDF CUR TAD CRTAA /IS THE BINARY COUNTER DOUBLE PREC. TAD (4) SMA SZA CLA JMP I CRTCLR /NO, RETURN. CLB IAC /YES, CLEAR THE HIGH ORDER WORD TAD CRTAC /OF THE BINARY COUNTER. DCA CRTAD CDF 20 DCA I CRTAD CDF CUR JMP I CRTCLR /NOW RETURN. PAGE NOPUNCH /F3COMM AND CRTTXT FOLLOW XLIST 1



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