Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap2_198111 - decus/20-0038/talk10.doc
There are 2 other files named talk10.doc in the archive. Click here to see a list.
								1
	  		/*****TALK10.PAL, APRIL 14, 1970****
	  		/
	  		/
	  		/
	  		/PETER LEMKIN
	  		/NATIONAL INSTITUTES OF HEALTH
	  		/BETHESDA, MD. 20014
	  		/
	  		/
	  		/
	  		/INTRODUCTION
	  		/--------------------
	  		/THE ASSEMBLY OF LARGE PROGRAMS FOR SMALL MACHINES SUCH AS
	  		/AS PDP8 IS APT TO BE LABORIOUS, TIME CONSUMING AND ALMOST
	  		/IMPOSSIBLE IS DONE ON THE SMALL MACHINE ITSELF. IN ADDITION,
	  		/THE ABILITY FOR MANY USERS TO ASSEMBLE PDP8 PROGRAMS ON A PDP10
	  		/COMPUTER USING PAL10 OR PAL12 LIGHTENS THE LOAD OF SOFTWARE
	  		/DEVELOPMENT ON THE SMALLER MACHINE. TALK10 IS A PDP8 
	  		/UTILITY/LOADER PROGRAM. IT, 1) DECODES AND LOADS ASCII-CODED
	  		/BINARY FILES (ENCODED BY TALK8F) SENT FROM THE PDP10. 2) IT 
	  		/CAN TRANSMIT INFORMATION TO OR FROM THE PDP10 APPEARING TO IT AS
	  		/A REGULAR TELETYPE.
	  		/

	  		/
	  		/
	  		/MINIMUM HARDWARE NEEDED FOR USE AS IS:
	  		/---------------------------------------------
	  		/4K OR GREATER PDP8 OR LINC8.
	  		/PT08 PARALLEL-SERIAL INTERFACE BETWEEN PDP8-PDP10
	  		/
	  		/
	  		/
	  		/
	  		/
	  		/DESCRIPTION
	  		/---------------
	  		/PAL10 GENERATES AN OUTPUT FILE<BINARY>
	  		/(USUALLY .BIN EXTENSION)  WHICH IS USED AS THE
	  		/INPUT TO THE TALK8F.SAV PROGRAM .(TALK8F IS A PDP10 PROGRAM
	  		/USED TO CONVERT IMAGE BINARY TO A FORM OF CODED
	  		/ASCII FOR TRANSMISSION OVER THE  DATA LINES TO THE PDP8 COMPUTER.)
	  		/THE PDP8 SUBPROGRAM "OCTLDR" (IN TALK10) CAN READ AND 
	  		/LOAD THIS CODE.) AFTER A FILE IS CONVERTED, JUST PIP
	  		/THE OUTPUT FILE OF TALK8F (A  ".DAT" FILE)
	  		/TO THE TTY WHICH IN THIS CASE IS THE PDP8'S PT08 INTERFACE
	  		/TO THE PDP10. THE STRING OF A'S IN THE
	  		/BEGINNING OF THE  TALK8F OUTPUT ".DAT" FILE
	  		/CAUSE THE TALK10 PROGRAM ON THE PDP8 TO 
	  		/GO INTO OCTAL LOADER MODE AND LOAD THE 
	  		/FILE BEING SENT . THE STRING OF A'S AT THE END OF
	  		/THE ".DAT" FILE ARE USED TO TELL TALK10
	  		/TO RETURN TO BUFFERED TTY MODE AND STOP LOADING DATA INTO MEMORY.
	  		/
	  		/
								2
	  		/
	  		/CONTROL CHARACTERS:
	  		/---------------------
	  		/TYPING A CONTROL-O DURING BUFFERED TTY MODE
	  		/WILL KILL THE PRINTING BUFFER.
	  		/
	  		/TYPING A CONTROL-T  WHILE IN 
	  		/BUFFERED TTY MODE WILL TURN CONTROL  OF
	  		/THE PDP8 OVER TO THE FIELD 0 SYSTEM @7600.
	  		/
	  		/
	  		/
	  		/
	  		/
	  		/
	  		/ERROR CONDITIONS:
	  		/-----------------
	  		/IF TALK10  HALTS DURING TTY BUFFER MODE,
	  		/IT IS BECAUSE THE BUFFER HAS OVERFLOWED
	  		/ITS 2048 CHARACTER LIMIT. NOTE THAT THIS LIMIT
	  		/MAY BE DECREASED BY CHANGING (TQMIN,TQMAX).

	  		/THE OCTAL LOADER WILL NOT PROTECT TALK10 ITSELF.
	  		/
	  		/
	  		/
	  		/CHANGING THE PROGRAM LIMITS:
	  		/----------------------------
	  		/NOTE: TO CHANGE THE FIELD IN WHICH TALK10 RESIDES,
	  		/	CHANGE INSFLD=DATFLD= THE NEW FIELD, AND REASSEMBLE
	  		/	TALK10 USING PAL10.
	  		/
	  		/
	  		/
	  		/
	  		/
	  		/SAVING A LOADED CORE IMAGE:
	  		/---------------------------
	  		/AFTER USING THE TALK10 LOADER TO LOAD A PAL10
	  		/OUTPUT FILE FROM THE PDP10, IT IS USEFUL 
	  		/TO CALL THE PDP8 MONITOR SYSTEM WHICH IS RESIDENT AT 7600
	  		/FIELD 0 IN ORDER TO SAVE THE CORE IMAGE JUST LOADED.
	  		/THE MONITOR SYSTEM IS REACHED BY TYPING A CONTROL/T.
	  		/
	  		/
	  		/
	  		/
	  		/STARTING ADDRESSES:
	  		/--------------------
	  		/TALK10 STARTS AT 7000
	  		/CURRENTLY IT REQUIRES <7000,7577> FOR TALK10 PROGRAM.
	  		/AND <3201,6777> FOR THE TTY BUFFER.
	  		/
	  		/
	  		/
								3
	  		/
	  		/....................................................
	  		/
	  		/
	  		/EXAMPLE OF OPERATION:
	  		/---------------------
	  		/.R PAL10
	  		/*TEST.BIN,TEST.LST_TEST.SRC
	  		/*
	  		/^C
	  		/
	  		/.RUN DSK:TALK8F.SAV
	  		/INPUT FILE: TEST
	  		/EXTENSION?: BIN
	  		/OUTPUT FILE: TEST
	  		/
	  		/YOU MAY NOW PIP "TEST.DAT" FROM YOU DISK AREA.
	  		/
	  		/EXIT
	  		/.
	  		/ASSIGN TTY: PDP8
	  		/R PIP
	  		/*PDP8:_DSK:TEST.DAT
	  		/
	  		/( THE PDP10 IS NOW SENDING THE ASCII CODED FILES TO THE PDP8)
	  		/(AFTER THE PDP8 TTY FINISHES TYPING THE STRING OF A'S THE
	  		/TALK10 PROGRAM.)
	  		/
	  		/PROGRAM IS LOADED INTO THE PDP8 MEMORY AND CONTROL RETURNS TO THE 
	  		/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	  		/. (IF YOU TYPE A CONTROL/T AT THIS TIME CONTROL RETURNS TO
	  		/  THE PDP8 MONITOR SYSTEM AND THE IMAGE MAY BE SAVED.)
	  		/.SAVE S:TEST!0-2777;0200    (I.E. SAVE IT WITH THE DISK MONITOR SYSTEM.)
	  		/
	  		/.......................................
	  		/
	  	6411	    PTSF=6411 /PT08 INSTRUCTION DEFINITIONS
	  	6401	    PKSF=6401
	  	6416	    PTLS=6416
	  	6406	    PKRB=6406
	  	6412	    PTCF=6412
	  	3001	    TQMIN=3001 /LOWER LIMIT OF THE TTY BUFFER
	  	6777	    TQMAX=6777 /UPPER LIMIT OF THE TTY BUFFER.
	  	0000		DATFLD=00 /****** THE WORKING FIELD*** CHANGE THIS TO CHANGE FIELD.!!!
	  	0000		INSTFD=DATFLD
	  		/
	  	0000		FIELD INSTFD
	  	7000		*7000
	  7000	7200	TALK10,	 CLA
	  7001	1377		TAD ("#
	  7002	6046		TLS

	  7003	6201	    CDF INSTFD
	  7004	7200	    CLA
	  7005	1273	    TAD Q20 /-20
								4
	  7006	3274	    DCA ATRAP
	  7007	6031	GGO,	 KSF
	  7010	5235	    JMP LISTN
	  7011	6036	    KRB /GET TTY
	  7012	6416	    PTLS /TTYI-->PDP10
	  		/TEST IF GOTO THE SYSTEM
	  		/FROM CONTROL-T
	  7013	3270	    DCA SSS
	  7014	1270	    TAD SSS
	  7015	7041	    CIA
	  7016	1302	    TAD CTRLT
	  7017	7640	    SZA CLA
	  7020	5225	    JMP GO2 /NO
	  		/YES, GO TO  SYSTEM
	  7021	6201	    CDF 00
	  7022	6202	    CIF 00
	  7023	5624	    JMP I .+1
	  7024	7600	    7600
	  		/TEST IF KILL TTY BUFFER
	  7025	1270	GO2,	 TAD SSS
	  7026	1301	    TAD CTRLO
	  7027	7640	    SZA CLA
	  7030	5235	    JMP LISTN /NO
	  		/YES
	  7031	1276	    TAD MIN
	  7032	3677	    DCA I PKRQ
	  7033	1677	    TAD I PKRQ
	  7034	3700	    DCA I PKFQ
	  7035	6401	LISTN,	 PKSF
	  7036	5260	    JMP TTYTST
	  7037	6406	    PKRB /GET PDP10
	  		/TEST IF LOTS OF A-S
	  7040	3270	    DCA SSS
	  7041	1270	    TAD SSS
	  7042	0272	    AND QT177
	  7043	1271	    TAD MA
	  7044	7640	    SZA CLA
	  7045	5253	    JMP PUSHC
	  7046	2274	    ISZ ATRAP
	  7047	5255	    JMP PUSHA
	  7050	1273	    TAD Q20

	  7051	3274	    DCA ATRAP /FOR NEXT TIME
	  7052	5675	    JMP I OCTST /GO TO LOADER
	  7053	1273	PUSHC,	 TAD Q20
	  7054	3274	    DCA ATRAP
	  7055	1270	PUSHA,	 TAD SSS
	  7056	4667	    JMS I IINSRQ /CHAR-->QUEUE
	  7057	7402	    HLT /OVERFLOW
	  		/TTY OUTPUT READY?
	  7060	6041	TTYTST,	 TSF
	  7061	5207	    JMP GGO /NO
	  7062	4666	    JMS I ITTYFQ
	  7063	5207	    JMP GGO /NO
	  7064	6046	    TLS
								5
	  7065	5207	    JMP GGO
	  7066	7226	ITTYFQ,	 TTYFQ
	  7067	7200	IINSRQ,	 INSRQ
	  7070	0000	SSS,	 0
	  7071	7677	MA,	 -101
	  7072	0177	QT177,	 177
	  7073	7732	Q20,	 -46
	  7074	0000	ATRAP,	 0
	  7075	7261	OCTST,	 START /LOADER
	  7076	3001	MIN,	 TQMIN
	  7077	7256	PKRQ,	 KRQ
	  7100	7257	PKFQ,	 KFQ
	  7101	7561	CTRLO,	 -217
	  7102	0224	CTRLT,	 224 /CONTROL T
	  		/END...
	  		/............................................
	  7177	0243
	  	7200		PAGE
	  		/SUBROUTINE INSRQ
	  		/INSERTS A DATA WORD IN THE 
	  		/AC--> THE TTY OUTPUT BUFFER
	  		/AT THE REAR OF THE QUEUE.
	  		/CALLING SEQUENCE1G
	  		/    JMS INSRQ /DATA IN AC
	  		/    ERROR RETURN /BUFFER OVERFLOW
	  		/     NORMAL RETURN /DATA ENTERED
	  		/                  /RQ POINTER ADVANCED.
	  		/
	  7200	0000	INSRQ,	 0
	  7201	3260	    DCA TQDAT /SAVE DATA
	  		/A.1 COMPUTE NEW KRQ
	  7202	1254	    TAD ITQMAX
	  7203	7041	    CIA
	  7204	1256	    TAD KRQ
	  7205	7700	    SMA CLA
	  7206	5211	    JMP .+3
	  7207	2256	    ISZ KRQ /KRQ<--KRQ+1
	  7210	5213	    JMP .+3
	  7211	1255	    TAD ITQMIN /KRQ<--TQMIN
	  7212	3256	    DCA KRQ
	  		/A.2 TEST FOR OVERFLOW
	  7213	1256	    TAD KRQ

	  7214	7041	    CIA
	  7215	1257	    TAD KFQ
	  7216	7650	    SNA CLA
	  7217	5600	    JMP I INSRQ /ERROR RETURN
	  7220	2200	    ISZ INSRQ
	  		/A.3 INSERT DATA INTO THE REAR OF THE QUEUE.
	  7221	1260	    TAD TQDAT
	  7222	6201	    CDF DATFLD
	  7223	3656	    DCA I KRQ
	  7224	6201	    CDF INSTFD
	  7225	5600	    JMP I INSRQ /RETURN
	  		/.........................................
								6
	  		/
	  		/SUBROUTINE TTYFQ
	  		/GET A DATA WORD FROM THE REAR
	  		/OF THE TTY QUEUE-->AC.
	  		/CALLING SEQUENCE:
	  		/    JMS TTYFQ /DATA-->AC
	  		/    ERROR RETURN /BUFFER EMPTY
	  		/    NORMAL RETURN /DATA IN AC.
	  7226	0000	TTYFQ,	 0
	  		/A.1 TEST IF KFQ=KRQ
	  		/IF SO BUFFER EMPTY
	  7227	7200	    CLA
	  7230	1257	    TAD KFQ
	  7231	7041	    CIA
	  7232	1256	    TAD KRQ
	  7233	7650	    SNA CLA
	  7234	5626	    JMP I TTYFQ /ERROR RETURN
	  7235	2226	    ISZ TTYFQ /SET UP NORMAL RETURN.
	  		/A.2 ADVANCE THE KFQ POINTER
	  7236	7200	    CLA
	  7237	1254	    TAD ITQMAX
	  7240	7041	    CIA
	  7241	1257	    TAD KFQ
	  7242	7700	    SMA CLA
	  7243	5246	    JMP .+3 /YES, SET KFQ=TQMIN
	  7244	2257	    ISZ KFQ /NO, SET KFQ=KFQ+1
	  7245	5250	    JMP .+3
	  7246	1255	    TAD ITQMIN
	  7247	3257	    DCA KFQ
	  		/A.3 GET DATA FROM THE QUEUE.
	  7250	6201	    CDF DATFLD
	  7251	1657	    TAD I KFQ
	  7252	6201	    CDF INSTFD
	  7253	5626	    JMP I TTYFQ /RETURN
	  		/...CONSTANTS...
	  7254	6777	ITQMAX,	 TQMAX
	  7255	3001	ITQMIN,	 TQMIN
	  7256	3001	KRQ,	 TQMIN
	  7257	3001	KFQ,	 TQMIN
	  7260	0000	TQDAT,	 0
	  		/..........................................
	  		/P. LEMKIN, APRIL 14, 1970...

	  		    /****TITLE****:  OCTLDR
	  7261	7200	START,	 CLA
	  7262	1321	    TAD T20
	  7263	3320	    DCA TRAPA /SET UP A COUNTER
	  7264	4304	PDP10,	 JMS PPREAD /GET PDP10
	  7265	3315	    DCA TTT /SAVE IT
	  7266	1315	    TAD TTT
	  7267	1317	    TAD MAA
	  7270	7640	    SZA CLA
	  7271	5277	    JMP PUSHCC
	  7272	2320	    ISZ TRAPA
	  7273	5301	    JMP PUSHAA
								7
	  7274	1321	    TAD T20 /RESET TRAPA
	  7275	3320	    DCA TRAPA
	  7276	5716	    JMP I STRTGO /BACK TO TALK10
	  7277	1321	PUSHCC,	 TAD T20
	  7300	3320	    DCA TRAPA /RESET TAP
	  7301	1315	PUSHAA,	 TAD TTT
	  7302	5703	    JMP I ISRCH /SEARCH
	  7303	7400	ISRCH,	 CEARCH
	  7304	0000	PPREAD,	 0
	  7305	6401	    PKSF
	  7306	5305	    JMP .-1
	  7307	6406	    PKRB
	  7310	0313	    AND K177
	  7311	1314	    TAD K200
	  7312	5704	    JMP I PPREAD /RETURN
	  7313	0177	K177,	 177
	  7314	0200	K200,	 200
	  7315	0000	TTT,	 0
	  7316	7007	STRTGO,	 GGO
	  7317	7477	MAA,	  -301
	  7320	0000	TRAPA,	 0
	  7321	7732	T20,	 -46
	  		/
	  	7400		PAGE
	  7400	3251	CEARCH,	 DCA CCHAR
	  		/TEST IF F
	  7401	1251	    TAD CCHAR
	  7402	7041	    CIA
	  7403	1241	    TAD FFFF
	  7404	7640	    SZA CLA
	  7405	5215	    JMP ZTEST
	  		/YES GO SET DATA FIELD
	  7406	1245	    TAD BUFFER
	  7407	7006	    RTL
	  7410	7004	    RAL
	  7411	0243	    AND K0070
	  7412	1377		TAD (CDF 00
	  7413	3233	    DCA FLDCHK
	  7414	5644	    JMP I ISTART
	  		/
	  		/TEST IF SET POINTER
	  7415	1251	ZTEST,	 TAD CCHAR
	  7416	7041	    CIA
	  7417	1250	    TAD ZZZZ

	  7420	7640	    SZA CLA
	  7421	5225	    JMP CRTEST
	  		/YES GO SET POINTER
	  7422	1245	    TAD BUFFER
	  7423	3246	    DCA POINTR
	  7424	5644	    JMP I ISTART
	  		/
	  		/TEST IF STORE DATA
	  7425	1251	CRTEST,	 TAD CCHAR
	  7426	7041	    CIA
								8
	  7427	1247	    TAD CRCR
	  7430	7640	    SZA CLA
	  7431	5642	    JMP I MORTST
	  		/YES STORE DATA
	  7432	1245	    TAD BUFFER
	  7433	6201	FLDCHK,	 CDF 00
	  7434	3646	    DCA I POINTR
	  7435	6201	    CDF INSTFD
	  7436	2246	    ISZ POINTR
	  7437	7000	    NOP
	  7440	5644	    JMP I ISTART
	  		/...CONSTANTS...
	  7441	0306	FFFF,	   "F
	  7442	7452	MORTST,	 NUMS
	  7443	0070	K0070,	 0070
	  7444	7264	ISTART,	 PDP10
	  7445	0000	BUFFER,	 0
	  7446	0000	POINTR,	 0
	  7447	0215	CRCR,	 215
	  7450	0332	ZZZZ,	 "Z
	  7451	0000	CCHAR,	 0
	  		/
	  7452	1251	NUMS,	 TAD CCHAR
	  7453	7041	    CIA
	  7454	1313	    TAD EEEE
	  7455	7640	    SZA CLA /TEST IF DONE...
	  7456	5262	    JMP NUMTST
	  7457	1315	    TAD BELL
	  7460	6046	    TLS
	  7461	5721	    JMP I BACK /BACK TO TTY MODE
	  		/
	  		/TEST IF NUMBER --> BUFFER
	  7462	7300	NUMTST,	 CLA CLL
	  7463	1251	    TAD CCHAR /GET CHAR/
	  7464	7041	    CIA
	  7465	1317	    TAD K7
	  7466	7500	    SMA /SKIP IF >267
	  7467	5271	    JMP .+2
	  7470	5644	    JMP I ISTART /TOO LARGE.
	  7471	7300	    CLA CLL
	  7472	1316	    TAD K0
	  7473	7041	    CIA
	  7474	1251	    TAD CCHAR
	  7475	7500	    SMA  /SKIP IF <260

	  7476	5300	    JMP .+2
	  7477	5644	    JMP I ISTART /TOO SMALL
	  		/PASSED... IT IS A 
	  7500	7300	    CLA CLL
	  7501	1245	    TAD BUFFER /OLD BUFFER
	  7502	7006	    RTL
	  7503	7004	    RAL
	  7504	0314	    AND K7770
	  7505	3245	    DCA BUFFER /SAVE CONV.
	  7506	1251	    TAD CCHAR /GET CHAR
								9
	  7507	0320	    AND K0007
	  7510	1245	    TAD BUFFER
	  7511	3245	    DCA BUFFER
	  7512	5644	    JMP I ISTART
	  		/...CONSTANTS.....
	  7513	0305	EEEE,	 "E
	  7514	7770	K7770,	 7770
	  7515	0207	BELL,	 207
	  7516	0260	K0,	 260
	  7517	0267	K7,	 267
	  7520	0007	K0007,	 7
	  7521	7007	BACK,	 GGO
	  		/....................................................
	  		$
	  7577	6201