File XPLAIN.PL

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

XPLAIN.PL, PAGE 1 OF 3.		(10/7/71 - C.M.MOORE, RICE U., HOUSTON)

THIS FILE EXPLAINS THE FOLLOWING PDP-12 SCOPE DISPLAY ROUTINES.
ROUTINES DISP2 & DISP4 REQUIRE THE USE OF THE EAE (EXTENDED
ARITHMETIC ELEMENT) HARDWARE OPTION.

ALL 7 BINARY FILES ARE IN LIBRARY FILE LIB12.RL (10/7/71 VERSION).


SOURCE	    BINARY	CORE	ENTRY POINTS
FILE	    FILE	PAGES	CONTAINED IN FILE.
NAME	    NAME      REQUIRED

PLOT1.SB    PLOT1.RL	 1	DISP1(N,IXY)
				DISP3(N,IY)
				DISP5(LY)
				DISP6(LX)
				KEYBD(0)

PLOT2.SB    PLOT2.RL	 1	DISP2(N,IXY)	(REQUIRES EAE)

PLOT3.SB    PLOT3.RL	 1	DISP4(N,IY)	(REQUIRES EAE)

PLOT4.SB    PLOT4.RL	 1	DISP7(LX,LY,N)
				DISP8(LX,LY,STRNG)

PLOT5.SB    PLOT5.RL	 2	DISP7(LX,LY,N)
				DISP9(LX,LY,STRNG)

PLOT6.SB    PLOT6.RL	 2	DSP10(LX,LY,MODE,N)
				DSP11(LX,LY,LENTH,STRNG)

PLOT7.SB    PLOT7.RL	 2	DSP12(LY,LENTH,STRNG)



M=KEYBD(0)	  SETS M = VALUE OF CHARACTER STRUCK AT KEYBOARD.
		  IF NO CHARACTER HAS BEEN STRUCK, SETS M=0. (THIS
		  ROUTINE CAN BE USED TO TERMINATE DISPLAY LOOPS.)

CALL DISP1(N,IXY) DISPLAYS ON THE SCOPE THE N POINTS STORED IN VECTOR
		  IXY(2,N). POINTS ARE STORED AS X,Y COORDINATE PAIRS.

CALL DISP2(N,IXY) DISPLAYS STRAIGHT LINE SEGMENTS BETWEEN ADJACENT
		  POINTS STORED IN VECTOR IXY(2,N).

CALL DISP3(N,IY)  DISPLAYS THE N VERTICAL VALUES STORED IN VECTOR
		  IY(N). POINTS ARE SPACED EVENLY ACROSS THE SCOPE.

CALL DISP4(N,IY)  DISPLAYS STRAIGHT LINE SEGMENTS BETWEEN ADJACENT
		  VERTICAL VALUES STORED IN VECTOR IY(N).  THE
		  SEGMENTS ARE SPACED EVENLY ACROSS THE SCOPE.

CALL DISP5(LY)	  DISPLAYS A HORIZONTAL LINE ACROSS THE SCOPE AT THE
		  VERTICAL POSITION SPECIFIED BY LY.

CALL DISP6(LX)	  DISPLAYS A VERTICAL LINE DOWN THE SCOPE AT THE
		  HORIZONTAL POSITION SPECIFIED BY LX.


XPLAIN.PL, PAGE 2 OF 3. CALL DISP7(LX,LY,N) DISPLAYS N AS A SIGNED 4-DIGIT OCTAL NUMBER. LY AND THE ABSOLUTE VALUE OF LX ARE THE VERTICAL AND HORIZONTAL COORDINATES OF THE LOWER LEFT HAND EDGE OF THE NUMBER DISPLAY. IF LX IS NEGATIVE, FULL-SIZED CHARACTERS ARE DISPLAYED. OTHERWISE, HALF-SIZED CHARACTERS ARE USED. CALL DISP8(LX,LY,STRNG) DISPLAYS A STRING OF CHARACTERS, THE DISPLAY PATTERNS FOR WHICH ARE STORED IN STRNG. EACH CHARACTER REQUIRES A 24-BIT, 2-WORD PATTERN. STRNG MUST BE TERMINATED WITH A WORD CONTAINING -1 (7777 OCTAL), WHICH WILL NOT BE DISPLAYED. LX AND LY ARE THE SAME AS THEY WERE FOR DISP7. CALL DISP9(LX,LY,STRNG) DISPLAYS A STRING OF CHARACTERS WHICH ARE STORED IN STRNG AS 6-BIT STRIPPED ASCII CHARACTERS. (I.E., FORTRAN HOLLERITH OR A-FORMAT CHARACTERS.) STRNG MUST BE TERMINATED WITH A ZERO-VALUED CHARACTER, WHICH WILL NOT BE DISPLAYED. LX AND LY ARE THE SAME AS THEY WERE FOR DISP7. CALL DSP10(LX,LY,MODE,N) IF MODE=0, DISPLAYS N AS A SIGNED 4-DIGIT OCTAL NUMBER. IF MODE IS NONZERO, DISPLAYS N AS AN UNSIGNED 4-DIGIT OCTAL NUMBER. LX AND LY ARE THE SAME AS THEY WERE FOR DISP7. CALL DSP11(LX,LY,LENTH,STRNG) DISPLAYS A STRING OF CHARACTERS WHICH ARE STORED IN STRNG AS 6-BIT ASCII CHARACTERS. LENTH IS THE LENGTH OF STRNG IN WORDS. (2*LENTH CHARACTERS WILL BE DISPLAYED.) ZERO-VALUED CHARACTERS ARE DISPLAYED AS AMPERSANDS (@). LX AND LY ARE THE SAME AS THEY WERE FOR DISP7. CALL DSP12(LY,LENTH,STRNG) DISPLAYS 8-BIT ASCII TEXT STORED IN STRNG. 3 CHARACTERS ARE PACKED INTO EVERY 2 WORDS, AS EXPLAINED IN APPENDIX A OF THE PS/8 SOFTWARE SUPPORT MANUAL. THIS IS HOW PS/8 SOURCE FILES ARE STORED. THE DISPLAY IS FORMATTED LIKE AN EDITOR TEXT LISTING. (DSP12 DISPLAYS CHARACTERS 240-377, RECOGNIZES TAB AND CARRIAGE-RETURN, AND IGNORES ALL OTHER CHARACTERS.) TEXT LINES CONTAINING MORE THAN 51 CHARACTERS ARE DISPLAYED AS 2 LINES ON THE SCOPE TO AVOID WRAP-AROUND. ONLY HALF-SIZED CHARACTERS ARE USED. EACH LINE OF TEXT IS DISPLAYED STARTING AT THE LEFT-HAND EDGE OF THE SCOPE. THE FIRST LINE IS DISPLAYED AT VERTICAL POSITION LY. LENTH IS THE LENGTH OF STRNG IN WORDS. IF THE BOTTOM OF THE SCOPE IS REACHED BEFORE LENTH WORDS ARE DISPLAYED, THE REMAINDER OF STRNG IS IGNORED. DISP1,DISP2,DISP3,DISP4,DSP12 DISPLAY ON SCOPE CHANNEL 1. DISP5,DISP6,DISP7,DISP8,DISP9,DSP10,DSP11 DISPLAY ON SCOPE CHANNEL 2.
XPLAIN.PL, PAGE 3 OF 3. ARGUMENTS IXY AND IY ARE INTEGER ARRAYS. ARGUMENTS N, MODE, LENTH, LY, AND LX ARE INTEGER SCALARS. ARGUMENT STRNG IS A STRING OF EITHER 24-BIT DISPLAY PATTERNS (WHEN USED WITH DISP8), 6-BIT ASCII (WHEN USED WITH DISP9 OR DSP11), OR 8-BIT ASCII (WHEN USED WITH DSP12). THE ARGUMENTS ARE NOT ALTERED BY ANY OF THE DISPLAY ROUTINES. EACH FULL-SIZED CHARACTER IS DISPLAYED ON THE SCOPE USING AN ARRAY THAT IS 18 PLOT POINTS WIDE BY 32 PLOT POINTS HIGH, INCLUDING SPACING BETWEEN ADJACENT LINES AND CHARACTERS. EACH HALF-SIZED CHARACTER IS DISPLAYED USING AN ARRAY THAT IS 10 WIDE BY 16 HIGH. THESE ROUTINES DO NOT SCALE THE INPUT VECTOR ELEMENTS. THE HORIZONTAL SCOPE DISPLAY COORDINATES RUN FROM 0 TO 511 (DECIMAL). THE VERTICAL COORDINATES RUN FROM -255 TO +255 (DECIMAL). COORDINATES OUTSIDE THESE RANGES WILL "WRAP AROUND" WHEN DISPLAYED. EACH CALL TO ONE OF THESE ROUTINES WILL DISPLAY THE POINTS ONCE. THEREFORE, THE ROUTINES MUST BE PLACED IN PROGRAM LOOPS TO MAINTAIN THE DISPLAYS. THE FOLLOWING IS A SIMPLE EXAMPLE OF THIS: C PLOT LOOP 100 CALL DISP1(N,IXY) C EXIT THE LOOP WHEN ANY KEY IS STRUCK ON THE TELETYPE IF(KEYBD(0))200,100,200 200 CONTINUE CHARACTER STRING ARGUMENTS FOR DISP9 MAY BE GENERATED IN FORTRAN THROUGH THE USE OF HOLLERITH CONSTANTS. THE TERMINATING ZERO-VALUED CHARACTER IS AUTOMATICALLY GENERATED IF THE CONSTANT IS LESS THAN 6 CHARACTERS IN LENGTH. FOR EXAMPLE, THE FOLLOWING PROGRAM WILL DISPLAY THE WORD HELLO IN FULL-SIZED CHARACTERS: 100 CALL DISP9(-1,220,'HELLO') IF(KEYBD(0))200,100,200 200 CONTINUE STRINGS OVER 5 CHARACTERS IN LENGTH MUST BE INSERTED INTO VECTORS BEFORE CALLING DISP9. THE LAST HOLLERITH CONSTANT INSERTED SHOULD CONTAIN 5 OR FEWER CHARACTERS TO ENSURE A TERMINATING ZERO-VALUED CHARACTER FOR THE STRING. THE FOLLOWING EXAMPLE WILL DISPLAY THE WORDS 'THIS IS A STRING' IN HALF-SIZED CHARACTERS: DIMENSION X(3) X='THIS I' X(2)='S A ST' X(3)='RING' 100 CALL DISP9(0,220,X) IF(KEYBD(0))200,100,200 200 CONTINUE FORTRAN PROGRAM PLDEMO.FT IS A DEMO PROGRAM FOR SOME OF THESE ROUTINES. IT CALLS FORTRAN SUBROUTINE PLOT, WHICH SETS UP THE DISPLAY. IT REQUIRES BINARY FILE PLOT.RL, PLUS SEVERAL ROUTINES IN LIBRARY FILE LIB12.RL. IT IS SELF-EXPLAINATORY WHEN RUN.



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