1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-02-15 12:16:07 +00:00
Files
PDP-10.stacken/files/stacken-tape-backup/dskb:10_7/backup/endecr.mac
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

173 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
TITLE ENDECR - ALC STYLE ENCRIPTION SCHEME
SEARCH UUOSYM
.BCOPY
COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986. ALL RIGHTS RESERVED.
.ECOPY
\;END COPYRIGHT MACRO
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986. ALL RIGHTS RESERVED.
;
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
TWOSEG
COMMENT $
THE FOLLOWING CODE CONSISTS OF 3 BASIC ROUTINES:
1) CRASZ. - WARMUP ROUTINE FOR ASCIZ SEED
2) CRSIX. - WARMUP ROUTINE FOR A SIXBIT ATOM
3) CRYPT. - BASIC CRYPTION
CALLING CONVENTIONS:
THESE 3 SUBROUTINES USE AC'S 0-7, ARGUMENTS ARE PASSED
IN 5 , 6 , AND 7 - ANSWERS RETURNED IN 5.
1) MOVE A,<ADDR OF ASCIZ STRING OR BP>
PUSHJ P,CRASZ.
...... ;SEED RETURNED IN (C)
2) MOVE C,<SIXBIT ATOM>
PUSHJ P,CRSIX.
...... ;SEED RETURNED IN (C)
3) MOVE A,<AOBJN WORD TO BLOCK TO BE CRYPTED>
MOVE B,<BLOCK KEY (BLOCK NUMBER WILL DO)>
MOVE C,<SEED GENERATED BY CRASZ. OR CRSIX.>
PUSHJ P,CRYPT.
...... ;ALWAYS RETURN
$
ENTRY CRASZ.,CRSIX.,CRYPT.
;AC DEF'S
Z==0
T1==1
T2==2
T3==3
T4==4
C==5
B==6
A==7
P==17
;CRASZ. - CONVERTS ASCIZ STRINGS POINTED TO BY (A) INTO SEEDS
RELOC 400000
CRASZ.: TLNN A,-1 ;SEE IF BYTE-PNTR
HRLI A,(<POINT 7,,>)
MOVEI B,0
PUSH P,B
CRASZ1: MOVEI C,0
MOVE T1,[POINT 6,C]
CRASZ2: ILDB Z,A
JUMPE Z,CRASZ3
CAIG Z,"Z"+40
CAIG Z," "
JRST CRASZ2
CAILE Z,"_"
SUBI Z,40
SUBI Z,40
IDPB Z,T1
TLNE T1,770000
JRST CRASZ2
XOR C,0(P)
PUSHJ P,CRSIX.
MOVEM C,0(P)
JRST CRASZ1
CRASZ3: JUMPE C,CRASZ4
XOR C,0(P)
PUSHJ P,CRSIX.
MOVEM C,0(P)
CRASZ4: POP P,C
JUMPN C,CRASZ5
SKIPE B
MOVE C,[13702,,175435]
CRASZ5: POPJ P,
;CRSIZ. - HANDLES SIXBIT ATOMS (CALLED FROM CRASZ.)
CRSIX.: JUMPE C,CRSIX1
PUSHJ P,CWRAN
HLR B,B
SUB P,B
CRSIX1: POPJ P,
;CRYPT. - BASIC BLOCK EN/DE CRYPTER
CRYPT.: JUMPE C,CRYPT4
MOVE Z,B
IMULI Z,200401
AND Z,[11111111]
MUL Z,[11111111]
TLZ T1,(<6B2>)
ADD C,T1
PUSHJ P,CWRAN
HLRZ T1,B
MOVN T1,T1
HRL T1,T1
ADDI T1,1(P)
PUSH P,T1
CRYPTA: MOVE T1,0(P)
HRRZ T2,B
HRL T2,T2
ADD T2,T1
CRYPT1: MOVE Z,0(T2)
ADDB Z,0(T1)
XORM Z,0(A)
AOBJP A,CRYPT3
AOBJN T2,CRYPT2
HRRZ T2,0(P)
TLO T2,(<1B0>)
CRYPT2: AOBJN T1,CRYPT1
JRST CRYPTA
CRYPT3: HLR B,B
AOBJN B,.+1
SUB P,B
CRYPT4: POPJ P,
CWRAN: LDB T4,[POINT 3,C,4]
POP P,T2
CWRAN0: XOR C,[13702,,175435]
TLZ C,760000
JUMPE C,CWRAN0
HLRZ T3,MAJIK(T4)
CWRAN1: MOVEI Z,6
CWRAN2: MOVE B,C
ROT B,13
XOR B,C
ROT B,-6
LSHC C,6
SOJG Z,CWRAN2
PUSH P,C
SOJG T3,CWRAN1
MOVE B,MAJIK(T4)
JRST 0(T2)
MAJIK: 7,,4
11,,5
12,,7
13,,11
17,,10
17,,13
21,,5
22,,13
END