|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4568 (0x11d8)
Notes: pts_type(SC)
Names: »INPRET.SC«
└─⟦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«
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