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