|
|
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: 4470 (0x1176)
Notes: pts_type(SC)
Names: »SHIFT.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »TOSSWORK/SHIFT.SC«
IDENT SHIFT REL 8.2 78-09-15 870172840820 * ******************************************* * * PHILIPS TERMINAL SYSTEM PTS * * SHIFT = SHIFT LEFT/RIGHT * * * * * * ******************************************* * * * THIS MODULE CONTAINS SUBROUTINES TO HANDLE * SHIFTING OF ELEMENT LEFT OR RIGHT A * SPECIFIED NUMBER OF 4 BIT STEPS: * CF A14,LABEL * BYTE ELEMENT,STEPS * * ENTRY T:SHL ENTRY T:SHR ENTRY M:SHL,M:SHR * EXTRN T:OPA EXTRN M:OPA EXTRN RETMMM * OVERLY EQU 0 * EJECT * *************** * SHIFT LEFT * *************** * M:SHL EQU * IFT OVERLY=1 LDK A1,/80 XRS A1,2,A14 XIF T:SHL SUR A8,A8 RF SH10 * *************** * SHIFT RIGHT * *************** * M:SHR EQU * IFT OVERLY=1 LDK A1,/80 XRS A1,2,A14 XIF T:SHR LDKL A8,/F0 SH10 LD* A7,4,A14 GET ARGUMENT ECR A7,A7 CHANGE BYTES IFT OVERLY=0 CF A14,T:OPA GET ELEMENT PARAMETERS XIF IFT OVERLY=1 CF A14,M:OPA GET ELEMENT PARAMETERS XIF LDR A5,A1 COPY LENGTH 2-COMPL. LCR A3,A6 GET SIGN BYTE LDR A9,A3 COPY TO A9 ANK A3,/F MASK SIGN ANKL A9,/F0 MASK DIGIT STR A3,A14 SAVE SIGN SCR A9,A6 RESTORE DIGIT LDR A9,A6 SAVE SIGN BYTE ADDRESS ECR A7,A7 CHANGE BYTES ANK A7,/FF MASK STEPS RF(Z) SH60 NO STEPS LDR A8,A8 RF(NZ) SH30 SHIFT RIGHT SUR A4,A4 A4:=0 * SH20 LCR A2,A6 GET BYTE ANK A2,/FF MASK BYTE LDR A3,A2 COPY TO A3 SRL A3,4 SHIFT A3 4 BITS RIGHT SLL A2,4 SHIFT A2 4 BITS LEFT ORR A2,A4 CREATE SHIFTED BYTE SCR A2,A6 STORE BYTE SUK A6,1 GET ADR OF NEXT BYTE LDR A4,A3 SAVE SHIFTED BCD ADK A1,1 DECREMENT BYTE COUNTER RF(Z) SH50 RB SH20 * SH30 ADR A6,A1 GET ADR OF ADK A6,1 - LEFTMOST BYTE LDR A4,A8 A8:=F0 * SH40 LCR A2,A6 GET BYTE ANK A2,/FF MASK BYTE LDR A3,A2 COPY TO A3 SLL A3,4 SHIFT A3 4 BITS LEFT SRL A2,4 SHIFT A2 4 BITS RIGHT ORR A2,A4 CREATE SHIFTED BYTE SCR A2,A6 STORE BYTE ADK A6,1 GET ADR OF NEXT BYTE LDR A4,A3 SAVE SHIFTED BCD ADK A1,1 DECREMENT BYTE COUNTER RF(Z) SH50 RB SH40 * SH50 SUK A7,1 DECREMENT STEP COUNTER RF(Z) SH60 FINISHED LDR A1,A5 RESET BYTE COUNTER LDR A6,A9 RESTORE ADR LDR A8,A8 RB(NZ) SH30 SHIFT RIGHT RB SH20-2 * SH60 LDR* A7,A14 GET SIGN LCR A2,A9 GET SIGN BYTE ANK A2,/F0 SAVE DIGIT ORR A2,A7 INSERT SIGN SCR A2,A9 STORE SIGN LDK A1,2 ADS A1,4,A14 MODIFY RETURN ADDRESS ABL RETMMM * END