|
|
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: 4684 (0x124c)
Notes: pts_type(SC)
Names: »MPYMOD.SC«
└─⟦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«
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