Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-01 - 43,50034/arp.m2
There are no other files named arp.m2 in the archive.
	TITLE ARP SUBSET
;      1-BTX
       ENTRY   BTX
       Y=1
       N=2
       M=3
       X=4
       Y1=5
       S=6
       Q=16
BTX:   0
       MOVE    Y,@(Q)
       MOVE    N,@1(Q)
       MOVE    M,@2(Q)
       MOVE    X,@3(Q)
       MOVEI   S,^D35
       ADD     S,N
       SUB     S,M
       LSH     X,(S)
       MOVN    S,N
       LSH     X,(S)
       SETO    Y1,
       MOVEI   S,^D35
       ADD     S,N
       SUB     S,M
       LSH     Y1,(S)
       MOVN    S,N
       LSH     Y1,(S)
       TDZ     Y,Y1
       ADD     Y,X
       MOVEM   Y,@(Q)
       JRA     Q,4(Q)
;2-BXT
       ENTRY   BXT
       Y=1
       N=2
       M=3
       Q=16
BXT:   0
       MOVE    Y,@1(Q)
       MOVE    N,@2(Q)
       MOVE    M,@3(Q)
       MOVE    4,N
       LSH     Y,(4)
       MOVEI   4,^D35
       ADD     4,N
       SUB     M,4
       LSH     Y,(M)
       MOVEM   Y,@(Q)
       JRA     Q,4(Q)
;4-CAM
       ENTRY   CAM
       I1=1
       I2=2
       I3=4
CAM:   0
       SKIPG   I1,@2(16)
       JRST    C6
       SKIPG   I2,@4(16)
       JRST    C6
       SKIPG   I3,@5(16)
       JRST    C6
       ADD     I3,I1
       SOS     I3
       HRRZ    3,1(16)
       JSA     16,ZBSET
       EXP     10
       EXP     I1
       EXP     3
       HRRZ    3,3(16)
       JSA     16,ZBSET
       EXP     11
       EXP     I2
       EXP     3
C1:    LDB     6,10
       LDB     7,11
       CAME    6,7
       JRST    C2
       CAML    I1,I3
       JRST    C3
       AOS     I1
       IBP     10
       IBP     11
       JRST    C1
C2:    CAML    6,7
       JRST    C5
       MOVE    5,[-1]
       MOVEM   5,@(16)
       JRST    C4
C5:    MOVEI   5,1
       MOVEM   5,@(16)
C4:       JRA     16,6(16)
C3:    MOVEI   5,0
       MOVEM   5,@(16)
       JRST    C4
C6:    JSA     16,ERROR
	EXP	[1]
       JRST    C4
;6-CAW
       ENTRY   CAW,CAH
       A=1
       N=2
       M=3
       K1=4
       N1=5
       PTR=6
       Q=16
CAH:	BLOCK	0
CAW:   0
       HRRZ    A,1(Q)
       MOVE    N,@2(Q)
       MOVE    M,@3(Q)
       SETZ    K1,
       JSA     Q,ZBSET
       EXP     PTR
       EXP     N
       EXP     A
Q2:    CAMLE   N,M
       JRST    Q1
       LDB     N1,PTR
       ANDI    N1,7
       LSH     K1,3
       ADD     K1,N1
       IBP     PTR
       AOS     N
       JRST    Q2
Q1:    MOVEM   K1,@(Q)
       JRA     Q,4(Q)
;15-LAND
       ENTRY   LAND
LAND:  0
       MOVE    0,@1(16)
       ANDM    0,@(16)
       JRA     16,2(16)
;16-LCSM
       ENTRY   LCSM
LCSM:  0
       JRA     16,(16)
;17-LNOT
       ENTRY   LNOT
LNOT:  0
       SETCMM  @(16)
       JRA     16,1(16)
;18-LOR
       ENTRY   LOR
LOR:   0
       MOVE    0,@1(16)
       ORM     0,@(16)
       JRA     16,2(16)
;19-LXOR
       ENTRY   LXOR
LXOR:  0
       MOVE    0,@1(16)
       XORM    0,@(16)
       JRA     16,2(16)
;20-MOVE
       ENTRY   MOVE
       I1=1
       I2=2
       I3=4
MOVE:  0
       SKIPG   I1,@1(16)
       JRST    B3
       SKIPG   I2,@3(16)
       JRST    B3
       SKIPG   I3,@4(16)
       JRST    B3
       ADD     I3,I1
       SOS     I3
       HRRZ    3,(16)
       JSA     16,ZBSET
       EXP     5
       EXP     I1
       EXP     3
       HRRZ    3,2(16)
       JSA     16,ZBSET
       EXP     6
       EXP     I2
       EXP     3
B1:    LDB     7,6
       DPB     7,5
       CAML    I1,I3
       JRST    B2
       AOS     I1
       IBP     5
       IBP     6
       JRST    B1
B2:       JRA     16,5(16)
B3:    JSA     16,ERROR
	EXP	[2]
       JRST    B2
;28-SETB
       ENTRY   SETB
       I1=1
       I2=2
SETB:  0
       SKIPG   I1,@1(16)
       JRST    A3
       SKIPG   I2,@2(16)
       JRST    A3
       ADD     I2,I1
       SOS     I2
       HRRZ    3,(16)
       MOVEI   4," "
       JSA     16,ZBSET
       EXP     5
       EXP     I1
       EXP     3
A1:    DPB     4,5
       CAML    I1,I2
       JRST    A2
       AOS     I1
       IBP     5
       JRST    A1
A2:       JRA     16,3(16)
A3:    JSA     16,ERROR
	EXP	[3]
       JRST    A2
;ZBSET
ZBSET: 0
       MOVEM   1,DSAC1
       MOVEM   2,DSAC2
       PUSH    17,@1(16)
       MOVE    2,@2(16)
       POP     17,1
       SOS     1
       MOVEM   2,ZTMP1
       SETZ    2,
       IDIVI   1,5
       ADD     1,ZTMP1
       MOVN    2,2
       ADDI    2,4
       IMULI   2,7
       AOS     2
       LSH     2,36
       ADD     1,2
       MOVSI   2,700
       ADD     1,2
       MOVEM   1,@(16)
       MOVE    1,DSAC1
       MOVE    2,DSAC2
       JRA     16,3(16)
ZTMP1: 0
DSAC1: 0
DSAC2: 0
;ZDPTR
ZDPTR: 0
       MOVEM   1,ZTMP3
       MOVE    1,@(16)
       SOS     1
       IBP     1
       IBP     1
       IBP     1
       IBP     1
       MOVEM   1,@(16)
       MOVE    1,ZTMP3
       JRA     16,1(16)
ZTMP3: 0
;ERROR
       ENTRY   ERROR
ERROR: 0
	MOVE	0,@(16)
	ADDI	0,60
	DPB	0,[POINT 7,ERRN,20]
	MOVEI	0,ERRM
	CALL	0,[SIXBIT /DDTOUT/]
	JRA	16,1(16)
;
ERRM:	ASCII / ****/
	ASCII /*ERRO/
ERRN:	ASCIZ /R   /
	0
;10-CWA
       ENTRY   CWA,CHA
       A=1
       N=2
       M=3
       K=4
       N1=5
       PTR=6
       Q=16
CHA:	BLOCK	0
CWA:   0
       HRRZ    A,(Q)
       MOVE    N,@1(Q)
       MOVE    M,@2(Q)
       MOVE    K,@3(Q)
       JSA     Q,ZBSET
       EXP     PTR
       EXP     M
       EXP     A
CWAQ2: CAMGE   M,N
       JRST    CWAQ1
       MOVE    N1,K
       ANDI    N1,7
       LSH     K,-3
       ADDI    N1,60
       DPB     N1,PTR
       JSA     Q,ZDPTR
       EXP     PTR
       SOS     M
       JRST    CWAQ2
CWAQ1: JRA     Q,4(Q)
	END