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

⟦93784cc7e⟧

    Length: 4684 (0x124c)
    Notes: pts_type(SC)
    Names: »MPYMOD.SC«

Derivation

└─⟦173d42e04⟧ Bits:30009663 Philips computer tape "600105"
    └─⟦this⟧ »TOSSWORK/MPYMOD.SC« 
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »M:TU10/MPYMOD.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »M:TU10/MPYMOD.SC« 

PTS(SC)

	IDENT MPYMOD 	REL 10.0 80-03-14 870105041000 

* 
****************************************************
* 
*   PHILIPS TERMINAL SYSTEM  PTS
* 
*   TOSS DATA MANAGEMENT
* 
* 
* 
****************************************************
* THIS ROUTINE EXECUTES THE MULTIPLY INSTRUCTION ON THE ALPLA COMPUTER
* CALLING SEQUENCE: 
*                 LD        A6,ARG1 
*                 LD        A7,ARG1 
*        CF       A14,MPYMOD
* RETURN :        RESULT  IN  A1,A2 
*        REGISTERS  A3,A4,A6,A7, ARE CRUSHED
         ENTRY    MPYMOD
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING THE EXTENDED INSTRUCTION
*	SET IS OBTAINED BY SETTING CPU852 EQU 0.
* 
CPU852	EQU	1
* 
	EJECT
MPYMOD	EQU	*
	IFF	CPU852=1 
	LDK	A3,0 
	LDR	A2,A7
	MUR	A6 
	XIF
	IFT	CPU852=1 
         LDK.L    A3,/8000    IF A6=A7=/8000 RETURN IN ERROR EXIT 
         CWR      A3,A6 
         RF(4)    SUITE 
         CWR      A3,A7 
         RF(0)    END3
         LDR      A6,A7       * A6= X'8000'  A7# X'8000'
         LDR      A7,A3       * EXCHANGE  A6-A7 
SUITE    LDK      A1,0        *INITIALISE 
         LDK      A2,0
         LDK      A3,0
         LDK      A4,15 
         ADK      A6,0
         RF(0)    END0
         RF(6)    ARG1PS
         ADK      A3,1        *ARG1 NEGATIVE
         C1R      A6,A6 
         ADK      A6,1
ARG1PS   ADK      A7,0
         RF(0)    END0
         RF(6)    ARG2PS
         SUK      A3,1        *ARG2 NEGATIVE
         C1R      A7,A7 
         ADK      A7,1
         RF(3)    CASSPE
ARG2PS   SRC      A7,1
         RF(6)    NOVER1
         ADR      A1,A6 
NOVER1   SRA      A2,1
         SRC      A1,1
         RF(6)    NOVER2
         ORK.L    A2,/4000
         ANK.L    A1,/7FFF
NOVER2   SUK      A4,1
         RB(4)    ARG2PS
NOVER3   ADK      A3,0        *END* RESTORE SI=N
         RF(0)    END1
         C1R      A1,A1 
         C1R      A2,A2 
         ADK      A2,1
*CAUTION THE NEXT INSTRUCTION IS ABSOLUTELY NECESSARY TO SET CR 
* WHEN THE ADK A2,1 SET AN OVERFLOW CR  EX (RESULT=8000)
         ADK      A2,0
         RF(2)    NOVER4
         ADK      A1,1
NOVER4   ANK.L    A2,/7FFF
         RF(7)    END2
	XIF
	IFF	CPU852=1 
	RF(0)	END0 
	RF(1)	END1 
	RF(2)	END2 
	XIF
END3     ADK      A3,/81
END2     ADK      A3,/81
END1     ADK      A3,/81
END0     SLL      A3,1
         ANK.L    A3,/0300
         LDK.L    A4,/FCFF
         AN.S     A4,2,A14
         OR.S     A3,2,A14    UPDATE CR IN PSW CALLING PROGRAM
         RTN      A14 
	IFT	CPU852=1 
CASSPE   LDR      A1,A6       *A7=X'8000' THEN  A4=  1
*                             *AND  A1= A6
         RB(7)    NOVER3
	XIF
         END

Full view