File DEMOCH.PA (PAL assembler source file)

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

/GDEMO V01
/DEMO OF VT-52 AND VT-78 GRAPHICS MODE
/8-JUN-77 DS

/THIS PROGRAM IS COMPLETELY TABLE DRIVEN.
/THE TABLE CONSISTS OF "TEXT" STATEMENTS SPECIFYING
/THE CHARS TO BE DISPLAYED. EXTRA FEATURES HAVE BEEN ADDED
/BY RESERVING "_" (UNDERLINE) TO BE A SPECIAL, NON-
/PRINTING CHAR WHOSE MEANING IS TO INTERPRET THE VERY NEXT
/CHAR AS AN OPERATION CODE, AS FOLLOWS:
/	A	ENTER LOWER CASE MODE
/	B	RESUME UPPER CASE MODE
/	C	PRINT CR AND LF TO END THE LINE
/	D	SEND ONE ESCAPE CHAR
/	E	END OF PROGRAM (RETURN TO MONITOR)
/	F	SHORT PAUSE (DELAY)
/	G	MEDIUM PAUSE
/	H	LONG PAUSE
/	I	START OF ITERATIVE LOOP - THE VERY NEXT CHAR
/		IS THE REPEAT COUNT, WITH "A"=1. LOOPS MAY NOT
/		BE NESTED.
/	J	END OF ITERATIVE LOOP

	TEMP=	20

START,	CLA

/PROCESS NEXT CHAR

PROCES,	JMS NEXT	/GET NEXT CHAR
	SNA		/IGNORE 00 CHAR (DUE TO "TEXT")
	JMP PROCES
	DCA TEMP
	TAD TEMP
	TAD (-37)	/UNDERLINE?
	SNA CLA
	JMP LOOK	/YES: LOOK AT NEXT CHAR
	TAD TEMP	/NO: CONVERT TO 7-BIT ASCII AND PRINT
	TAD (-40)	/ISOLATE 0-37 RANGE BY MAKING NEGATIVE
	SPA
	TAD CASE	/100=UPPER CASE, 140=LOWER CASE
	TAD (40)
OUTPUT,	JMS PRINT	/ORDINARY CHAR
	JMP PROCES

/PRINTING SUBR PRINT, 0 TLS CLA TSF JMP .-1 KSF /READ KEYBOARD FOR CTRL,C JMP I PRINT KRB AND (177) TAD (-3) SZA CLA JMP I PRINT /IGNORE ANY KEYS TYPED! JMP I (7605) /RETURN TO MONITOR ON CTRL,C /END OF LINE ROUTINE CRLF, TAD (215) JMS PRINT TAD (212) JMS PRINT JMP PROCES
/COROUTINE TO GET NEXT CHAR NEXT, 0 JMP I RET RET, NEXT1 AND (77) /6 BITS ONLY JMP I NEXT NEXT1, TAD I P /LEFT CHAR BSW JMS RET TAD I P /RIGHT CHAR JMS RET ISZ P JMP NEXT1 P, TABLE CASE, 100 /140 FOR LOWER CASE MODE
/UNDERLINE CHAR CAME LOOK, JMS NEXT TAD (JTAB-1) /CONVERT TO ADDR IN JTAB DCA TEMP TAD I TEMP /GET ADDR OF ROUTINE DCA TEMP JMP I TEMP /GO TO PROPER ROUTINE /LIST OF ROUTINES JTAB, LCMODE /A UCMODE /B CRLF /C ESC /D 7605 /E SHORT /F MED /G LONG /H ITER /I LOOP /J
/ROUTINES LCMODE, TAD (40) /LC=140 UCMODE, TAD (100) /UC=100 DCA CASE JMP PROCES ESC, TAD (33) JMP OUTPUT LONG, TAD (-200) MED, TAD (-40) SHORT, TAD (-2) DCA TEMP WT, ISZ WAIT JMP WT ISZ TEMP JMP WT JMP PROCES WAIT, 0 ITER, JMS NEXT /GET COUNT CIA DCA COUNT TAD RET /SAVE CHAR POSITION DCA POS TAD P DCA POS+1 JMP PROCES LOOP, ISZ COUNT SKP JMP PROCES TAD POS /RESTORE CHAR POSITION DCA RET TAD POS+1 DCA P JMP PROCES COUNT, 0 POS, 0;0 /LITERALS PAGE
/CONTROL TABLE TABLE, TEXT " _C_G" / PAUSE TEXT "_DH_DJ" /ERASE SCREEN TEXT "GRAPHICS MODE DEMONSTRATION PROGRAM_C_C" TEXT "T_AHIS PROGRAM DEMONSTRATES THE SPECIAL GRAPHICS CHARACTERS_CAVAILABLE" TEXT " TO THE PROGRAMMER._C_C_B" TEXT "T_AHE KEYBOARD WILL BE IGNORED DURING THIS DEMONSTRATION,_CSO" TEXT " JUST SIT BACK AND ENJOY._C_H_B"
TEXT "_DH_DJH_AERE ARE SOME EXAMPLES OF THE USE OF SPECIAL_C" TEXT "GRAPHICS CHARACTERS._B_C_C" TEXT "_GD_AEGREES_B: 360_DF_AF_B_DG_C_C" TEXT "_GF_ARACTIONS_B: _DF_AB\, CX, E\_B_DG_C_C" TEXT "_GL_AEGAL TEXT_B: _DF_A^_B12.006 _DGI_ANDEMNITY _BP_AROVISIONS._B_C_C" TEXT "_GA_ARITHMETIC:_B 5 + ( 7 _DF_AJ_B_DG 3 ) = ?_C_C" TEXT "_H_DH_DJ"
TEXT "H_AERE'S AN EXAMPLE OF REVERSE SCROLLING._B_C" TEXT "_GE_AACH NEW LINE PUSHES THE REMAINING TEXT DOWN._B_C_H" TEXT "_DI_DH" TEXT "_IU_DI_DH_FH_AERE'S ANOTHER LINE._B_J"
TEXT "_H_DH_DJ" /WAIT THEN ERASE TEXT "A_AMONG THE MOST USEFUL OF THE GRAPHICS CHARACTERS ARE THOSE_C" TEXT "THAT ENABLE THE DRAWING OF GRAPHS._B_C_C" TEXT "_GH_AERE ARE BARS AT VARIOUS HEIGHTS:_B_C_C" TEXT "_DF_ALMNOPQRS_B_DG_C_C"
TEXT "_H_DH_DJA_AND HERE IS THE ALL-PURPOSE RECTANGLE CHARACTER:_B_C_C" TEXT "_DF_A_IUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_C_J" TEXT "_B_DG"
TEXT "_E" /END OF GDEMO



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