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

⟦65b77d57e⟧

    Length: 4550 (0x11c6)
    Notes: pts_type(SC)
    Names: »MPYMOD.SC«

Derivation

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

PTS(SC)

	IDENT MPYMOD 	REL 8.2 78-09-15  870105040820 
*			LREK 78-02-20 
* 
****************************************************
* 
*   PHILIPS TERMINAL SYSTEM  PTS
* 
*   TOSS DATA MANAGEMENT
* 
* 
*   LEVEL      #1 
* 
*   RELEASE    #8 
* 
****************************************************
* 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
MPYMOD   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
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 
CASSPE   LDR      A1,A6       *A7=X'8000' THEN  A4=  1
*                             *AND  A1= A6
         RB(7)    NOVER3
         END

Full view