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

⟦870b681fe⟧

    Length: 4148 (0x1034)
    Notes: pts_type(SC)
    Names: »SHIFT.SC«

Derivation

└─⟦2a21e4bb5⟧ Bits:30009691 Philips computer tape "600408"
    └─⟦this⟧ »BDKAPP/SHIFT.SC« 
└─⟦71472ef1e⟧ Bits:30009661 Philips computer tape "600103"
    └─⟦this⟧ »BDKAPP/SHIFT.SC« 

PTS(SC)

	IDENT  SHIFT 	REL=7.2  DATE=77-09-09 
			UPDATE   #0   77-09-09 
* 
******************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   SHIFT = SHIFT LEFT/RIGHT
* 
* 
*   LEVEL     #2  77-09-09
* 
*   RELEASE   #7  77-09-09
* 
******************************************* 
* 
* 
* 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


Full view