File: PA.TK of Tape: Sources/Multi8/multi8-1
(Source file text) 

/PA.TK 13-MAY-80
/
/THIS TASK INTERROGATES THE TELETYPE OPERATOR AND ASKS
/HIM FOR A PASSWORD. IT COMPARES THE RESPONSE WITH SYSTEM PASSWORD
/AND TELLS THE CALLER WETHER IT WAS RIGHT OR WRONG VIA THE LINK.
/ON ENTRY THE AC SHOULD CONTAIN THE NAME OF THE TELETYPE
/INPUT HANDLER. ON EXIT, THE AC IS STILL THE SAME.
/THE USERS INPUT IS NOT ECHOED AND HE IS INFORMED WETHER HE
/CAN HAVE ACCESS TO THE SYSTEM.

PASSWRD="S^3+"E^3+"S^3+"A^3+"M

	*200

	"P^100+"A&3777	/NAME IS PA
	200		/ONE PAGE SHOULD BE OK
PA4096,	0
PA,	DCA PASAVE
	TAD PASAVE
	DCA PAIDEV	/SET UP INPUT REQUEST
	TAD PASAVE
	TAD ("T-"K^100
	DCA PAODEV	/SET UP OUTPUT REQUEST
	JMS PAPRNT	/GIVE INITIAL DIALOGUE
IFNDEF GERMAN <
	215;212;"M;"8;"-;"P;"a;"s;"s;"w;"o;"r;"d;":;240;4000 >
IFDEF GERMAN <
	215;212;"M;"8;"-;"K;"e;"n;"n;"w;"o;"r;"t;":;240;4000 >
	JMS PAREAD
	TAD PANUMB	/GET INPUT WORD
	TAD (-PASSWRD
	SNA CLA
	 JMP PAOK	/PASSWORD IS OK
	JMS PAPRNT	/PASSWORD IS WRONG
IFNDEF GERMAN <
	"N;"O;240;"P;"e;"r;"m;"i;"s;"s;"i;"o;"n;215;4212;4000 >
IFDEF GERMAN <
	"K;"E;"I;"N;240;"Z;"u;"g;"a;"n;"g;215;4212;4000 >
PAERR,	CLA STL		/SET LINK MEANS NOT OK
PAEXIT,	TAD PASAVE	/RETURN TELETYPE HANDLER'S NAME TO CALLER
	JMS MONITOR
	   EXIT SWPOUT

PAOK,	JMS PAPRNT
IFNDEF GERMAN <
	"C;"a;"r;"e;"f;"u;"l;"!;240;"(;"F;"o;"r;"e;"g;"r;"o;"u;"n;"d;")
	215;4212;4000 >
IFDEF GERMAN <
	"A;"c;"h;"t;"u;"n;"g;"!;240;"(;"F;"o;"r;"e;"g;"r;"o;"u;"n;"d;")
	215;4212;4000 >
	CLA CLL		/ZERO LINK MEANS OK
	JMP PAEXIT
PAPRNT,	0		/CHARACTER STRING OUTPUT ROUTINE
PAMOR,	CDTOIF
	AC4000		/SET TELETYPE HOLD-BIT
	TAD I PAPRNT
	ISZ PAPRNT
	SNA		/END OF STRING (4000)
	 JMP I PAPRNT
PATRY,	ISZ PA4096
	SKP		/DON'T HANG TOO LONG
	 JMP PAERR
	JMS MONITOR
	   CALL
PAODEV,	   0
	 JMP PATRY
	JMP PAMOR

PAREAD,	0		/ROUTINE THAT READS AND HASHES PASSWORD
	CLA CLL
	JMS MONITOR
	   CALL
PAIDEV,	   0		/NAME OF INPUT HANDLER
	 JMP .-3	/BUSY ? LOOP
	CDTOIF
	TAD M215	/END ?
	SNA
	 JMP I PAREAD	/YES, OUT
	TAD (215-240	/CONTROL CHAR ?
	SPA
	 JMP PAREAD+1	/YES IGNORE
	TAD M100	/(240-340
	SMA		/LOWER CASE ?
	 TAD (-40	/YES, CONVERT
	TAD (340
	DCA ZTEM1
	TAD PANUMB
	TAD PANUMB
	TAD PANUMB
	TAD ZTEM1
	DCA PANUMB	/UPDATE HASHED WORD WITH NEW CHAR
	 JMP PAREAD+1	/NOT END, GET NEXT CHAR

PASAVE,	0	/SAVED NAME OF INPUT HANDLER
PANUMB,	0	/ACCUMULATED INPUT WORD

$