DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b2cfd5803⟧

    Length: 7522 (0x1d62)
    Notes: pts_type(SC)
    Names: »SLOGOP.SC«

Derivation

└─⟦fce1dcf99⟧ Bits:30009704 Philips computer tape "KMD15"
    └─⟦this⟧ »DLCSPY/SLOGOP.SC« 

PTS(SC)

	IDENT SLOGOP	REL 1.1 78-04-21  870150340110
* 
* 
*	SDLC LOG TOOL 
* 
*	OPERATOR CONTROL
* 
*	PROGRAMMER: O. HANSSON
* 
*	77.01.19
* 
******************************************************* 
* 
*	THIS MODULE HANDLES OPERATOR COMMUNICATION
* 
*	THE FOLLOWING FUNCTIONS ARE SUPPORTED 
* 
*	OPEN RECEIVER 1 AND 2 
* 
*	CLOSE RECEIVER 1 AND 2
* 
*	RESET INPUT BUFFER
* 
*	SPECIFY LOG PARAMETERS
* 
* 
* 
**************************************************************
	EJECT
* 
* 
* 
	ENTRY	ASTART 
* 
* 
	EXTRN	PRPOOL	OCCUPIE PRINTER BUFFER POOL 
	EXTRN	TEXT1
	EXTRN	SLOGIN 
* 
* 
*	EQUATES 
* 
* 
ECBBA	EQU	2 
ECBRL	EQU	4 
ECBRC	EQU	8 
ECBCW	EQU	10
* 
* 
	RES	20	STACK FOR A14 
STB	EQU	*-2 
PROCCB	DATA	0	ADDRESS TO PRINTER OCCUPIED BUFFFER 
HEXCHA	DATA	0 
	EJECT
* 
* 
*	START LOOP TEST TOOL
* 
* 
ASTART	EQU	*
	LD	A8,PROCCB 
	RF(Z)	ASTA20 
	LKM
	DATA	-8,PRPOOL	RELEASE PRINTER 
	CM	PROCCB	RELEASE PRINTER BUFFER 
ASTA20	EQU	*
	LDKL	A7,'OP' 
	LKM
	DATA	-4,OPCTRL	ACTIVATE OPERATOR CONTROL TASK
	LDKL	A7,'IN' 
	LKM
	DATA	-4,SLOGIN	ACTIVATE LOG TASK 
	LKM
	DATA	3 
	EJECT
* 
* 
*	OPERATOR CONTROL TASK 
* 
* 
OPCTRL	EQU	*
	LDKL	A14,STB 
	LDK	A7,' ' 
	CF	A14,OCCPR	OCCUPIE PRINTER 
OPCT10	EQU	*
	CF	A14,CRLF
	LDKL	A2,TEXT1
	ADKL	A11,1 
	CF	A14,PRTXT 
	LDKL	A8,CTECB
	LDK	A7,/84 
	LDK	A1,0	SET PARAMETERS TO 0 FROM START
	ST	A1,ECBBA,A8 
	LDK	A1,4 
	ST	A1,ECBCW,A8 
	LKM
	DATA	1 
	EJECT
OPCT40	EQU	*
	ADKL	A11,1 
	CF	A14,CRLF
	RF	OPCONT
	EJECT
* 
*	PRINT TEXT
* 
PRTXT	EQU	* 
	LDR*	A3,A2	GET LENGTH
	ST	A2,PRXECB+2 
	ADK	A3,2 
	ST	A3,PRXECB+4 
	LDK	A7,/86 
	LDKL	A8,PRXECB 
	LKM
	DATA	1	STANDARD WRITE
	CF	A14,CRLF
	RTN	A14
* 
* 
PRXECB	DATA	/31,0,0,0,0,0 
* 
* 
	EJECT
OPCONT	EQU	*
	LD	A8,PROCCB	GET BUFFER ADDRESS
	RF(Z)	OPCO10	NO BUFFER 
	LKM
	DATA	-8,PRPOOL	RELEASE PRINTER 
	CM	PROCCB
OPCO10	EQU	*
	LDKL	A14,STB 
	CF	A14,CRLF
	CF	A14,READ	READ COMMAND 
	DATA	KT100,FT100 
	EJECT
* 
* 
*   TYPE: ? 
* 
ERRORA	EQU	*
	CF	A14,OCCPR	OCCUPIE PRINTER 
ERROR	EQU	* 
	LDKL	A14,STB	LOAD STACK BASE 
	LDK	A7,'?'	INVALID KEY 
	CF	A14,PRCH	PRINT '?'
	RB	OPCONT
* 
* 
KT100	DATA	/044F,'CRP'
FT100	DATA	OPEN,CLOSE,RESET,PARAM 
	EJECT
* 
* 
*	DEFINE TRACE PARAMETERS 
*	POLL SUPRESSION (1ST DIGIT) 
*	TC ADDRESS (DIGIT 2,3)
* 
* 
PARAM	EQU	* 
	ADKL	A11,1 
	CF	A14,CRLF
	CF	A14,RDHEX 
	LDK	A6,0 
	LDR	A6,A7	SAVE FIRST DIGIT 
	SLL	A6,4 
	CF	A14,RDHEX	READ 2ND DIGIT
	IM	HEXCHA
	ADR	A6,A7
	CF	A14,RDHEX 
	SLL	A6,4 
	ADR	A6,A7
	LDK	A2,4 
	LDKL	A8,CTECB
	ST	A6,ECBBA,A8	STORE PARAMETERS
	RF	WRCTRL
	EJECT
* 
* 
*	CONTROL COMMANDS
* 
* 
OPEN	LDK	A2,1 
	RF	WRCTRL
RESET	LDK	A2,3
WRCTRL	EQU	*
	CF	A14,OCCPR	OCCUPIE PRINTER 
	LDKL	A8,CTECB	LOAD ECB ADDRESS 
	LDK	A7,/84	AND AORDER
	ST	A2,ECBCW,A8	STORE COMMAND IN CW 
	LKM
	DATA	1 
	ABL	OPCONT	NEXT COMMAND
* 
* 
CTECB	DATA	/62,0,0,0,0,0
* 
* 
*	CLOSE RECEIVERS 
* 
* 
CLOSE	EQU	* 
	CF	A14,OCCPR 
	LDK	A1,2 
	LDKL	A8,CTECB
	LDK	A7,/84 
	ST	A1,ECBCW,A8 
	LKM
	DATA	1 
	ABL	OPCT40 
	EJECT
* 
* 
*	PRINT ONE CHARACTER FROM A7 
* 
* 
PRCH	LDKL	A8,PRECB
	SC*	A7,ECBBA,A8
	LDK	A7,/85 
	LKM
	DATA	1 
	ADKL	A11,1	COUNT CHARACTERS
	LDK	A7,0 
	ST	A7,XSPACE	RESET SPACE INDICATOR 
	LC*	A7,ECBBA,A8	RESTORE A7 
	RTN	A14
* 
* 
TYECB	DATA	/20,TYBUF,1,0,0,0
TYBUF	RES	1 
PRECB	DATA	/31,PRBUF,1,0,0,0
PRBUF	DATA	0
XSPACE	DATA	0 
	EJECT
* 
* 
*	GENERATE CRLF 
* 
* 
CRLF	LDR	A11,A11
	RF(Z)	CRLF90	ALREADY NEW LINE
	LDK	A7,/0D 
	CF	A14,PRCH
	LDK	A7,/0A 
	CF	A14,PRCH
	IM	XSPACE	SET SPACE INDICATOR
	SUR	A11,A11
CRLF90	EQU	*
	RTN	A14
	EJECT
* 
* 
*	READ ONE CHARACTER FROM KEYBOARD TO A7
* 
*	TWO WORDS FOLLOWING CALL GIVE KEYTABLE AND FUNCTION TABLE ADDRESSES 
* 
*	ON ERROR GO TO NEXT INSTRUCTION ELSE TO FUNCTION
* 
*	A1 IS DESTROYED 
* 
* 
READ	LD	A7,4,A14
	LD	A1,2,A7	GET FUNCTION TABLE ADDRESS
	LDR*	A7,A7	GET KEYTABLE ADDRESS
	LDKL	A8,TYECB
	ST	A7,ECBCW,A8	STORE KEYTABLE ADDRESS
	LDK	A7,/82	STANDARD READ 
	LKM
	DATA	1 
READ05	EQU	*
	ADKL	A11,1	COUNT CHARS 
	LDK	A7,1 
	ST	A7,XSPACE	SET SPACE INDICATOR 
	LC*	A7,ECBBA,A8	GET CHARACTER TO A7
	ANK	A7,/7F 
	LD	A2,ECBRC,A8 
	RF(Z)	READ10	READING OK
	LDK	A1,4 
	ADS	A1,4,A14	INCR RETURN ADDRESS 
	RTN	A14
READ10	AD	A1,ECBCW,A8	ADD INDEX 
	ADKL	A14,4 
	ABR*	A1	RETURN TO FUNCTION 
* 
* 
*	READ AND ECHO 
* 
* 
READE	EQU	* 
	LD	A7,4,A14
* 
	LD	A1,2,A7	GET FUNCTION TABLE ADDRESS
	LDR*	A7,A7	GET KEYTABLE ADDRESS
	LDKL	A8,TYECB
	ST	A7,ECBCW,A8	STORE KEYTABLE ADDRESS
	LDK	A7,/82	STANDARD READ 
	LKM
	DATA	1 
	LC*	A7,ECBBA,A8
	CF	A14,PRCH	ECHO 
	LDKL	A8,TYECB
	RB	READ05
	EJECT
* 
* 
*	READ HEXADECIMAL CHARACTER
* 
* 
RDHEX	CF	A14,READE
	DATA	KTRDH 
KTRDH	DATA	0	NO KEYTABLE
RDH100	SUK	A7,/30 
	ABL(N)	ERROR 
	CWK	A7,9 
	RF(NG)	RDH110
	SUK	A7,7 
	ABL(N)	ERROR 
	CWK	A7,/F
	ABL(G)	ERROR 
RDH110	RTN	A14
* 
* 
* 
*	OCCUPIE PRINTER AND ECHO CHARACHTER IN A7 
* 
* 
OCCPR	EQU	* 
	LDR	A1,A7	SAVE CHAR
	LDK	A7,1 
	LKM	 
	DATA	-7,PRPOOL	GET BUFFER
	ST	A8,PROCCB	SAVE BUFFER ADDRESS 
	CF	A14,CRLF
	LDR	A7,A1	RESTORE CHAR 
	CF	A14,PRCH	ECHO 
	RTN	A14
* 
* 
* 
	END	ASTART 

Full view