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

⟦0bb96112f⟧

    Length: 13596 (0x351c)
    Notes: pts_type(SC)
    Names: »LOGCON.SC«

Derivation

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

PTS(SC)

	IDENT LOGCON	REL 1.1 78-04-21 870150140110 
**********************************************************
* 
*	LINE LOG TOOL 
*	LOG CONTROL FUNCTIONS 
* 
*	OESTEN HANSSON   1976-01-21 
* 
**********************************************************
* 
*	THIS MODULE HANDLES OPERATOR COMMUNICATION
* 
*	BY INITIALIZATION , LINE CODE MUST BE SPECIFIED 
* 
*	A : ASCII-CODE WANTED 
* 
*	E : EBCDIC-CODE WANTED
* 
*	THEN FOLLOWING KEYS ARE ALLOWED:
* 
*	O : OPEN RECEIVER 1 AND 2 
* 
*	C : CLOSE RECEIVER 1 AND 2
* 
*	R : RESET RECEIVE BUFFER
* 
*	P : DEFINE IDLE-POLL PATTERN
* 
*********************************************************** 
	EJECT
* 
* 
* 
	ENTRY	ASTART 
	ENTRY	EBASC
* 
* 
	EXTRN	PRPOOL	OCCUPIE PRINTER BUFFER POOL 
	EXTRN	LOGINP 
	EXTRN	TEXT1
	EXTRN	TEXT2
	EXTRN	TEXT3
	EXTRN	TEXT4
	EXTRN	TEXT5
	EXTRN	TEXT6
	EXTRN	PATT1	PATTERN AREA 1 
	EXTRN	PATT2	PATTERN AREA 2 
* 
* 
*	EQUATES 
* 
* 
ECBBA	EQU	2 
ECBRC	EQU	8 
ECBCW	EQU	10
* 
* 
	RES	20	STACK FOR A14 
STB	EQU	*-2 
PROCCB	DATA	0	ADDRESS TO PRINTER OCCUPIED BUFFFER 
EBASC	DATA	0	0=EBCDIC , 1=ASCII 
	EJECT
* 
* 
*	START LOG TEST TOOL 
* 
* 
ASTART	EQU	*
	CM	PROCCB	RELEASE PRINTER BUFFER 
	LDKL	A7,'OP' 
	LKM
	DATA	-4,OPCTRL	ACTIVATE OPERATOR CONTROL TASK
	LDKL	A7,'IN' 
	LKM
	DATA	-4,LOGINP	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
	CF	A14,PRTXT	PRINT TEXT FOR CODE CHOICE
	CF	A14,READ	READ E OR A
	DATA	KT100,FT100 
	LDK	A7,'?'	INVALID KEY 
	CF	A14,PRCH
	RB	OPCT10	TRY AGAIN
* 
* 
KT100	DATA	/0241,'E'
FT100	DATA	OPCT20,OPCT30
* 
* 
	EJECT
OPCT20	EQU	*
	IM	EBASC	ASCII-CODE WANTED 
	RF	OPCT40
OPCT30	EQU	*
	CM	EBASC	EBCDIC-CODE WANTED
OPCT40	EQU	*
	STR	A7,A14 
	SUKL	A14,2 
	CF	A14,CRLF
	ADKL	A14,2 
	LDR*	A7,A14
	CF	A14,PRCH
	CF	A14,CRLF
	LDKL	A2,TEXT6
	CF	A14,PRTXT 
	CF	A14,READE 
	DATA	KT110,FT110 
	LDK	A7,'?' 
	CF	A14,PRCH
	RB	OPCT40
* 
* 
KT110	DATA	/0242,'O'
FT110	DATA	OPCT45,OPCT46
* 
* 
	EJECT
OPCT45	EQU	*
	LDK	A5,0	B AS IN BSC 
	RF	OPCT47
OPCT46	EQU	*
	LDKL	A5,/100	O AS IN OTHER 
OPCT47	EQU	*
	CF	A14,CRLF
	LDKL	A8,CTECB	LOAD ECB ADDRESS 
	LDK	A7,/85	LOAD ORDER 5
	LDK	A3,/32 
	LD	A2,EBASC
	RF(Z)	OPCT50	EBCDIC
	LDK	A3,/16 
OPCT50	EQU	*
	ADR	A3,A5
	ST	A3,ECBCW,A8	STORE SYNC-PATTERN
	LKM
	DATA	1	TRANSFER SYNC-PATTERN 
	RF	OPCOM 
	EJECT
* 
* 
*	SUBROUTINE FOR TEXT PRINTING
* 
* 
PRTXT	EQU	* 
	LDR*	A3,A2	GET LENGTH
	ST	A2,PRXECB+2	STORE ADDRESS 
	ADK	A3,2 
	ST	A3,PRXECB+4	STORE LENGTH
	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
* 
* 
*	OPCOM , OPERATOR COMMAND MODULE 
* 
* 
OPCOM	EQU	* 
	LD	A8,PROCCB 
	RF(Z)	OPCOM1	BUFFER NOT OCCUPIED 
	LKM
	DATA	-8,PRPOOL	RELEASE BUFFER
	CM	PROCCB
OPCOM1	EQU	*
	CF	A14,READ	READ COMMAND 
	DATA	KT200,FT200 
	ABL	ERRORA	INVALID KEY 
* 
* 
KT200	DATA	/044F,'CRP'
FT200	DATA	OPEN,CLOSE,RESET,IDPOLL
	EJECT
* 
* 
*	LOG CONTROL 
* 
* 
OPEN	EQU	*
	LDK	A7,' ' 
	CF	A14,OCCPR 
	CF	A14,CRLF
	LDKL	A2,TEXT5
	CF	A14,PRTXT 
	LDK	A2,1 
	RF	CLOSET
RESET	EQU	* 
	LDK	A2,3	RESET RECEIVE BUFFER
	RF	CLOSET
CLOSE	EQU	* 
	LDK	A7,' '	CLOSE RECEIVER
	CF	A14,OCCPR	OCCUPIE PRINTER 
	CF	A14,CRLF
	LDKL	A2,TEXT2
	CF	A14,PRTXT	PRINT TEXT
	LDK	A2,2 
	EJECT
CLOSET	EQU	*
	LDKL	A8,CTECB
	LDR	A7,A2
	LKM
	DATA	1	PERFORM ORDER FOR LOGG DRIVER 
	SUK	A7,2 
	ABL(Z)	OPCT10	CLOSE ORDER
	CF	A14,CRLF
	ABL	OPCOM
	EJECT
IDPOLL	EQU	*
	LDK	A7,' '	DEFINE POLL PATTERN 
	CF	A14,OCCPR	OCCUPIE PRINTER 
IDP10	EQU	* 
	CF	A14,CRLF
	LDKL	A2,TEXT3
	CF	A14,PRTXT	PRINT TEXT
	CF	A14,CRLF
	LDKL	A4,PATT1	LOAD ADDRESS TO PATTERN AREA 1 
	ADK	A4,2 
	LDK	A3,/B
	CM	PATT1 
IDP20	EQU	* 
	CF	A14,READE	READ AND ECHO 
	DATA	KT300,FT300 
	CF	A14,RDH100
	LDR	A6,A7	SAVE FIRST DIGIT 
	SLL	A6,4 
	CF	A14,RDHEX	READ
	ADR	A7,A6	SAVE SECOND DIGIT
	SCR	A7,A4	STORE IN PATTERN AREA
	ADK	A4,1 
	IM	PATT1 
	SUK	A3,1 
	RF(Z)	ERROR	AREA OVERFLOW
	CF	A14,PRSPAC
	RB	IDP20 
	EJECT
* 
* 
KT300	DATA	/012A
FT300	DATA	IDP30
* 
* 
IDP30	EQU	* 
IDP40	EQU	* 
	CF	A14,CRLF
	LDKL	A2,TEXT4
	CF	A14,PRTXT	PRINT TEXT
	CF	A14,CRLF
	LDKL	A4,PATT2	LOAD ADDERSS TO PATTERN AREA 2 
	ADK	A4,2 
	LDK	A3,/B
	CM	PATT2 
	EJECT
IDP50	EQU	* 
	CF	A14,READE	READ AND ECHO 
	DATA	KT400,FT400 
	CF	A14,RDH100
	LDR	A6,A7	SAVE FIRST DIGIT 
	SLL	A6,4 
	CF	A14,RDHEX	READ
	ADR	A7,A6	SAVE SECOND DIGIT
	SCR	A7,A4	STORE IN PATTERN AREA
	ADK	A4,1 
	IM	PATT2 
	SUK	A3,1 
	RF(Z)	ERROR	AREA OVERFLOW
	CF	A14,PRSPAC
	RB	IDP50 
	EJECT
* 
* 
KT400	DATA	/012A
FT400	DATA	IDP60
* 
* 
IDP60	EQU	* 
	CF	A14,CRLF
	LDKL	A2,PATT1
	ST	A2,CTECB+2	STORE PATTERN ADDRESS
	LDK	A2,4	LOAD ORDER 4
	ABL	CLOSET 
	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 '?'
	CF	A14,CRLF
	ABL	OPCOM
	EJECT
* 
* 
*	CHECK HEXADEC. INPUT AND TRANSLATE
* 
* 	CR=0  OK 
*	CR=1,2  ILLEGAL CHAR
* 
* 
HEXCH	EQU	* 
	ADKL	A14,4	SKIP STACK
	LDR	A1,A7
	SUK	A1,'0' 
	RF(N)	HEXC90 
	SUK	A1,9 
	RF(NP)	HEXC10	NUMBER 
	SUK	A1,8 
	RF(N)	HEXC90 
	SUK	A1,5 
	RF(P)	HEXC90 
	ADK	A1,15	TRANSLATE HEX LETTER 
	LDR	A7,A1
	RF	HEX20 
HEXC10	EQU	*
	ADK	A1,9 
	LDR	A7,A1
HEX20	EQU	* 
	SUR	A1,A1
	RF	HEX99 
HEXC90	EQU	*
	LDK	A1,1 
HEX99	EQU	* 
	ABR*	A14 
	EJECT
* 
* 
CTECB	DATA	/62,0,0,0,0,0
	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
	EJECT
* 
* 
*	GENERATE CRLF 
* 
* 
CRLF	EQU	*
	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
	EJECT
* 
* 
*	EDIT	CHAR FROM A7 IN HEXADECIMAL FORM 
* 
* 
EDHEX	LDR	A6,A7	SAVE A7 
	CF	A14,SPACE 
	LDK	A7,'/' 
	CF	A14,PRCH
	LDR	A7,A6
	SRL	A7,4 
	LC	A7,HEXTAB,A7
	CF	A14,PRCH	1ST CHAR 
	LDR	A7,A6
	ANK	A7,/F
	LC	A7,HEXTAB,A7
	CF	A14,PRCH	2ND CHAR 
	CF	A14,SPACE	SPACE 
	RTN	A14
HEXTAB	DATA	'0123456789ABCDEF'
* 
	EJECT
* 
* 
*	PUT SPACE IN BUFFER 
* 
* 
SPACE	LD	A1,XSPACE
	RF(NZ)	SPA100
PRSPAC	LDK	A7,' ' 
	CF	A14,PRCH
	IM	XSPACE
SPA100	RTN	A14
XSPACE	DATA	0	SPACE INDICATOR 
* 
* 
* 
*	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