Trailing-Edge
-
PDP-10 Archives
-
decuslib10-04
-
43,50331/dfcode.lst
There are no other files named dfcode.lst in the archive.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 1
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
1 TITLE DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY.
2 SUBTTL FROHREICH R. J. 03-JUN-74
3
4 000137 LOC <JOBVER== 137>
5 000137 5 001 01 000003 BYTE (3) 5 (9) 1 (6) 1 (18) 3 ; V 1A(3)-5
6
7 000124 LOC <JOBREN== 124>
8 000124 000000 400001' REST ; REENTRY POINT.
9
10 000000' RELOC 0
11
12 IFNDEF PURE, <PURE== 1> ; ASSUME REENTRANT IF
13 ; PURE IS UNDEFIND.
14 400000' IFN PURE, <TWOSEG>
15
16
17 IFNDEF KWORD, <KWORD== 0> ; DEFAULT KEY WORD IS
18 ; THE FIRST WORD OF BLOCK
19 IFN KWORD, <KWORD== 1> ; IF NOT = 0, MAKE IT 1.
20
21
22 ; ACCUMULATOR ASSIGNMENTS.
23
24 000000 A= 0
25 000001 P= 1
26 000002 CT= 2
27 000003 DEV= 3
28 000005 NAME= 5
29 000006 EXT= 6
30 000007 IND= 7
31 000010 IND1= 10
32 000011 IND2= 11
33 000012 IND3= 12
34 000013 KEY= 13
35 000016 STATUS= 16
36 000017 PD= 17
37
38
39 ; I-O CHANNEL ASSIGNMENTS.
40
41 000000 INCH== 0
42
43 000001 OUTCH== 1
44
45
46 ; SINCE THE TAPE LOOKUP BLOCK (TLOOK) AND THE TAPE ENTER BLOCK
47 ; (TENTR) ARE THE SAME, THEY WILL FREQUENTLY BE USED INTERCHANGEABLY.
48 ; THE SAME IS TRUE FOR THE DISK LOOKUP AND ENTER BLOCKS (DLOOK AND DENTR)
49
50 ; ALTHOUGH THE MAIN DEVICE MAY BE ANY DEVICE ON WHICH THE UNCODED
51 ; VERSION OF THE FILE RESIDES OR IS TO RESIDE, IT WILL BE REFERRED TO
52 ; FROM NOW ON AS "DISK". THE STORAGE DECTAPE WILL BE REFERRED TO AS "TAPE".
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 2
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
53
54 400000' IFN PURE, <RELOC 400000>
55
56
57 ST: OUTSTR [ASCIZ*DFCODE V 1A(3)-5
58 400000' 051 03 0 00 400735' *] ; TYPE VERSION #
59
60 400001' 047 00 0 00 000000 REST: RESET ; REENTER ADDRESS
61 400002' 200 00 0 00 400741' MOVE A, [XWD DATA, TINM]
62 400003' 251 00 0 00 000017' BLT A, DECO ; INITIALIZE PART OF LOW SEGMENT.
63
64
65 400004' 200 17 0 00 400742' MOVE PD, [IOWD 12, STACK] ; SET UP PUSH DOWN POINTER
66 400005' 051 03 0 00 400743' CD: OUTSTR [ASCIZ*CODE OR DECODE? (C OR D) : *]
67 400006' 051 04 0 00 000000 INCHWL A ; GET A CHARACTER
68 400007' 302 00 0 00 000104 CAIE A, "D" ; IS IT A D ?
69 400010' 254 00 0 00 400013' JRST .+3 ; NO - SEE IF C
70 400011' 476 00 0 00 000017' SETOM DECO ; YES - SET TO DECODE.
71 400012' 254 00 0 00 400017' JRST ASKDTA ; ASK FOR DRIVE
72 400013' 306 00 0 00 000103 CAIN A, "C" ; IS IT A C ?
73 400014' 254 00 0 00 400017' JRST ASKDTA ; YES - ASK FOR DRIVE.
74 400015' 260 17 0 00 400506' PUSHJ PD, TTEAT ; NO - EAT UP REST OF LINE
75 400016' 254 00 0 00 400005' JRST CD ; ASK AGAIN.
76 400017' 260 17 0 00 400506' ASKDTA: PUSHJ PD, TTEAT ; EAT UP REST OF LINE
77 400020' 400 03 0 00 000000 SETZ DEV, ; INITIALIZE DEVICE NAME
78 400021' 051 03 0 00 400751' OUTSTR [ASCIZ*NAME OF STORAGE DECTAPE DRIVE : *]
79 400022' 211 02 0 00 000006 MOVNI CT, 6 ; INITIALIZE COUNTER
80 400023' 200 01 0 00 400760' MOVE P, [POINT 6, DEV] ; INITIALIZE POINTER
81 400024' 051 04 0 00 000000 GETDEV: INCHWL A ; GET A CHARACTER
82 400025' 306 00 0 00 000072 CAIN A, ":" ; IS IT A : ?
83 400026' 254 00 0 00 400024' JRST GETDEV ; YES - WE HAVE DEVICE.
84 400027' 306 00 0 00 000012 CAIN A, 12 ; IS IT A LINEFEED?
85 400030' 254 00 0 00 400037' JRST GOTDEV ; YES - WE HAVE DEVICE
86 400031' 307 00 0 00 000040 CAIG A, 40 ; IS IT A CONTROL CHARACTER?
87 400032' 254 00 0 00 400024' JRST GETDEV ; YES - DISCARD IT.
88 400033' 347 02 0 00 400024' AOJG CT, GETDEV ; STEP UP COUNT AND SEE IF END.
89 400034' 275 00 0 00 000040 SUBI A, 40 ; MAKE CHARACTER SIXBIT
90 400035' 136 00 0 00 000001 IDPB A, P ; PUT IT IN DEV
91 400036' 254 00 0 00 400024' JRST GETDEV ; GO GET ANOTHER CHARACTER
92 400037' 200 16 0 00 000003 GOTDEV: MOVE STATUS, DEV ; PUT DEVICE NAME IN STATUS.
93 400040' 047 16 0 00 000004 DEVCHR STATUS, ; GET DEVICE CHARACTERISTICS
94 400041' 607 16 0 00 000100 TLNN STATUS, 100 ; IS IT A DECTAPE?
95 400042' 254 00 0 00 400543' JRST NODT ; NO, ERROR, ASK AGAIN.
96 400043' 202 03 0 00 000001' MOVEM DEV, TINM+1 ; YES - PUT IT IN OPEN BLOCK.
97 400044' 202 03 0 00 000004' MOVEM DEV, TOUTM+1 ; " " "
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 3
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
98 400045' 051 03 0 00 400761' STACOD: OUTSTR [ASCIZ*STANDARD CODE WITHOUT A PASSWORD? (Y OR CR) : *]
99 400046' 051 04 0 00 000000 INCHWL A ; GET A CHARACTER
100 400047' 306 00 0 00 000131 CAIN A, "Y" ; IS IT A Y?
101 400050' 254 00 0 00 400067' JRST GOTCOD ; YES - USE THE DEFAULT PASSWORD
102 400051' 260 17 0 00 400506' PUSHJ PD, TTEAT ; EAT UP CHARACTERS UP TO LINEFEED
103 400052' 474 16 0 00 000000 SETO STATUS, ; SET STATUS TO -1 FOR THIS TTY
104 400053' 051 06 0 00 000016 GETLCH STATUS ; GET TTY CHARACTERISTICS
105 400054' 661 16 0 00 000004 TLO STATUS, 4 ; SET TTY NO ECHO NEXT.
106 400055' 051 07 0 00 000016 SETLCH STATUS ; SET TTY NO ECHO.
107 400056' 211 02 0 00 000006 MOVNI CT, 6 ; INITIALIZE COUNTER
108 400057' 200 01 0 00 400773' MOVE P, [POINT 6, CODE] ; SET UP POINTER
109 400060' 051 03 0 00 400774' OUTSTR [ASCIZ*PASSWORD: *] ; ASK FOR PASSWORD
110 400061' 051 04 0 00 000000 GETCOD: INCHWL A ; GET A CHARACTER
111 400062' 306 00 0 00 000015 CAIN A, 15 ; IS IT A CARRIAGE RETURN?
112 400063' 254 00 0 00 400067' JRST GOTCOD ; YES - WE HAVE THE PASSWORD
113 400064' 275 00 0 00 000040 SUBI A, 40 ; MAKE CHARACTER SIXBIT
114 400065' 136 00 0 00 000001 IDPB A, P ; USE IT AS PART OF CODE
115 400066' 341 02 0 00 400061' AOJL CT, GETCOD ; STEP UP COUNT, DON'T USE AFTER 6
116 400067' 260 17 0 00 400506' GOTCOD: PUSHJ PD, TTEAT ; DISCARD REST OF LINE.
117 400070' 474 16 0 00 000000 SETO STATUS, ; SET STATUS TO -1 FOR THIS TTY
118 400071' 051 06 0 00 000016 GETLCH STATUS ; GET TTY CHARACTERISTICS
119 400072' 621 16 0 00 000004 TLZ STATUS, 4 ; SET TTY ECHO NEXT
120 400073' 051 07 0 00 000016 SETLCH STATUS ; SET TTY ECHO
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 4
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
121 400074' 051 03 0 00 400777' ASKFIL: OUTSTR [ASCIZ*FILE NAMES : *]
122 400075' 403 05 0 00 000006 SETZB NAME, EXT ; INITIALIZE NAME AND EXT.
123 400076' 200 01 0 00 401002' MOVE P, [POINT 6, NAME] ; SET UP POINTER
124 400077' 200 00 0 00 401003' MOVE A, [XWD DATA1, TLOOK] ; SET TO INIT REST OF LOW SEG.
125 400100' 251 00 0 00 000030' BLT A, FILL ; INITIALIZE REST OF LOW SEGMENT.
126 400101' 211 02 0 00 000006 MOVNI CT, 6 ; INITIALIZE COUNTER
127 400102' 051 04 0 00 000000 GETN: INCHWL A ; GET A CHARACTER
128 400103' 306 00 0 00 000012 CAIN A, 12 ; IS IT A LINEFEED?
129 400104' 254 00 0 00 400227' JRST GOTALL ; YES - END OF COMMAND STRING.
130 400105' 306 00 0 00 000072 CAIN A, ":" ; IS IT A :?
131 400106' 254 00 0 00 400154' JRST COL ; YES - GO DO DEVICE FIRST.
132 400107' 306 00 0 00 000054 CAIN A, "," ; IS IT A , ?
133 400110' 254 00 0 00 400230' JRST GOTALL+1 ; YES - END OF FILE SPEC BUT NOT COMMAND
134 400111' 306 00 0 00 000056 CAIN A, "." ; IS IT A . ?
135 400112' 254 00 0 00 400125' JRST GETEXT ; YES - GO SET UP TO GET EXT.
136 400113' 306 00 0 00 000074 CAIN A, "<" ; IS IT A < ?
137 400114' 254 00 0 00 400130' JRST LANG ; YES - GO GET PROTECTION.
138 400115' 306 00 0 00 000133 CAIN A, "[" ; IS IT A [ ?
139 400116' 254 00 0 00 400163' JRST LSQB ; YES - GO GET PPN.
140 400117' 307 00 0 00 000040 CAIG A, 40 ; IS IT A CONTROL CHARACTER?
141 400120' 254 00 0 00 400102' JRST GETN ; YES - DISCARD IT.
142 400121' 347 02 0 00 400102' AOJG CT, GETN ; STEP UP COUNT AND TEST.
143 400122' 275 00 0 00 000040 SUBI A, 40 ; MAKE CHARACTER SIXBIT
144 400123' 136 00 0 00 000001 IDPB A, P ; USE THE CHARACTER
145 400124' 254 00 0 00 400102' JRST GETN ; GO GET ANOTHER CHARACTER.
146 400125' 211 02 0 00 000003 GETEXT: MOVNI CT, 3 ; SET COUNTER FOR 3 CHAR EXT
147 400126' 200 01 0 00 401004' MOVE P, [POINT 6, EXT] ; INIT POINTER FOR EXT
148 400127' 254 00 0 00 400102' JRST GETN ; GO GET A CHARACTER
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 5
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
149 400130' 261 17 0 00 000001 LANG: PUSH PD, P ; SAVE POINTER
150 400131' 261 17 0 00 000002 PUSH PD, CT ; SAVE COUNTER
151 400132' 200 01 0 00 401005' MOVE P, [POINT 3, DENTR+2] ; SET UP POINTER FOR PROTECTION
152 400133' 211 02 0 00 000003 MOVNI CT, 3 ; INIT COUNTER.
153 400134' 051 04 0 00 000000 GETPRO: INCHWL A ; GET A CHARACTER
154 400135' 306 00 0 00 000015 CAIN A, 15 ; IS IT A CARRIAGE RETURN?
155 400136' 254 00 0 00 400151' JRST RANG ; YES - WE HAVE THE PROTECTION
156 400137' 306 00 0 00 000076 CAIN A, ">" ; IS IT A > ?
157 400140' 254 00 0 00 400151' JRST RANG ; YES - WE HAVE THE PROTECTION.
158 400141' 347 02 0 00 400134' AOJG CT, GETPRO ; STEP UP COUNT AND TEST
159 400142' 305 00 0 00 000060 CAIGE A, 60 ; IS IT > OR = ASCII 0 ?
160 400143' 254 00 0 00 400647' JRST PROERR ; NO - ERROR, RESTART AT ASKFIL
161 400144' 303 00 0 00 000067 CAILE A, 67 ; IS IT < OR = ASCII 7 ?
162 400145' 254 00 0 00 400647' JRST PROERR ; NO - ERROR, RESTART AT ASKFIL
163 400146' 275 00 0 00 000060 SUBI A, 60 ; MAKE IT AN OCTAL NUMBER.
164 400147' 136 00 0 00 000001 IDPB A, P ; USE IT FOR PROTECTION.
165 400150' 254 00 0 00 400134' JRST GETPRO ; GET ANOTHER CHARACTER.
166 400151' 262 17 0 00 000002 RANG: POP PD, CT ; RESTORE COUNTER
167 400152' 262 17 0 00 000001 POP PD, P ; RESTORE POINTER
168 400153' 254 00 0 00 400102' JRST GETN ; BACK TO MAIN SEQ.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 6
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
169 400154' 200 03 0 00 000005 COL: MOVE DEV, NAME ; MOVE NAME TO NAME OF DEVICE.
170 400155' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; USE IT FOR DISK OPEN BLOCK.
171 400156' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; " " " "
172 400157' 400 05 0 00 000000 SETZ NAME, ; REINITIALIZE NAME.
173 400160' 200 01 0 00 401002' MOVE P, [POINT 6, NAME] ; RESTORE POINTER
174 400161' 211 02 0 00 000006 MOVNI CT, 6 ; RESTORE COUNTER
175 400162' 254 00 0 00 400102' JRST GETN ; BACK TO MAIN SEQ.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 7
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
176 400163' 261 17 0 00 000001 LSQB: PUSH PD, P ; SAVE POINTER
177 400164' 261 17 0 00 000002 PUSH PD, CT ; SAVE COUNTER
178 400165' 403 10 0 00 000011 SETZB IND1, IND2 ; INIT 2 ACS
179 400166' 200 01 0 00 401006' MOVE P, [POINT 3, (IND)] ; INIT POINTER
180 400167' 201 07 0 00 000010 MOVEI IND, IND1 ; SET UP INDEX REGISTER
181 400170' 400 02 0 00 000000 GETPPN: SETZ CT, ; INITIALIZE COUNT.
182 400171' 051 04 0 00 000000 INCHWL A ; GET A CHARACTER
183 400172' 306 00 0 00 000015 CAIN A, 15 ; IS IT A CARRIAGE RETURN?
184 400173' 254 00 0 00 400220' JRST RSQB ; YES - WE HAVE BOTH HALVES.
185 400174' 306 00 0 00 000135 CAIN A, "]" ; IS IT A ] ?
186 400175' 254 00 0 00 400220' JRST RSQB ; YES - WE HAVE BOTH HALVES.
187 400176' 306 00 0 00 000054 CAIN A, "," ; IS IT A , ?
188 400177' 254 00 0 00 400214' JRST COMA ; SET TO GET NEXT HALF
189 400200' 271 02 0 00 000003 ADDI CT, 3 ; ADD 3 BITS TO THE COUNT
190 400201' 307 02 0 00 000022 CAIG CT, ^D18 ; IS CT GREATER THAN A HALF WORD?
191 400202' 254 00 0 00 400205' JRST .+3 ; NO - SKIP NEXT 2 STEPS.
192 400203' 201 02 0 00 000022 MOVEI CT, ^D18 ; YES - MAKE CT = 18
193 400204' 254 00 0 00 400171' JRST GETPPN+1 ; GO GET NEXT CHARACTER
194 400205' 305 00 0 00 000060 CAIGE A, 60 ; IS IT > OR = ASCII 0 ?
195 400206' 254 00 0 00 400660' JRST PPNERR ; NO - ERROR, RESTART AT ASKFIL
196 400207' 303 00 0 00 000067 CAILE A, 67 ; IS IT < OR = ASCII 7 ?
197 400210' 254 00 0 00 400660' JRST PPNERR ; NO - ERROR, RESTART AT ASKFIL
198 400211' 275 00 0 00 000060 SUBI A, 60 ; MAKE IT OCTAL.
199 400212' 136 00 0 00 000001 IDPB A, P ; USE IT FOR PROTECTION
200 400213' 254 00 0 00 400171' JRST GETPPN+1 ; GO GET ANOTHER BYTE.
201 400214' 241 10 0 02 000000 COMA: ROT IND1, (CT) ; RIGHT JUSTIFY LEFT HALF
202 400215' 201 07 0 00 000011 MOVEI IND, IND2 ; SET TO DO RIGHT HALF
203 400216' 200 01 0 00 401006' MOVE P, [POINT 3, (IND)] ; REINIT POINTER
204 400217' 254 00 0 00 400170' JRST GETPPN ; GO DO IT ALL AGAIN.
205 400220' 241 11 0 02 000000 RSQB: ROT IND2, (CT) ; RIGHT JUSTIFY RIGHT HALF
206 400221' 207 00 0 00 000011 MOVSS IND2 ; PUT RIGHT HALF IN LEFT HALF WORD
207 400222' 246 10 0 00 000022 LSHC IND1, ^D18 ; GET ALL OF PPN IN IND1.
208 400223' 202 10 0 00 000027' MOVEM IND1, DLOOK+3 ; USE IT IN LOOKUP BLOCK.
209 400224' 262 17 0 00 000002 POP PD, CT ; RESTORE COUNTER
210 400225' 262 17 0 00 000001 POP PD, P ; RESTORE POINTER
211 400226' 254 00 0 00 400102' JRST GETN ; BACK TO MAIN SEQ.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 8
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
212 400227' 476 00 0 00 000015' GOTALL: SETOM DONE ; SIGNAL END OF COMMAND STRING
213 400230' 202 05 0 00 000020' MOVEM NAME, TLOOK ; GIVE NAME TO LOOKUP & ENTER BLOCK
214 400231' 202 06 0 00 000021' MOVEM EXT, TLOOK+1 ; " EXT " " "
215 400232' 202 05 0 00 000024' MOVEM NAME, DLOOK ; " NAME " " "
216 400233' 202 06 0 00 000025' MOVEM EXT, DLOOK+1 ; " EXT " " "
217 400234' 332 00 0 00 000017' SKIPE DECO ; IS DECODING TO BE DONE?
218 400235' 254 00 0 00 400260' JRST OPEND ; YES - GO OPEN FOR DECODING.
219 400236' 050 00 0 00 000006' OPENC: OPEN INCH, DINM ; NO - OPEN DISK ON INCH
220 400237' 254 00 0 00 400545' JRST DOPE ; IF ERROR, REPORT & STOP
221 400240' 050 01 0 00 000003' OPEN OUTCH, TOUTM ; OPEN TAPE ON OUTCH
222 400241' 254 00 0 00 400552' JRST TOPE ; IF ERROR, REPORT & STOP
223 400242' 201 00 0 00 000037' MOVEI A, TBUFF ; SET TO SET POSITION OF TAPE BUFFER
224 400243' 250 00 0 00 000000* EXCH A, .JBFF## ; TELL MONITOR TO PUT BUFFER AT TBUFF
225 400244' 065 01 0 00 000001 OUTBUF OUTCH, 1 ; PUT 1 BUFFER AT TBUFF.
226 400245' 202 00 0 00 000452' MOVEM A, SVJBFF ; SAVE REAL JOBFF FOR LATER.
227 400246' 202 00 0 00 400243* MOVEM A, .JBFF## ; RESTORE JOBFF.
228 400247' 076 00 0 00 000024' LOOKUP INCH, DLOOK ; LOOKUP THE FILE ON DISK
229 400250' 254 00 0 00 400557' JRST DLOOKE ; IF ERROR, REPORT & RESTART AT ASKFIL
230 400251' 135 00 0 00 401007' LDB A, [POINT 12, DLOOK+2, 35] ; GET LOW CREATION DATE
231 400252' 137 00 0 00 401010' DPB A, [POINT 12, TENTR+2, 35] ; PUT " " "
232 400253' 135 00 0 00 401011' LDB A, [POINT 3, DLOOK+1, 20] ; GET HIGH CREATION DATE
233 400254' 137 00 0 00 401012' DPB A, [POINT 3, TENTR+1, 20] ; PUT " " "
234 400255' 077 01 0 00 000020' ENTER OUTCH, TENTR ; ENTER FILE ON TAPE
235 400256' 254 00 0 00 400571' JRST TENTRE ; IF ERROR, REPORT & RESTART AT ASKFIL
236 400257' 254 00 0 00 400301' JRST START ; GO START CODING.
237 400260' 050 00 0 00 000000' OPEND: OPEN INCH, TINM ; OPEN TAPE ON INCH
238 400261' 254 00 0 00 400552' JRST TOPE ; IF ERROR, REPORT & STOP
239 400262' 050 01 0 00 000011' OPEN OUTCH, DOUTM ; OPEN DISK ON OUTCH
240 400263' 254 00 0 00 400545' JRST DOPE ; IF ERROR, REPORT & STOP
241 400264' 201 00 0 00 000037' MOVEI A, TBUFF ; SET TO SET POSITION OF TAPE BUFFER
242 400265' 250 00 0 00 400246* EXCH A, .JBFF## ; TELL MONITOR TO PUT BUFFER AT TBUFF
243 400266' 064 00 0 00 000001 INBUF INCH, 1 ; PUT 1 BUFFER AT TBUFF.
244 400267' 202 00 0 00 000452' MOVEM A, SVJBFF ; SAVE REAL JOBFF FOR LATER.
245 400270' 202 00 0 00 400265* MOVEM A, .JBFF## ; RESTORE JOBFF
246 400271' 076 00 0 00 000020' LOOKUP INCH, TLOOK ; LOOKUP FILE ON TAPE
247 400272' 254 00 0 00 400603' JRST TLOOKE ; IF ERROR, REPORT & RESTART AT ASKFIL
248 400273' 135 00 0 00 401010' LDB A, [POINT 12, TLOOK+2, 35] ; GET LOW DATE
249 400274' 137 00 0 00 401007' DPB A, [POINT 12, DENTR+2, 35] ; PUT LOW DATE
250 400275' 135 00 0 00 401012' LDB A, [POINT 3, TLOOK+1, 20] ; GET HIGH DATE
251 400276' 137 00 0 00 401011' DPB A, [POINT 3, DENTR+1, 20] ; PUT HIGH DATE
252 400277' 077 01 0 00 000024' ENTER OUTCH, DENTR ; ENTER FILE ON DISK
253 400300' 254 00 0 00 400615' JRST DENTRE ; IF ERROR, REPORT & RESTART AT ASKFIL
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 9
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
254 400301' 332 00 0 00 000017' START: SKIPE DECO ; IS DECODING TO BE DONE?
255 400302' 254 00 0 00 400353' JRST DECODE ; YES - GO DECODE.
256 400303' 400 02 0 00 000000 DOCODE: SETZ CT, ; INITIALIZE WORD COUNT
257 400304' 260 17 0 00 400417' PUSHJ PD, GET ; GET A WORD
258 400305' 304 00 0 00 000000 CAIA ; NORMAL RETURN
259 400306' 254 00 0 00 400453' JRST CLOSE ; CLOSE IF EOF & START OF TEMP BLOCK
260 400307' 202 00 0 02 000253' MOVEM A, TEMP(CT) ; PUT WORD IN TEMP BLOCK
261 400310' 340 02 0 00 000000 AOJ CT, ; STEP UP COUNT
262 400311' 305 02 0 00 000177 CAIGE CT, 177 ; GREATER THAN OR = TAPE BLOCK SIZE?
263 400312' 254 00 0 00 400304' JRST DOCODE+1 ; NO - GET NEXT WORD
264 400313' 057 01 0 00 000000 OUT OUTCH, ; DUMMY OUT, THEN OUTPUT BLOCK
265 400314' 304 00 0 00 000000 CAIA ; NORMAL RETURN
266 400315' 260 17 0 00 400627' PUSHJ PD, WERR ; IF ERROR, TELL USER & CONTINUE
267 400316' 400 07 0 00 000000 SETZ IND, ; INITIALIZE WORD POSITION POINTER
268 400317' 514 13 0 00 000253' HRLZ KEY, TEMP+KWORD*176 ; GET THE KEY BITS IN LEFT HALF
269 400320' 274 13 0 00 000014' SUB KEY, CODE ; MAKE THEM DEPEND ON PASSWORD
270 400321' 241 13 0 00 000006 ROT KEY, 6 ; RIGHT JUSTIFY 1ST CHARACTER
271 400322' 630 13 0 00 401013' TDZ KEY, [-1,,777760] ; SAVE ONLY THE LAST 4 BITS
272 400323' 200 10 0 00 000013 MOVE IND1, KEY ; MAKE A COPY OF KEY
273 400324' 242 10 0 00 000003 LSH IND1, 3 ; IMUL BY 8 FOR WORD POSITION
274 400325' 200 00 0 07 000254' STCODE: MOVE A, TEMP+1-KWORD(IND) ; GET A WORD
275 400326' 430 00 0 00 000014' XOR A, CODE ; CODE IT WITH PASSWORD
276 400327' 241 00 0 13 000000 ROT A, (KEY) ; ROTATE IT
277 400330' 612 00 0 00 401014' TDNE A, [1,,1] ; IS IT TO BE SWAPED?
278 400331' 207 00 0 00 000000 MOVSS A ; YES - SWAP IT.
279 400332' 202 10 0 00 000011 MOVEM IND1, IND2 ; MAKE A COPY OF BLOCK ROTATION
280 400333' 231 11 0 00 000176 IDIVI IND2, 176 ; GET IND2 MOD 176
281 400334' 202 00 0 12 000043' MOVEM A, TBLK+1-KWORD(IND3) ; PUT WORD IN NEW SLOT
282 400335' 340 07 0 00 000000 AOJ IND, ; SET TO GET NEXT WORD
283 400336' 340 10 0 00 000000 AOJ IND1, ; SET TO PUT NEXT WORD
284 400337' 305 07 0 00 000176 CAIGE IND, 176 ; HAVE ALL WORDS BEEN DONE?
285 400340' 254 00 0 00 400325' JRST STCODE ; NO - GO DO NEXT WORD.
286 400341' 200 00 0 00 000253' MOVE A, TEMP+KWORD*176 ; GET THE KEY WORD
287 400342' 206 00 0 00 000042' MOVSM A, TBLK+KWORD*176 ; SWAP IT INTO OUTPUT BUFFER
288 400343' 350 00 0 00 000016' AOS CNTBLK ; STEP UP BLOCK COUNT
289 400344' 201 00 0 00 000177 MOVEI A, 177 ; GET MAX BLOCK SIZE
290 400345' 276 00 0 00 000030' SUBM A, FILL ; GET NO. OF DATA WORDS IN BLOCK
291 400346' 200 00 0 00 000032' MOVE A, TB+1 ; GET THE BUFFER BYTE POINTER
292 400347' 270 00 0 00 000030' ADD A, FILL ; ADD NO. OF DATA WORDS
293 400350' 202 00 0 00 000032' MOVEM A, TB+1 ; TELL MONITOR HOW MANY WORDS
294 400351' 402 00 0 00 000030' SETZM FILL ; RESTORE FILL FOR NEXT BUFFER
295 400352' 254 00 0 00 400303' JRST DOCODE ; GO GET NEXT BLOCK
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 10
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
296 400353' 056 00 0 00 000000 DECODE: IN INCH, ; INPUT A BLOCK FROM TAPE
297 400354' 254 00 0 00 400361' JRST INGOOD ; NORMAL RETURN
298 400355' 063 00 0 00 740000 STATZ INCH, 740000 ; SEE IF ERROR BITS ARE ON
299 400356' 304 00 0 00 000000 CAIA ; YES
300 400357' 254 00 0 00 400453' JRST CLOSE ; NO - END OF FILE
301 400360' 260 17 0 00 400637' PUSHJ PD, RERR ; TELL USER AND CONTINUE
302 400361' 400 07 0 00 000000 INGOOD: SETZ IND, ; INITIALIZE WORD POSITION POINTER
303 400362' 510 13 0 00 000042' HLLZ KEY, TBLK+KWORD*176 ; GET THE KEY BITS IN LEFT HALF
304 400363' 274 13 0 00 000014' SUB KEY, CODE ; MAKE THEM DEPEND ON PASSWORD
305 400364' 241 13 0 00 000006 ROT KEY, 6 ; RIGHT JUSTIFY 1ST CHARACTER
306 400365' 630 13 0 00 401013' TDZ KEY, [-1,,777760] ; USE ONLY LAST 4 BITS
307 400366' 200 10 0 00 000013 MOVE IND1, KEY ; SAVE THE BITS
308 400367' 213 00 0 00 000013 MOVNS KEY ; GET READY TO ROTATE BACK
309 400370' 242 10 0 00 000003 LSH IND1, 3 ; IMUL BY 8 FOR WORD POSITION
310 400371' 202 10 0 00 000011 STDECO: MOVEM IND1, IND2 ; MAKE A COPY OF BLOCK ROTATION
311 400372' 231 11 0 00 000176 IDIVI IND2, 176 ; GET IND2 MOD 176
312 400373' 200 00 0 12 000043' MOVE A, TBLK+1-KWORD(IND3) ; GET REAL NEXT WORD OF BLOCK
313 400374' 612 00 0 00 401014' TDNE A, [1,,1] ; HAS IT BEEN SWAPED?
314 400375' 207 00 0 00 000000 MOVSS A ; SWAP IT BACK
315 400376' 241 00 0 13 000000 ROT A, (KEY) ; ROTATE IT BACK
316 400377' 430 00 0 00 000014' XOR A, CODE ; DECODE IT WITH PASSWORD
317 400400' 202 00 0 07 000254' MOVEM A, TEMP+1-KWORD(IND) ; PUT IT IN THE CORRECT SLOT
318 400401' 340 10 0 00 000000 AOJ IND1, ; SET TO GET NEXT WORD
319 400402' 340 07 0 00 000000 AOJ IND, ; SET TO PUT NEXT WORD
320 400403' 305 07 0 00 000176 CAIGE IND, 176 ; HAVE ALL WORDS BEEN DONE?
321 400404' 254 00 0 00 400371' JRST STDECO ; NO - GO DO NEXT WORD
322 400405' 200 00 0 00 000042' MOVE A, TBLK+KWORD*176 ; YES - GET THE KEY WORD
323 400406' 206 00 0 00 000253' MOVSM A, TEMP+KWORD*176 ; SWAP IT INTO TEMP
324 400407' 350 00 0 00 000016' AOS CNTBLK ; STEP UP BLOCK COUNT
325 400410' 400 02 0 00 000000 SETZ CT, ; INITIALIZE WORD COUNT
326 400411' 200 00 0 02 000253' MOVE A, TEMP(CT) ; GET WORD FROM TEMP BLOCK
327 400412' 260 17 0 00 400443' PUSHJ PD, PUT ; PUT IT IN OUTPUT BUFFER
328 400413' 340 02 0 00 000000 AOJ CT, ; STEP UP COUNT
329 400414' 315 02 0 00 000033' CAMGE CT, TB+2 ; > OR = NO. OF DATA WORDS IN BUFFER?
330 400415' 254 00 0 00 400411' JRST .-4 ; NO - GO DO ANOTHER WORD
331 400416' 254 00 0 00 400353' JRST DECODE ; YES - GO GET ANOTHER BLOCK
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 11
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
332
333 400417' 375 00 0 00 000036' GET: SOSGE DB+2 ; WORDS LEFT IN BUFFER?
334 400420' 254 00 0 00 400423' JRST GETB ; NO - GET ANOTHER BUFFER
335 400421' 134 00 0 00 000035' ILDB A, DB+1 ; YES - GET A WORD FROM BUFFER
336 400422' 263 17 0 00 000000 POPJ PD, ; RETURN
337 400423' 332 00 0 00 000030' GETB: SKIPE FILL ; IS BLOCK BEING FILLED WITH NON DATA?
338 400424' 254 00 0 00 400434' JRST EOF ; YES - GO TO EOF ROUTINE
339 400425' 056 00 0 00 000000 IN INCH, ; NO - GET A BUFFER FULL
340 400426' 254 00 0 00 400417' JRST GET ; OK. - GO GET A WORD
341 400427' 063 00 0 00 740000 STATZ INCH, 740000 ; ARE ERROR BITS ON?
342 400430' 304 00 0 00 000000 CAIA ; YES
343 400431' 254 00 0 00 400434' JRST EOF ; NO - GO TO EOF ROUTINE
344 400432' 260 17 0 00 400637' PUSHJ PD, RERR ; TELL USER ABOUT ERROR
345 400433' 254 00 0 00 400417' JRST GET ; CONTINUE
346 400434' 332 00 0 00 000002 EOF: SKIPE CT ; WAS EOF AT FIRST WORD READ?
347 400435' 254 00 0 00 400440' JRST .+3 ; NO
348 400436' 350 00 0 17 000000 AOS (PD) ; SET FOR SKIP RETURN
349 400437' 263 17 0 00 000000 POPJ PD, ; SKIP RETURN
350 400440' 350 00 0 00 000030' AOS FILL ; ADD 1 TO COUNT OF FILLER WORDS
351 400441' 047 00 0 00 000023 MSTIME A, ; MAKE A FILLER WORD
352 400442' 263 17 0 00 000000 POPJ PD, ; RETURN WITH IT
353
354 400443' 375 00 0 00 000036' PUT: SOSGE DB+2 ; SPACE LEFT IN BUFFER?
355 400444' 254 00 0 00 400447' JRST PUTB ; NO - OUTPUT THE BUFFER
356 400445' 136 00 0 00 000035' IDPB A, DB+1 ; YES - PUT WORD IN BUFFER
357 400446' 263 17 0 00 000000 POPJ PD, ; RETURN
358 400447' 057 01 0 00 000000 PUTB: OUT OUTCH, ; OUTPUT THE BUFFER
359 400450' 254 00 0 00 400443' JRST PUT ; CONTINUE
360 400451' 260 17 0 00 400627' PUSHJ PD, WERR ; ERROR, TELL USER, CONTINUE
361 400452' 254 00 0 00 400443' JRST PUT ; CONTINUE
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 12
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
362
363 ; GO HERE TO CLOSE OUT FILE OR REPORT
364
365 400453' 071 00 0 00 000000 CLOSE: RELEAS INCH, ; WRITE DIRECTORY NOW SINCE
366 400454' 071 01 0 00 000000 RELEAS OUTCH, ; MAY BE ERROR LATER.
367 400455' 200 00 0 00 000452' MOVE A, SVJBFF ; GET REAL JOBFF
368 400456' 202 00 0 00 400270* MOVEM A, .JBFF## ; RECLAIM BUFFER SPACE.
369 400457' 336 00 0 00 000015' SKIPN DONE ; END OF LINE?
370 400460' 254 00 0 00 400075' JRST ASKFIL+1 ; NO - GO GET NEXT FILE
371 OUTSTR [ASCIZ*
372 400461' 051 03 0 00 401015' TOTAL OF *]
373 400462' 200 00 0 00 000016' MOVE 0, CNTBLK ; GET BLOCK COUNT
374 400463' 260 17 0 00 400476' PUSHJ PD, TYDEC ; TYPE IT IN DECIMAL
375 OUTSTR [ASCIZ* DECTAPE BLOCKS PROCESSED
376
377 400464' 051 03 0 00 401020' *]
378 400465' 051 03 0 00 401026' OUTSTR [ASCIZ*MORE TO DO? (Y OR CR) : *]
379 400466' 051 04 0 00 000000 INCHWL A ; GET A CHARACTER
380 400467' 302 00 0 00 000131 CAIE A, "Y" ; IS IT A Y ?
381 400470' 254 00 0 00 400474' JRST .+4 ; YES - GO EXIT PROGRAM
382 OUTSTR [ASCIZ*
383
384 400471' 051 03 0 00 401025' *] ; DOUBLE SPACE
385 400472' 260 17 0 00 400506' PUSHJ PD, TTEAT ; EAT UP REST OF LINE
386 400473' 254 00 0 00 400001' JRST REST ; RESTART AT REENTER ADDRESS
387
388 400474' 260 17 0 00 400506' PUSHJ PD, TTEAT ; EAT UP REST OF LINE
389 400475' 047 00 0 00 000012 EXIT ; EXIT PROGRAM.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 13
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
390
391 ; TYPE AC0 IN DECIMAL
392
393 400476' 231 00 0 00 000012 TYDEC: IDIVI 0, 12 ; DIVIDE BY 10
394 400477' 261 17 0 00 000001 PUSH PD, 1 ; SAVE THE REMAINDER
395 400500' 332 00 0 00 000000 SKIPE 0 ; SEE IF END
396 400501' 260 17 0 00 400476' PUSHJ PD, TYDEC ; GO DIVIDE AGAIN
397 400502' 262 17 0 00 000000 TYDEC1: POP PD, 0 ; GET THE REMAINDER
398 400503' 271 00 0 00 000060 ADDI 0, 60 ; MAKE IT ASCII
399 400504' 051 01 0 00 000000 OUTCHR 0 ; TYPE IT
400 400505' 263 17 0 00 000000 POPJ PD, ; DO IT AGAIN UNTIL DONE
401
402 ; DISCARD CHARACTERS UP TO LINEFEED.
403
404 400506' 306 00 0 00 000012 TTEAT: CAIN A, 12 ; IS THE CHAR IN (A) A LINEFEED?
405 400507' 263 17 0 00 000000 POPJ PD, ; YES - RETURN
406 400510' 051 04 0 00 000000 INCHWL A ; NO - GET A CHARACTER
407 400511' 254 00 0 00 400506' JRST TTEAT ; GO TEST IT AGAIN
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 14
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
408
409 ; DATA FOR LOW SEGMENT.
410
411 400512' 000000 000014 DATA: EXP 14, 0, <XWD 0, TB> ; TINM:
412 400513' 000000 000000
413 400514' 000000 000031'
414 400515' 000000 000014 EXP 14, 0, <XWD TB, 0> ; TOUTM:
415 400516' 000000 000000
416 400517' 000031' 000000
417 400520' 000000 000014 EXP 14, SIXBIT/DSK/, <XWD 0, DB> ;DINM:
418 400521' 446353 000000
419 400522' 000000 000034'
420 400523' 000000 000014 EXP 14, SIXBIT/DSK/, <XWD DB, 0> ;DOUTM:
421 400524' 446353 000000
422 400525' 000034' 000000
423 400526' 05 03 11 01 74 02 SIXBIT A%#)!\"A ; CODE:
424 400527' 000000 000000 0 ; DONE:
425 400530' 000000 000000 0 ; CNTBLK:
426 400531' 000000 000000 0 ; DECO:
427
428 400532' DATA1: BLOCK 4 ; TLOOK: AND TENTR:
429 400536' 000000 000000 EXP 0, 0, <177000,,0>, 0 ; DLOOK: AND DENTR:
430 400537' 000000 000000
431 400540' 177000 000000
432 400541' 000000 000000
433 400542' 000000 000000 0 ; FILL:
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 15
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
434
435 ; ERROR ROUTINES
436
437 NODT: OUTSTR [ASCIZ*
438 ? DEVICE IS NOT A DECTAPE.
439
440 400543' 051 03 0 00 401033' *]
441 400544' 254 00 0 00 400020' JRST ASKDTA+1 ; ASK FOR DRIVE AGAIN.
442
443
444
445 DOPE: OUTSTR [ASCIZ*
446 ? OPEN ERROR FOR MAIN DEVICE.
447 400545' 051 03 0 00 401042' *]
448 400546' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
449 400547' 047 00 0 00 000000 RESET
450 OUTSTR [ASCIZ* TYPE "REE" TO REENTER.
451 400550' 051 03 0 00 401051' *]
452 400551' 047 01 0 00 000012 EXIT 1, ; EXIT TO MONITOR.
453
454
455 TOPE: OUTSTR [ASCIZ*
456 ? OPEN ERROR FOR STORAGE DECTAPE.
457 400552' 051 03 0 00 401057' *]
458 400553' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
459 400554' 047 00 0 00 000000 RESET
460 OUTSTR [ASCIZ* TYPE "REE" TO REENTER.
461 400555' 051 03 0 00 401051' *]
462 400556' 047 01 0 00 000012 EXIT 1, ; EXIT TO MONITOR.
463
464
465 DLOOKE: OUTSTR [ASCIZ*
466 400557' 051 03 0 00 401067' ? LOOKUP ERROR ON MAIN DEVICE FILE *]
467 400560' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
468 400561' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
469 400562' 200 16 0 00 000025' MOVE STATUS, DLOOK+1 ; GET ERROR CODE.
470 400563' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
471 400564' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
472 400565' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
473 400566' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
474 400567' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
475 400570' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 16
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
476 TENTRE: OUTSTR [ASCIZ*
477 400571' 051 03 0 00 401101' ? ENTER ERROR ON STORAGE TAPE FILE *]
478 400572' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
479 400573' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
480 400574' 200 16 0 00 000021' MOVE STATUS, TENTR+1 ; GET ERROR CODE.
481 400575' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
482 400576' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
483 400577' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
484 400600' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
485 400601' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
486 400602' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
487
488
489 TLOOKE: OUTSTR [ASCIZ*
490 400603' 051 03 0 00 401111' ? LOOKUP ERROR ON STORAGE TAPE FILE *]
491 400604' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
492 400605' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
493 400606' 200 16 0 00 000021' MOVE STATUS, TLOOK+1 ; GET ERROR CODE.
494 400607' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
495 400610' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
496 400611' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
497 400612' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
498 400613' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
499 400614' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
500
501
502 DENTRE: OUTSTR [ASCIZ*
503 400615' 051 03 0 00 401121' ? ENTER ERROR ON MAIN DEVICE FILE *]
504 400616' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
505 400617' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
506 400620' 200 16 0 00 000025' MOVE STATUS, DENTR+1 ; GET ERROR CODE.
507 400621' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
508 400622' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
509 400623' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
510 400624' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
511 400625' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
512 400626' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
513
514
515 WERR: OUTSTR [ASCIZ*
516 400627' 051 03 0 00 401131' ? WRITE ERROR FOR *]
517 400630' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
518 400631' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
519 400632' 062 01 0 00 000016 GETSTS OUTCH, STATUS ; GET ERROR STATUS.
520 400633' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
521 400634' 620 16 0 00 740000 TRZ STATUS, 740000 ; CLEAR ERROR BITS.
522 400635' 060 01 0 16 000000 SETSTS OUTCH, (STATUS) ; TELL THE MONITOR.
523 400636' 263 17 0 00 000000 POPJ PD, ; RETURN TO MAIN SEQ.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 17
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
524 RERR: OUTSTR [ASCIZ*
525 400637' 051 03 0 00 401136' ? READ ERROR FOR *]
526 400640' 200 16 0 00 401077' MOVE STATUS, [POINT 6, TLOOK]
527 400641' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
528 400642' 062 00 0 00 000016 GETSTS INCH, STATUS ; GET ERROR STATUS
529 400643' 260 17 0 00 400716' PUSHJ PD, TYSTAT ; TYPE IT.
530 400644' 620 16 0 00 740000 TRZ STATUS, 740000 ; CLEAR ERROR BITS.
531 400645' 060 00 0 16 000000 SETSTS INCH, (STATUS) ; TELL THE MONITOR.
532 400646' 263 17 0 00 000000 POPJ PD, ; RETURN TO MAIN SEQ.
533
534
535 PROERR: OUTSTR [ASCIZ*
536 400647' 051 03 0 00 401142' ? INCORRECT PROTECTION CODE FOR *]
537 400650' 200 16 0 00 401002' MOVE STATUS, [POINT 6, NAME]
538 400651' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
539 OUTSTR [ASCIZ*
540
541 400652' 051 03 0 00 401025' *]
542 400653' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
543 400654' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
544 400655' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
545 400656' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
546 400657' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
547
548
549 PPNERR: OUTSTR [ASCIZ*
550 400660' 051 03 0 00 401151' ? INCORRECT PPN FOR *]
551 400661' 200 16 0 00 401002' MOVE STATUS, [POINT 6, NAME]
552 400662' 260 17 0 00 400671' PUSHJ PD, TNAME ; TYPE FILE NAME.
553 OUTSTR [ASCIZ*
554
555 400663' 051 03 0 00 401025' *]
556 400664' 200 03 0 00 401100' MOVE DEV, [SIXBIT/DSK/] ; GET DEFAULT MAIN DEVICE.
557 400665' 202 03 0 00 000007' MOVEM DEV, DINM+1 ; RESTORE MAIN DEVICE.
558 400666' 202 03 0 00 000012' MOVEM DEV, DOUTM+1 ; RESTORE MAIN DEVICE.
559 400667' 051 11 0 00 000000 CLRBFI ; CLEAR TTY INPUT BUFFER.
560 400670' 254 00 0 00 400074' JRST ASKFIL ; GO ASK FOR FILES AGAIN.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 18
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
561
562 ; TYPE FILE NAME AND EXT.
563
564 400671' 261 17 0 00 000000 TNAME: PUSH PD, A ; SAVE A
565 400672' 261 17 0 00 000002 PUSH PD, CT ; SAVE CT
566 400673' 400 02 0 00 000000 SETZ CT, ; INITIALIZE COUNTER.
567 400674' 134 00 0 00 000016 TN: ILDB A, STATUS ; THE POINTER IS IN STATUS
568 400675' 322 00 0 00 400700' JUMPE A, .+3 ; DON'T TYPE IF SPACE
569 400676' 271 00 0 00 000040 ADDI A, 40 ; MAKE IT ASCII
570 400677' 051 01 0 00 000000 OUTCHR A ; TYPE IT OUT
571 400700' 340 02 0 00 000000 AOJ CT, ; ADD 1 TO COUNT
572 400701' 305 02 0 00 000006 CAIGE CT, ^D6 ; IS CT > OR = 6
573 400702' 254 00 0 00 400674' JRST TN ; NO - GET ANOTHER CHARACTER
574 400703' 051 01 0 00 401156' OUTCHR ["."] ; YES - TYPE A DOT
575 400704' 134 00 0 00 000016 TE: ILDB A, STATUS ; GET A BYTE
576 400705' 322 00 0 00 400710' JUMPE A, .+3 ; DON'T TYPE IF SPACE
577 400706' 271 00 0 00 000040 ADDI A, 40 ; MAKE IT ASCII
578 400707' 051 01 0 00 000000 OUTCHR A ; TYPE IT OUT
579 400710' 340 02 0 00 000000 AOJ CT, ; ADD 1 TO COUNT
580 400711' 305 02 0 00 000011 CAIGE CT, ^D9 ; IS CT > OR = 9
581 400712' 254 00 0 00 400704' JRST TE ; NO - GET ANOTHER BYTE
582 400713' 262 17 0 00 000002 POP PD, CT ; YES - RESTORE CT
583 400714' 262 17 0 00 000000 POP PD, A ; RESTORE A
584 400715' 263 17 0 00 000000 POPJ PD, ; RETURN TO ERROR ROUTINE
585
586 ; TYPE ERROR STATUS IN OCTAL.
587
588 400716' 261 17 0 00 000000 TYSTAT: PUSH PD, A ; SAVE A
589 400717' 261 17 0 00 000001 PUSH PD, P ; SAVE P
590 400720' 261 17 0 00 000002 PUSH PD, CT ; SAVE CT
591 400721' 051 03 0 00 401157' OUTSTR [ASCIZ* (*]
592 400722' 211 02 0 00 000006 MOVNI CT, 6 ; SET UP COUNTER
593 400723' 200 01 0 00 401160' MOVE P, [POINT 3,STATUS,17] ; SET UP POINTER
594 400724' 134 00 0 00 000001 ILDB A, P ; GET A BYTE
595 400725' 271 00 0 00 000060 ADDI A, 60 ; MAKE IT ASCII
596 400726' 051 01 0 00 000000 OUTCHR A ; TYPE IT OUT
597 400727' 341 02 0 00 400724' AOJL CT, .-3 ; STEP UP CT & JUMP IF NOT END
598 OUTSTR [ASCIZ*)
599 400730' 051 03 0 00 401161' *]
600 400731' 262 17 0 00 000002 POP PD, CT ; RESTORE CT
601 400732' 262 17 0 00 000001 POP PD, P ; RESTORE P
602 400733' 262 17 0 00 000000 POP PD, A ; RESTORE A
603 400734' 263 17 0 00 000000 POPJ PD, ; RETURN TO ERROR ROUTINE
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 19
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
604
605 ; LOW SEGMENT SYMBOLS
606
607 000000' IFN PURE, <RELOC 0>
608
609 000000' TINM: BLOCK 3 ; TAPE INPUT OPEN BLOCK
610 000003' TOUTM: BLOCK 3 ; TAPE OUTPUT OPEN BLOCK
611 000006' DINM: BLOCK 3 ; DISK INPUT OPEN BLOCK
612 000011' DOUTM: BLOCK 3 ; DISK OUTPUT OPEN BLOCK
613 000014' CODE: BLOCK 1 ; PASSWORD
614 000015' DONE: BLOCK 1 ; END OF LINE SWITCH
615 000016' CNTBLK: BLOCK 1 ; DECTAPE BLOCK COUNT
616 000017' DECO: BLOCK 1 ; DECODE SWITCH
617
618 000020' TLOOK: ; TAPE LOOKUP BLOCK
619 000020' TENTR: BLOCK 4 ; TAPE ENTER BLOCK
620 000024' DLOOK: ; DISK LOOKUP BLOCK
621 000024' DENTR: BLOCK 4 ; DISK ENTER BLOCK
622 000030' FILL: BLOCK 1 ; COUNT OF NON DATA WORDS
623
624
625 000031' TB: BLOCK 3 ; TAPE BUFFER HEADER
626 000034' DB: BLOCK 3 ; DISK BUFFER HEADER
627 000037' TBUFF: BLOCK 3 ; FIRST 3 WORDS OF TAPE BUFFER
628 000042' TBLK: BLOCK 177 ; REST OF BUFFER.
629 000241' STACK: BLOCK 12 ; PUSH DOWN STACK
630 000253' TEMP: BLOCK 177 ; TEMP BLOCK FOR WORK.
631 000452' SVJBFF: BLOCK 1 ; SAVE JOBFF HERE.
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 20
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
632
633 ; BACK TO HIGH SEGMENT FOR LITERALS.
634
635 400735' IFN PURE, <RELOC>
636
637 400735' LIT
638 400735' 104 106 103 117 104
639 400736' 105 040 126 040 061
640 400737' 101 050 063 051 055
641 400740' 065 015 012 000 000
642 400741' 400512' 000000'
643 400742' 777766 000240'
644 400743' 103 117 104 105 040
645 400744' 117 122 040 104 105
646 400745' 103 117 104 105 077
647 400746' 040 050 103 040 117
648 400747' 122 040 104 051 040
649 400750' 072 040 000 000 000
650 400751' 116 101 115 105 040
651 400752' 117 106 040 123 124
652 400753' 117 122 101 107 105
653 400754' 040 104 105 103 124
654 400755' 101 120 105 040 104
655 400756' 122 111 126 105 040
656 400757' 072 040 000 000 000
657 400760' 44 06 0 00 000003
658 400761' 123 124 101 116 104
659 400762' 101 122 104 040 103
660 400763' 117 104 105 040 127
661 400764' 111 124 110 117 125
662 400765' 124 040 101 040 120
663 400766' 101 123 123 127 117
664 400767' 122 104 077 040 050
665 400770' 131 040 117 122 040
666 400771' 103 122 051 040 072
667 400772' 040 000 000 000 000
668 400773' 44 06 0 00 000014'
669 400774' 120 101 123 123 127
670 400775' 117 122 104 072 040
671 400776' 000 000 000 000 000
672 400777' 106 111 114 105 040
673 401000' 116 101 115 105 123
674 401001' 040 072 040 000 000
675 401002' 44 06 0 00 000005
676 401003' 400532' 000020'
677 401004' 44 06 0 00 000006
678 401005' 44 03 0 00 000026'
679 401006' 44 03 0 07 000000
680 401007' 00 14 0 00 000026'
681 401010' 00 14 0 00 000022'
682 401011' 17 03 0 00 000025'
683 401012' 17 03 0 00 000021'
684 401013' 777777 777760
685 401014' 000001 000001
686 401015' 015 012 124 117 124
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 20-1
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
687 401016' 101 114 040 117 106
688 401017' 040 000 000 000 000
689 401020' 040 104 105 103 124
690 401021' 101 120 105 040 102
691 401022' 114 117 103 113 123
692 401023' 040 120 122 117 103
693 401024' 105 123 123 105 104
694 401025' 015 012 015 012 000
695 401026' 115 117 122 105 040
696 401027' 124 117 040 104 117
697 401030' 077 040 050 131 040
698 401031' 117 122 040 103 122
699 401032' 051 040 072 040 000
700 401033' 015 012 077 040 104
701 401034' 105 126 111 103 105
702 401035' 040 111 123 040 116
703 401036' 117 124 040 101 040
704 401037' 104 105 103 124 101
705 401040' 120 105 056 015 012
706 401041' 015 012 000 000 000
707 401042' 015 012 077 040 117
708 401043' 120 105 116 040 105
709 401044' 122 122 117 122 040
710 401045' 106 117 122 040 115
711 401046' 101 111 116 040 104
712 401047' 105 126 111 103 105
713 401050' 056 015 012 000 000
714 401051' 040 124 131 120 105
715 401052' 040 042 122 105 105
716 401053' 042 040 124 117 040
717 401054' 122 105 105 116 124
718 401055' 105 122 056 015 012
719 401056' 000 000 000 000 000
720 401057' 015 012 077 040 117
721 401060' 120 105 116 040 105
722 401061' 122 122 117 122 040
723 401062' 106 117 122 040 123
724 401063' 124 117 122 101 107
725 401064' 105 040 104 105 103
726 401065' 124 101 120 105 056
727 401066' 015 012 000 000 000
728 401067' 015 012 077 040 114
729 401070' 117 117 113 125 120
730 401071' 040 105 122 122 117
731 401072' 122 040 117 116 040
732 401073' 115 101 111 116 040
733 401074' 104 105 126 111 103
734 401075' 105 040 106 111 114
735 401076' 105 040 000 000 000
736 401077' 44 06 0 00 000020'
737 401100' 44 63 53 00 00 00
738 401101' 015 012 077 040 105
739 401102' 116 124 105 122 040
740 401103' 105 122 122 117 122
741 401104' 040 117 116 040 123
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE 20-2
DFCODE MAC 3-JUN-74 FROHREICH R. J. 03-JUN-74
742 401105' 124 117 122 101 107
743 401106' 105 040 124 101 120
744 401107' 105 040 106 111 114
745 401110' 105 040 000 000 000
746 401111' 015 012 077 040 114
747 401112' 117 117 113 125 120
748 401113' 040 105 122 122 117
749 401114' 122 040 117 116 040
750 401115' 123 124 117 122 101
751 401116' 107 105 040 124 101
752 401117' 120 105 040 106 111
753 401120' 114 105 040 000 000
754 401121' 015 012 077 040 105
755 401122' 116 124 105 122 040
756 401123' 105 122 122 117 122
757 401124' 040 117 116 040 115
758 401125' 101 111 116 040 104
759 401126' 105 126 111 103 105
760 401127' 040 106 111 114 105
761 401130' 040 000 000 000 000
762 401131' 015 012 077 040 127
763 401132' 122 111 124 105 040
764 401133' 105 122 122 117 122
765 401134' 040 106 117 122 040
766 401135' 000 000 000 000 000
767 401136' 015 012 077 040 122
768 401137' 105 101 104 040 105
769 401140' 122 122 117 122 040
770 401141' 106 117 122 040 000
771 401142' 015 012 077 040 111
772 401143' 116 103 117 122 122
773 401144' 105 103 124 040 120
774 401145' 122 117 124 105 103
775 401146' 124 111 117 116 040
776 401147' 103 117 104 105 040
777 401150' 106 117 122 040 000
778 401151' 015 012 077 040 111
779 401152' 116 103 117 122 122
780 401153' 105 103 124 040 120
781 401154' 120 116 040 106 117
782 401155' 122 040 000 000 000
783 401156' 000000 000056
784 401157' 040 050 000 000 000
785 401160' 22 03 0 00 000016
786 401161' 051 015 012 000 000
787
788 400000' END ST
NO ERRORS DETECTED
HI-SEG. BREAK IS 401173
PROGRAM BREAK IS 000453
CPU TIME USED 00:11.400
3K CORE USED
DFCODE - FILE CODING AND DECODING PROGRAM FOR DECTAPE FILE SECURITY. MACRO %50(242) 11:01 12-JUN-74 PAGE S-1
DFCODE MAC 3-JUN-74 SYMBOL TABLE
A 000000 LSQB 400163'
ASKDTA 400017' MSTIME 047000 000023
ASKFIL 400074' NAME 000005
CD 400005' NODT 400543'
CLOSE 400453' OPENC 400236'
CLRBFI 051440 000000 OPEND 400260'
CNTBLK 000016' OUTCH 000001 SPD
CODE 000014' OUTCHR 051040 000000
COL 400154' OUTSTR 051140 000000
COMA 400214' P 000001
CT 000002 PD 000017
DATA 400512' PPNERR 400660'
DATA1 400532' PROERR 400647'
DB 000034' PURE 000001 SPD
DECO 000017' PUT 400443'
DECODE 400353' PUTB 400447'
DENTR 000024' RANG 400151'
DENTRE 400615' RERR 400637'
DEV 000003 RESET 047000 000000
DEVCHR 047000 000004 REST 400001'
DINM 000006' RSQB 400220'
DLOOK 000024' SETLCH 051340 000000
DLOOKE 400557' ST 400000'
DOCODE 400303' STACK 000241'
DONE 000015' STACOD 400045'
DOPE 400545' START 400301'
DOUTM 000011' STATUS 000016
EOF 400434' STCODE 400325'
EXIT 047000 000012 STDECO 400371'
EXT 000006 SVJBFF 000452'
FILL 000030' TB 000031'
GET 400417' TBLK 000042'
GETB 400423' TBUFF 000037'
GETCOD 400061' TE 400704'
GETDEV 400024' TEMP 000253'
GETEXT 400125' TENTR 000020'
GETLCH 051300 000000 TENTRE 400571'
GETN 400102' TINM 000000'
GETPPN 400170' TLOOK 000020'
GETPRO 400134' TLOOKE 400603'
GOTALL 400227' TN 400674'
GOTCOD 400067' TNAME 400671'
GOTDEV 400037' TOPE 400552'
INCH 000000 SPD TOUTM 000003'
INCHWL 051200 000000 TTEAT 400506'
IND 000007 TYDEC 400476'
IND1 000010 TYDEC1 400502'
IND2 000011 TYSTAT 400716'
IND3 000012 WERR 400627'
INGOOD 400361' .JBFF 400456' EXT
JOBREN 000124 SPD
JOBVER 000137 SPD
KEY 000013
KWORD 000000 SPD
LANG 400130'
A 24# 61 62 67 68 72 81 82 84 86 89 90 99 100
110 111 113 114 124 125 127 128 130 132 134 136 138 140
143 144 153 154 156 159 161 163 164 182 183 185 187 194
196 198 199 223 224 226 227 230 231 232 233 241 242 244
245 248 249 250 251 260 274 275 276 277 278 281 286 287
289 290 291 292 293 312 313 314 315 316 317 322 323 326
335 351 356 367 368 379 380 404 406 564 567 568 569 570
575 576 577 578 583 588 594 595 596 602
ASKDTA 71 73 76# 441
ASKFIL 121# 370 475 486 499 512 546 560
CD 66# 75
CLOSE 259 300 365#
CNTBLK 288 324 373 615#
CODE 108 269 275 304 316 613#
COL 131 169#
COMA 188 201#
CT 26# 79 88 107 115 126 142 146 150 152 158 166 174 177
181 189 190 192 201 205 209 256 260 261 262 325 326 328
329 346 565 566 571 572 579 580 582 590 592 597 600
DATA 61 411#
DATA1 124 428#
DB 333 335 354 356 417 420 626#
DECO 62 70 217 254 616#
DECODE 255 296# 331
DENTR 151 249 251 252 506 621#
DENTRE 253 502#
DEV 27# 77 80 92 96 97 169 170 171 471 472 473 482 483
484 495 496 497 508 509 510 542 543 544 556 557 558
DINM 170 219 472 483 496 509 543 557 611#
DLOOK 208 215 216 228 230 232 469 620#
DLOOKE 229 465#
DOCODE 256# 263 295
DONE 212 369 614#
DOPE 220 240 445#
DOUTM 171 239 473 484 497 510 544 558 612#
EOF 338 343 346#
EXT 29# 122 147 214 216
FILL 125 290 292 294 337 350 622#
GET 257 333# 340 345
GETB 334 337#
GETCOD 110# 115
GETDEV 81# 83 87 88 91
GETEXT 135 146#
GETN 127# 141 142 145 148 168 175 211
GETPPN 181# 193 200 204
GETPRO 153# 158 165
GOTALL 129 133 212#
GOTCOD 101 112 116#
GOTDEV 85 92#
INCH 41# 219 228 237 243 246 296 298 339 341 365 528 531
IND 30# 179 180 202 203 267 274 282 284 302 317 319 320
IND1 31# 178 180 201 207 208 272 273 279 283 307 309 310 318
IND2 32# 178 202 205 206 279 280 310 311
IND3 33# 281 312
INGOOD 297 302#
JOBREN 7#
JOBVER 4#
KEY 34# 268 269 270 271 272 276 303 304 305 306 307 308 315
KWORD 17 19 268 274 281 286 287 303 312 317 322 323
LANG 137 149#
LSQB 139 176#
NAME 28# 122 123 169 172 173 213 215 537 551
NODT 95 437#
OPENC 219#
OPEND 218 237#
OUTCH 43# 221 225 234 239 252 264 358 366 519 522
P 25# 80 90 108 114 123 144 147 149 151 164 167 173 176
179 199 203 210 589 593 594 601
PD 36# 65 74 76 102 116 149 150 166 167 176 177 209 210
257 266 301 327 336 344 348 349 352 357 360 374 385 388
394 396 397 400 405 468 470 479 481 492 494 505 507 518
520 523 527 529 532 538 552 564 565 582 583 584 588 589
590 600 601 602 603
PPNERR 195 197 549#
PROERR 160 162 535#
PURE 12 14 54 607 635
PUT 327 354# 359 361
PUTB 355 358#
RANG 155 157 166#
RERR 301 344 524#
REST 8 60# 386
RSQB 184 186 205#
ST 57# 788
STACK 65 629#
STACOD 98#
START 236 254#
STATUS 35# 92 93 94 103 104 105 106 117 118 119 120 467 469
478 480 491 493 504 506 517 519 521 522 526 528 530 531
537 551 567 575 593
STCODE 274# 285
STDECO 310# 321
SVJBFF 226 244 367 631#
TB 291 293 329 411 414 625#
TBLK 281 287 303 312 322 628#
TBUFF 223 241 627#
TE 575# 581
TEMP 260 268 274 286 317 323 326 630#
TENTR 231 233 234 480 619#
TENTRE 235 476#
TINM 61 96 237 609#
TLOOK 124 213 214 246 248 250 467 478 491 493 504 517 526 618#
TLOOKE 247 489#
TN 567# 573
TNAME 468 479 492 505 518 527 538 552 564#
TOPE 222 238 455#
TOUTM 97 221 610#
TTEAT 74 76 102 116 385 388 404# 407
TYDEC 374 393# 396
TYDEC1 397#
TYSTAT 470 481 494 507 520 529 588#
WERR 266 360 515#
.JBFF 224# 224 227# 227 242# 242 245# 245 368# 368
CLRBFI 448 458 474 485 498 511 545 559
DEVCHR 93
EXIT 389 452 462
GETLCH 104 118
INCHWL 67 81 99 110 127 153 182 379 406
MSTIME 351
OUTCHR 399 570 574 578 596
OUTSTR 57 66 78 98 109 121 371 375 378 382 437 445 450 455
460 465 476 489 502 515 524 535 539 549 553 591 598
RESET 60 449 459
SETLCH 106 120
ADD 292
ADDI 189 398 569 577 595
AOJ 261 282 283 318 319 328 571 579
AOJG 88 142 158
AOJL 115 597
AOS 288 324 348 350
ASCIZ 57 66 78 98 109 121 371 375 378 382 437 445 450 455
460 465 476 489 502 515 524 535 539 549 553 591 598
BLOCK 428 609 610 611 612 613 614 615 616 619 621 622 625 626
627 628 629 630 631
BLT 62 125
BYTE 5
CAIA 258 265 299 342
CAIE 68 380
CAIG 86 140 190
CAIGE 159 194 262 284 320 572 580
CAILE 161 196
CAIN 72 82 84 100 111 128 130 132 134 136 138 154 156 183
185 187 404
CAMGE 329
DPB 231 233 249 251
END 788
ENTER 234 252
EXCH 224 242
EXP 411 414 417 420 429
GETSTS 519 528
HLLZ 303
HRLZ 268
IDIVI 280 311 393
IDPB 90 114 144 164 199 356
IFN 14 19 54 607 635
IFNDEF 12 17
ILDB 335 567 575 594
IN 296 339
INBUF 243
IOWD 65
JRST 69 71 73 75 83 85 87 91 95 101 112 129 131 133
135 137 139 141 145 148 155 157 160 162 165 168 175 184
186 188 191 193 195 197 200 204 211 218 220 222 229 235
236 238 240 247 253 255 259 263 285 295 297 300 321 330
331 334 338 340 343 345 347 355 359 361 370 381 386 407
441 475 486 499 512 546 560 573 581
JUMPE 568 576
LDB 230 232 248 250
LIT 637
LOC 4 7
LOOKUP 228 246
LSH 273 309
LSHC 207
MOVE 61 65 80 92 108 123 124 147 151 169 173 179 203 272
274 286 291 307 312 322 326 367 373 467 469 471 478 480
482 491 493 495 504 506 508 517 526 537 542 551 556 593
MOVEI 180 192 202 223 241 289
MOVEM 96 97 170 171 208 213 214 215 216 226 227 244 245 260
279 281 293 310 317 368 472 473 483 484 496 497 509 510
543 544 557 558
MOVNI 79 107 126 146 152 174 592
MOVNS 308
MOVSM 287 323
MOVSS 206 278 314
OPEN 219 221 237 239
OUT 264 358
OUTBUF 225
POINT 80 108 123 147 151 173 179 203 230 231 232 233 248 249
250 251 467 478 491 504 517 526 537 551 593
POP 166 167 209 210 397 582 583 600 601 602
POPJ 336 349 352 357 400 405 523 532 584 603
PUSH 149 150 176 177 394 564 565 588 589 590
PUSHJ 74 76 102 116 257 266 301 327 344 360 374 385 388 396
468 470 479 481 492 494 505 507 518 520 527 529 538 552
RELEAS 365 366
RELOC 10 54 607 635
ROT 201 205 270 276 305 315
SETO 103 117
SETOM 70 212
SETSTS 522 531
SETZ 77 172 181 256 267 302 325 566
SETZB 122 178
SETZM 294
SIXBIT 417 420 423 471 482 495 508 542 556
SKIPE 217 254 337 346 395
SKIPN 369
SOSGE 333 354
STATZ 298 341
SUB 269 304
SUBI 89 113 143 163 198
SUBM 290
SUBTTL 2
TDNE 277 313
TDZ 271 306
TITLE 1
TLNN 94
TLO 105
TLZ 119
TRZ 521 530
TWOSEG 14
XOR 275 316
XWD 61 124 411 414 417 420