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

⟦9807f7ad8⟧

    Length: 4568 (0x11d8)
    Notes: pts_type(SC)
    Names: »INPRET.SC«

Derivation

└─⟦c47f25c27⟧ Bits:30009688 Philips computer tape "600318"
    └─⟦this⟧ »M:KMDV/INPRET.SC« 
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
    └─⟦this⟧ »TOSSWORK/INPRET.SC« 
└─⟦fcfed1ed9⟧ Bits:30009706 Philips computer tape "M_167"
    └─⟦this⟧ »M:167D/INPRET.SC« 

PTS(SC)

	IDENT INPRET 	REL 8.2 78-09-15  870105040820 

* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   INPRET = SUBROUTINE INTERPRETER 
* 
* 
* 
* 
* 
* 
**************************************************
* 
* 
*   THIS IS A SUBROUTINE INTERPRETER TO HANDLE SUBROUTINE 
*   CALLS USING THE A14 STACK. THE INTERPRETER IS CALLED
*   WITH INSTRUCTION CODES /C001 - /C0FF WHERE /1 - /FF IS A
*   INDEX. INDEX VAULES ARE 1,2,3,4...... 
*   THE INDEX IS USED TO GET ABSOLUTE ADDRESS TO THE CALLED 
*   SUBROUTINE FROM A ADDRESS TABLE. START ADDRESS OF THIS TABLE
*   IS STORED IN COMMUNICATION VECTOR TABLE. ('CVTINP') 
* 
*   THE INTERPRETER MAY ALSO EXECUTE THE FOLLOWING TWO INSTRUCTIONS:
* 
*   LD  R1,DISPL,A13   CALLING CODE: CXYY 
* 
*   ST  R1,DISPL,A13   CALLING CODE: DXYY 
* 
*   X =  R1 = REGISTERS A1 -A14 
*   YY = DISPL (DISPLACMENT)
* 
* 
* 
	EJECT
* 
* 
********* 
* ENTRY * 
********* 
* 
* 
	ENTRY	IHINPT	TRAP INTERRUPT ADDRESS
* 
* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	CVTINP	FUNCTION TABLE ADDRESS
	EXTRN	RETUR3 
	EJECT
* 
* 
*   I H I N P T 
* 
*   INTERPRETER TRAP HANDLER
* 
IHINPT	EQU	*
	STR	A1,A15	SAVE A1-A3 ON STACK 
	STR	A2,A15 
	STR	A3,A15	SAVE A3 ON STACK
	LD	A1,10,A15	LOAD TRAP ADDRESS 
	LDR*	A2,A1	LOAD TRAP CODE
	ADK	A1,2	
	ST	A1,10,A15	SAVE RETURN ADDRESS 
	LDR	A3,A2	SAVE CODE IN A3
	ANKL	A3,/F00	MASK OUT REGISTER CODE
	RF(Z)	INT200	BRANCH IF SUBROUTINE CALL 
* 
* 
*   EXECUTE LOAD/STORE INSTRUCTION
* 
	SC	A2,DISPL+1	STORE DISPLACMENT
	SRL	A3,1	SHIFT TO FIT INSTRUCTION CODE 
	SLL	A2,3	
	RF(NN)	INT100	BRANCH IF LOAD INSTRUCTION 
	ADK	A3,1	INDICATE STORE INSTRUCTION
INT100	ADKL	A3,/8056	GET COMPLETE INSTRUCTION CODE
	ST	A3,INSTR	STORE INSTRUCTION TO BE EXECUTED 
	LDR*	A3,A15	RESORE A3
	LDR*	A2,A15	RESTORE A1-A2
	LDR*	A1,A15
INSTR	DATA	0	LOAD/STORE INSTRUCTION 
DISPL	DATA	0	DISPLACMENT
	STR	A1,A15	SAVE A1 
	CF	A15,IHSTAK	SAVE CONDITION REGISTER
IHSTAK	LDR*	A1,A15	GET COND. REG
	ST	A1,6,A15	STORE IN RETURN PSW
	LDR*	A1,A15	DUMMY TO ADJUST STACK
	LDR*	A1,A15	RELOAD A1
	RTN	A15	RETURN TO USER PROGRAM 
	EJECT
* 
* 
*   EXECUTE SUBROUTINE CALL 
* 
INT200	EQU	*
	STR	A1,A14	STORE CONTINUATION ADDRESS ON A14 STACK 
	LD	A3,8,A15
	ST	A3,-2,A14	STORE PSW ON A14 STACK
	SUKL	A14,4	ADJUST STACK POINTER
	ANKL	A2,/1FFF	GET INDEX AND
	ADR	A2,A2	DOUBLE IT
	AD	A2,CVTINP	ADD FUNCTION TABLE START ADDRESS
	LDR*	A2,A2	GET SUBROUTINE START ADDRESS AND
	ST	A2,10,A15	STORE IT ON A15 STACK 
	ABL	RETUR3	RESTORE A1-A3 AND GO TO CALLED SUBROUTINE 
* 
* 
	END

Full view