   1            ///
   2            /
   3            / PDP-8/X PANEL CODE
   4            / ======= ===== ====
   5            /
   6            / THIS CODE SERVES AS THE FRONT PANEL FOR
   7            / THE PDP-8/X SYSTEM. ON RESET THE PROCESSOR COPIES THE
   8            / PANEL PROGRAM FROM ROM INTO THE PANEL FIELD OF
   9            / MEMORY, AND JMP'S TO THE PANEL PROGRAM AT 0. ON HALTS THE
  10            / PROCESSOR JMS'S TO THE PANEL PROGRAM AT 0 (WRITING
  11            / OVER THE JMP TO THE INITIALIZATION CODE).
  12            /
  13            / 01	DGC	03-DEC-1999
  14            / 02	DGC	08-APR-2000
  15            / 03	DGC	11-MAY-2000
  16            / 04	DGC	04-JUN-2000
  17            / 05	DGC	20-JUL-2000
  18            /
  19            ///
  20            
  21            LF=0212
  22            CR=0215
  23            SP=0240
  24            
  25            PWS=6000
  26            PSI=6003
  27            PAI=6004
  28            PAS=6005
  29            PDX=6006
  30            PEX=6007
  31            
  32            HRR=6704
  33            HWR=6705
  34            HRS=6766
  35            HWC=6767
  36            
  37            SRST=4
  38            NIEN=2
  39            
  40            BSY=200
  41            DRDY=100
  42            DRQ=10
  43            ERR=1
  44            LDEV=100
  45            RDSEC=40
  46            
  47            	*0000
  48            
  49 00000 5402 PC,	JMP I 	XRES
  50 00001 5403 	JMP I 	XENT
  51            
  52 00002 0200 XRES,	RES
  53 00003 0222 XENT,	ENT
  54            
  55            	*0010
  56            
  57 00010 0000 X0,	0
  58 00011 0000 X1,	0
  59 00012 0000 X2,	0
  60 00013 0000 X3,	0
  61 00014 0000 X4,	0
  62 00015 0000 X5,	0
  63 00016 0000 X6,	0
  64 00017 0000 X7,	0
  65            
  66            	*0020
  67            
  68 00020 0000 T0,	0
  69 00021 0000 T1,	0
  70 00022 0000 T2,	0
  71 00023 0000 T3,	0
  72 00024 0000 T4,	0
  73 00025 0000 T5,	0
  74 00026 0000 T6,	0
  75 00027 0000 T7,	0
  76            
  77 00030 0000 AC,	0
  78 00031 0000 L,	0
  79 00032 0000 DF,	0
  80 00033 0000 CH,	0
  81 00034 0000 VAL,	0
  82 00035 0000 	0
  83 00036 0000 ADR,	0
  84 00037 0000 	0
  85            
  86            	PAGE
  87            	
  88            / RESET ENTRY POINT
  89            / SAVE THE STATE OF THE WHOLE MACHINE, ARRANGE THAT KBD FLAG = 0 AND
  90            / TTY FLAG = 1, AND JUMP INTO THE COMMAND PROCESSOR
  91            
  92 00200 7200 RES,	CLA
  93 00201 3000 	DCA	PC
  94 00202 3030 	DCA	AC
  95 00203 3031 	DCA	L
  96 00204 3032 	DCA	DF
  97            
  98 00205 6202 	CIF 	00		/ 000 -> IB, 1 -> II
  99 00206 6004 	PAI			/ 000 -> IF, 0 -> II
 100 00207 6002 	IOF
 101            
 102 00210 6032 	KCC			/ CLEAR THE INPUT FLAG
 103 00211 7200 	CLA			/ SET THE OUTPUT FLAG BY SENDING
 104 00212 6046 	TLS			/ OUT A NUL CHARACTER
 105            
 106 00213 1377 	TAD	(NIEN)		/ SET NIEN=1 IN ANY ATTACHED DISK
 107 00214 6767 	HWC			/ DISABLING IT'S INTERRUPT
 108            
 109 00215 7200 	CLA
 110 00216 1376 	TAD	(MSG1-1)
 111 00217 4775 	JMS I	(PMSG)
 112 00220 4774 	JMS I	(PCR)
 113            
 114 00221 5237 	JMP	CMD
 115            
 116            / HALT ENTRY POINT
 117            / SAVE THE STATE OF THE WHOLE MACHINE, ARRANGE THAT KBD FLAG = 0 AND
 118            / TTY FLAG = 1, AND JUMP INTO THE COMMAND PROCESSOR
 119            / ARRANGING THAT THE TTY FLAG = 1 IS VERY IMPORTANT, BECAUSE SOMETIMES TTY FLAG = 0
 120            / AND NOTHING IS HAPPENING WHICH WILL EVER MAKE TTY FLAG = 1 (THE MAIN LOOP
 121            / OF FOCAL IS LIKE THIS; WHEN IT HAS NO OUTPUT IT SETS TTY FLAG = 0 WITH A TCF, AND
 122            / NOTES THE FACT THAT TTY OUTPUT CAN BE STARTED IN A MEMORY FLAG), WHICH
 123            / WILL HANG THE PANEL AS SOON AS IT TRIES TO TYPE ANYTHING
 124            / THIS CODE SIMPLY FORCES KBD FLAG = 0 (WITH A KCC) AND TTY FLAG = 1 (WITH A
 125            / TLS OF A NUL), WHICH CAN SMASH OUTPUT IN PROGRESS
 126            / IT WOULD BE BETTER TO WAIT FOR A CHARACTER TIME FOR TTY FLAG = 1, AND DO THE
 127            / TLS OF THE NUL ONLY IF THE FLAG DOESN'T SET, ASSUMING THAT IT'S NEVER
 128            / GOING TO SET IN THIS SITUATION
 129            
 130 00222 3030 ENT,	DCA	AC
 131 00223 7010 	RAR
 132 00224 3031 	DCA	L
 133 00225 6214 	RDF
 134 00226 3032 	DCA	DF
 135            
 136 00227 6032 	KCC			/ CLEAR THE INPUT FLAG
 137 00230 7200 	CLA			/ SET THE OUTPUT FLAG BY SENDING
 138 00231 6046 	TLS			/ OUT A NUL CHARACTER
 139            
 140 00232 1373 	TAD	(MSG2-1)
 141 00233 4775 	JMS I	(PMSG)
 142 00234 1000 	TAD	PC
 143 00235 4772 	JMS I	(POCT)
 144 00236 4774 	JMS I	(PCR)
 145            
 146            / PRINT THE PROMPT, GET A CHARACTER, AND SEE IF IT'S A GOOD COMMAND
 147            / IF SO, CALL THE COMMAND PROCESSING ROUTINE
 148            / COMMAND PROCESSING ROUTINES RETURN JMS+1 ON ERRORS, AND JMS+2 IF EVERYTHING
 149            / SEEMS TO OK (IT'S THE JOB OF THE COMMAND PROCESSOR TO CHECK FOR
 150            / A CR AT THE END OF THE LINE AND ECHO IT)
 151            
 152 00237 1371 CMD,	TAD	(MSG4-1)
 153 00240 4775 	JMS I	(PMSG)
 154            	
 155 00241 4770 	JMS I	(GCH)
 156 00242 1033 	TAD	CH		/ BLANK LINES ARE
 157 00243 1367 	TAD	(-CR)		/ SPECIAL BECAUSE WE DON'T
 158 00244 7650 	SNA CLA			/ WANT TO ECHO AND
 159 00245 5272 	JMP	CMD4		/ READ PAST THE CARRIAGE RETURN
 160            	
 161 00246 1366 	TAD	(CMDT-1)
 162 00247 3010 	DCA	X0
 163            	
 164 00250 1410 CMD1,	TAD I	X0
 165 00251 7450 	SNA
 166 00252 5270 	JMP	CMD3
 167 00253 1033 	TAD	CH
 168 00254 7650 	SNA CLA
 169 00255 5260 	JMP	CMD2
 170 00256 2010 	ISZ	X0
 171 00257 5250 	JMP	CMD1
 172            
 173 00260 1033 CMD2,	TAD	CH
 174 00261 4765 	JMS I	(PCH)
 175 00262 4770 	JMS I	(GCH)
 176            	
 177 00263 1410 	TAD I	X0
 178 00264 3020 	DCA	T0
 179 00265 4420 	JMS I	T0
 180 00266 5270 	JMP	CMD3
 181 00267 5237 	JMP	CMD
 182            
 183 00270 1364 CMD3,	TAD	(MSG5-1)
 184 00271 4775 	JMS I	(PMSG)
 185            
 186 00272 4774 CMD4,	JMS I	(PCR)
 187 00273 5237 	JMP	CMD
 188            	
 189 00274 7477 CMDT,	-"A;	ACMD
     00275 0400 
 190 00276 7474 	-"D;	DCMD
     00277 0417 
 191 00300 7473 	-"E;	ECMD
     00301 0445 
 192 00302 7472 	-"F;	FCMD
     00303 0600 
 193 00304 7471 	-"G;	GCMD
     00305 0675 
 194 00306 7467 	-"I;	ICMD
     00307 1000 
 195 00310 7464 	-"L;	LCMD
     00311 1024 
 196 00312 7460 	-"P;	PCMD
     00313 1047 
 197 00314 7456 	-"R;	RCMD
     00315 1200 
 198 00316 7455 	-"S;	SCMD
     00317 1066 
 199 00320 7453 	-"U;	UCMD
     00321 1400 
 200 00322 7450 	-"X;	XCMD
     00323 1423 
 201 00324 7447 	-"Y;	YCMD
     00325 1600 
 202 00326 0000 	0
 203            
 204 00364 2661 	PAGE
     00365 2271 
     00366 0273 
     00367 7563 
     00370 2454 
     00371 2656 
     00372 2234 
     00373 2632 
     00374 2263 
     00375 2254 
     00376 2577 
     00377 0002 
 205            
 206            / A [VAL]
 207            
 208 00400 0000 ACMD,	0
 209 00401 4777 	JMS I	(GVAL)
 210 00402 5210 	JMP	ACMD1
 211 00403 4776 	JMS I	(ISCR)
 212 00404 5600 	JMP I	ACMD
 213 00405 1034 	TAD	VAL
 214 00406 3030 	DCA	AC
 215 00407 5215 	JMP	ACMD2	
 216 00410 4776 ACMD1,	JMS I	(ISCR)
 217 00411 5600 	JMP I	ACMD
 218 00412 1030 	TAD	AC
 219 00413 4775 	JMS I	(POCT)
 220 00414 4774 	JMS I	(PCR)	
 221 00415 2200 ACMD2,	ISZ	ACMD
 222 00416 5600 	JMP I	ACMD
 223            	
 224            / D ADR [VAL ...]
 225            
 226 00417 0000 DCMD,	0
 227 00420 4777 	JMS I	(GVAL)
 228 00421 5617 	JMP I	DCMD
 229 00422 4773 	JMS I	(SADR)	
 230 00423 4777 DCMD1,	JMS I	(GVAL)
 231 00424 5241 	JMP	DCMD2
 232 00425 1037 	TAD	ADR+1
 233 00426 0372 	AND	(7)
 234 00427 7106 	CLL RTL
 235 00430 7004 	RAL
 236 00431 1371 	TAD	(CDF)
 237 00432 3233 	DCA	.+1
 238 00433 0000 	0
 239 00434 1034 	TAD	VAL
 240 00435 6006 	PDX
 241 00436 3436 	DCA I	ADR
 242 00437 4770 	JMS I	(IADR)
 243 00440 5223 	JMP	DCMD1
 244 00441 4776 DCMD2,	JMS I	(ISCR)
 245 00442 5617 	JMP I	DCMD
 246 00443 2217 	ISZ	DCMD
 247 00444 5617 	JMP I	DCMD
 248            
 249            / E ADR [LEN]
 250            
 251 00445 0000 ECMD,	0
 252 00446 4777 	JMS I	(GVAL)
 253 00447 5645 	JMP I	ECMD
 254 00450 4773 	JMS I 	(SADR)	
 255 00451 7240 	CLA CMA
 256 00452 3027 	DCA 	T7	
 257 00453 4777 	JMS I 	(GVAL)
 258 00454 5260 	JMP 	ECMD1
 259 00455 1034 	TAD 	VAL
 260 00456 7041 	CMA IAC
 261 00457 3027 	DCA 	T7
 262 00460 4776 ECMD1,	JMS I	(ISCR)
 263 00461 5645 	JMP I	ECMD
 264 00462 3026 	DCA	T6
 265 00463 1026 ECMD2,	TAD	T6
 266 00464 1367 	TAD 	(-10)
 267 00465 7640 	SZA CLA
 268 00466 5271 	JMP 	ECMD3
 269 00467 4774 	JMS I 	(PCR)
 270 00470 3026 	DCA 	T6
 271 00471 1026 ECMD3,	TAD 	T6
 272 00472 7650 	SNA CLA
 273 00473 4766 	JMS I 	(PADR)
 274 00474 1365 	TAD 	(SP)
 275 00475 4764 	JMS I 	(PCH)
 276 00476 1037 	TAD	ADR+1
 277 00477 0372 	AND	(7)
 278 00500 7106 	CLL RTL
 279 00501 7004 	RAL
 280 00502 1371 	TAD	(CDF)
 281 00503 3304 	DCA	.+1
 282 00504 0000 	0
 283 00505 6006 	PDX
 284 00506 1436 	TAD I 	ADR
 285 00507 4775 	JMS I 	(POCT)
 286 00510 4770 	JMS I 	(IADR)
 287 00511 2026 	ISZ 	T6
 288 00512 2027 	ISZ 	T7
 289 00513 5263 	JMP 	ECMD2
 290 00514 4774 	JMS I 	(PCR)
 291 00515 2245 	ISZ	ECMD
 292 00516 5645 	JMP I	ECMD
 293            
 294 00564 2271 	PAGE
     00565 0240 
     00566 2224 
     00567 7770 
     00570 2210 
     00571 6201 
     00572 0007 
     00573 2216 
     00574 2263 
     00575 2234 
     00576 2200 
     00577 2400 
 295            
 296            / F [IDSS]
 297            
 298 00600 0000 FCMD,	0
 299 00601 4777 	JMS I	(GVAL)
 300 00602 5244 	JMP	FCMD5
 301 00603 4776 	JMS I	(ISCR)
 302 00604 5600 	JMP I	FCMD
 303 00605 1034 	TAD	VAL
 304 00606 0375 	AND	(70)
 305 00607 1374 	TAD	(CIF)
 306 00610 3211 	DCA	FCMD1
 307 00611 0000 FCMD1,	0
 308 00612 6004 	PAI
 309 00613 1034 	TAD	VAL
 310 00614 7006 	RTL
 311 00615 7004 	RAL
 312 00616 0375 	AND	(70)
 313 00617 1373 	TAD	(CDF)
 314 00620 3221 	DCA	FCMD2
 315 00621 0000 FCMD2,	0
 316 00622 6005 	PAS
 317 00623 1034 	TAD	VAL
 318 00624 7012 	RTR
 319 00625 7012 	RTR
 320 00626 7012 	RTR
 321 00627 0375 	AND	(70)
 322 00630 1374 	TAD	(CIF)
 323 00631 3232 	DCA	FCMD3
 324 00632 0000 FCMD3,	0
 325 00633 6004 	PAI
 326 00634 1034 	TAD	VAL
 327 00635 7012 	RTR
 328 00636 7010 	RAR
 329 00637 0375 	AND	(70)
 330 00640 1373 	TAD	(CDF)
 331 00641 3242 	DCA	FCMD4
 332 00642 0000 FCMD4,	0
 333 00643 5273 	JMP	FCMD6
 334 00644 4776 FCMD5,	JMS I	(ISCR)
 335 00645 5600 	JMP I	FCMD
 336 00646 6224 	RIF
 337 00647 7112 	CLL RTR
 338 00650 7010 	RAR
 339 00651 1372 	TAD	("0)
 340 00652 4771 	JMS I	(PCH)
 341 00653 6214 	RDF
 342 00654 7112 	CLL RTR
 343 00655 7010 	RAR
 344 00656 1372 	TAD	("0)
 345 00657 4771 	JMS I	(PCH)
 346 00660 6234 	RIB
 347 00661 7112 	CLL RTR
 348 00662 7010 	RAR
 349 00663 0370 	AND	(7)
 350 00664 1372 	TAD	("0)
 351 00665 4771 	JMS I	(PCH)
 352 00666 6234 	RIB	
 353 00667 0370 	AND	(7)
 354 00670 1372 	TAD	("0)
 355 00671 4771 	JMS I	(PCH)
 356 00672 4767 	JMS I	(PCR)
 357 00673 2200 FCMD6,	ISZ	FCMD
 358 00674 5600 	JMP I	FCMD
 359            	
 360            / G [ADR]
 361            
 362 00675 0000 GCMD,	0
 363 00676 4777 	JMS I	(GVAL)
 364 00677 5317 	JMP	GCMD2
 365 00700 1035 	TAD	VAL+1
 366 00701 0370 	AND	(7)
 367 00702 7106 	CLL RTL
 368 00703 7004 	RAL
 369 00704 3032 	DCA	DF
 370 00705 1032 	TAD	DF
 371 00706 1374 	TAD	(CIF)
 372 00707 3310 	DCA	GCMD1
 373 00710 0000 GCMD1,	0
 374 00711 6004 	PAI
 375 00712 1034 	TAD	VAL
 376 00713 3000 	DCA	PC
 377 00714 3030 	DCA	AC
 378 00715 3031 	DCA	L
 379 00716 6002 	IOF
 380 00717 4776 GCMD2,	JMS I	(ISCR)
 381 00720 5675 	JMP I	GCMD
 382 00721 1032 	TAD	DF
 383 00722 1373 	TAD	(CDF)
 384 00723 3324 	DCA	GCMD3
 385 00724 0000 GCMD3,	0
 386 00725 1031 	TAD	L
 387 00726 7104 	CLL RAL
 388 00727 1030 	TAD	AC
 389 00730 6007 	PEX
 390 00731 5400 	JMP I	PC	
 391            
 392 00767 2263 	PAGE
     00770 0007 
     00771 2271 
     00772 0260 
     00773 6201 
     00774 6202 
     00775 0070 
     00776 2200 
     00777 2400 
 393            
 394            / I [VAL]
 395            
 396 01000 0000 ICMD,	0
 397 01001 4777 	JMS I	(GVAL)
 398 01002 5213 	JMP	ICMD1
 399 01003 4776 	JMS I	(ISCR)
 400 01004 5600 	JMP I	ICMD
 401 01005 6002 	IOF			/ ASSUME VAL[0] = 0
 402 01006 1034 	TAD	VAL
 403 01007 7010 	RAR
 404 01010 7630 	SZL CLA
 405 01011 6001 	ION			/ VAL[0] = 1
 406 01012 5222 	JMP	ICMD2
 407 01013 4776 ICMD1,	JMS I	(ISCR)
 408 01014 5600 	JMP I	ICMD
 409 01015 1375 	TAD	("1)
 410 01016 6003 	PSI
 411 01017 1374 	TAD	("0-"1)
 412 01020 4773 	JMS I	(PCH)
 413 01021 4772 	JMS I	(PCR)
 414 01022 2200 ICMD2,	ISZ	ICMD
 415 01023 5600 	JMP I	ICMD
 416            	
 417            / L [DATA]
 418            
 419 01024 0000 LCMD,	0
 420 01025 4777 	JMS I	(GVAL)
 421 01026 5236 	JMP	LCMD1
 422 01027 4776 	JMS I	(ISCR)
 423 01030 5624 	JMP I	LCMD
 424 01031 1034 	TAD	VAL
 425 01032 7010 	RAR			/ VAL[0] TO LINK
 426 01033 7210 	CLA RAR			/ VAL[0] TO AC[11], AC[10..00] ZERO
 427 01034 3031 	DCA	L
 428 01035 5245 	JMP	LCMD2
 429 01036 4776 LCMD1,	JMS I	(ISCR)
 430 01037 5624 	JMP I	LCMD
 431 01040 1031 	TAD	L
 432 01041 7106 	CLL RTL
 433 01042 1371 	TAD	("0
 434 01043 4773 	JMS I	(PCH)
 435 01044 4772 	JMS I	(PCR)
 436 01045 2224 LCMD2,	ISZ	LCMD
 437 01046 5624 	JMP I	LCMD
 438            
 439            / P [DATA]
 440            
 441 01047 0000 PCMD,	0
 442 01050 4777 	JMS I	(GVAL)
 443 01051 5257 	JMP	PCMD1
 444 01052 4776 	JMS I	(ISCR)
 445 01053 5647 	JMP I	PCMD
 446 01054 1034 	TAD	VAL
 447 01055 3000 	DCA	PC
 448 01056 5264 	JMP	PCMD2
 449 01057 4776 PCMD1,	JMS I	(ISCR)
 450 01060 5647 	JMP I	PCMD
 451 01061 1000 	TAD	PC
 452 01062 4770 	JMS I	(POCT)
 453 01063 4772 	JMS I	(PCR)
 454 01064 2247 PCMD2,	ISZ	PCMD
 455 01065 5647 	JMP I	PCMD
 456            	
 457            / S [DATA]
 458            
 459 01066 0000 SCMD,	0
 460 01067 4777 	JMS I	(GVAL)
 461 01070 5277 	JMP	SCMD1
 462 01071 4776 	JMS I	(ISCR)
 463 01072 5666 	JMP I	SCMD
 464 01073 1034 	TAD	VAL
 465 01074 6000 	PWS
 466 01075 7200 	CLA
 467 01076 5304 	JMP	SCMD2
 468 01077 4776 SCMD1,	JMS I	(ISCR)
 469 01100 5666 	JMP I	SCMD
 470 01101 7404 	OSR
 471 01102 4770 	JMS I	(POCT)
 472 01103 4772 	JMS I	(PCR)
 473 01104 2266 SCMD2,	ISZ	SCMD
 474 01105 5666 	JMP I	SCMD
 475            
 476 01170 2234 	PAGE
     01171 0260 
     01172 2263 
     01173 2271 
     01174 7777 
     01175 0261 
     01176 2200 
     01177 2400 
 477            
 478            / R
 479            
 480            / T7 IS WORD 0
 481            / T6 IS WORD 1
 482            / T5 IS CSUM
 483            / T4 IS ADDR
 484            
 485 01200 0000 RCMD,	0
 486 01201 4777 	JMS I	(ISCR)
 487 01202 5600 	JMP I	RCMD
 488            
 489 01203 1376 	TAD	(CDF)		/ BY DEFAULT WE LOAD
 490 01204 3211 	DCA	RCMD3		/ INTO FIELD 0
 491 01205 3024 	DCA	T4		/ AND AT ADDRESS 0000
 492            
 493 01206 4256 RCMD1,	JMS	RREAD		/ SKIP LEADER
 494 01207 5206 	JMP	RCMD1
 495            	
 496 01210 3025 RCMD2,	DCA	T5		/ INIT OR UPDATE CHECKSUM
 497            
 498 01211 0000 RCMD3,	0			/ CDF TO TARGET FIELD
 499            
 500 01212 1033 	TAD	CH		/ READ IN 12 BITS
 501 01213 3027 	DCA	T7		/ WORTH OF RAW TAPE FRAMES
 502 01214 4775 	JMS I	(GCH)
 503 01215 1033 	TAD	CH
 504 01216 3026 	DCA	T6
 505            	
 506 01217 4256 	JMS	RREAD
 507 01220 5236 	JMP	RCMD6		/ DONE IF LEADER
 508            	
 509 01221 4247 	JMS	RPACK		/ ASSEMBLE 6-BIT HALFWORDS
 510 01222 7420 	SNL			/ PACK PUTS 7TH BIT OF FIRST
 511 01223 5226 	JMP	RCMD4		/ HALFWORD IN LINK
 512            	
 513 01224 3024 	DCA	T4		/ ADDRESS
 514 01225 5232 	JMP	RCMD5
 515            	
 516 01226 6006 RCMD4,	PDX			/ DATA
 517 01227 3424 	DCA I	T4
 518 01230 2024 	ISZ	T4
 519 01231 7000 	NOP
 520            	
 521 01232 1025 RCMD5,	TAD	T5		/ ADD THE TWO
 522 01233 1027 	TAD	T7		/ HALFWORDS INTO
 523 01234 1026 	TAD	T6		/ THE RUNNING CHECKSUM
 524 01235 5210 	JMP	RCMD2
 525            	
 526 01236 4247 RCMD6,	JMS	RPACK		/ WHEN THE CHECKSUM WORD
 527 01237 7041 	CIA			/ IS ADDED TO THE
 528 01240 1025 	TAD	T5		/ RUNNING TOTAL THE RESULT SHOULD
 529 01241 7450 	SNA			/ BE 0000	
 530 01242 5245 	JMP	RCMD7
 531            	
 532 01243 4774 	JMS I	(POCT)		/ DISPLAY RESIDUE
 533 01244 4773 	JMS I	(PCR)		/ ON A CHECKSUM ERROR
 534            	
 535 01245 2200 RCMD7,	ISZ	RCMD
 536 01246 5600 	JMP I	RCMD
 537            
 538 01247 0000 RPACK,	0			/ ASSEMBLE A 12-BIT WORD
 539 01250 1027 	TAD	T7
 540 01251 7106 	CLL RTL
 541 01252 7006 	RTL
 542 01253 7006 	RTL
 543 01254 1026 	TAD	T6
 544 01255 5647 	JMP I	RPACK
 545            
 546 01256 0000 RREAD,	0			/ READ TAPE, CHECKING
 547 01257 4775 RREAD1,	JMS I	(GCH)		/ FOR LEADER AND FIELD SETTINGS
 548            
 549 01260 1033 	TAD	CH
 550 01261 0372 	AND	(300)
 551 01262 1371 	TAD	(-200)
 552 01263 7510 	SPA			/ GE 200, LEADER OR FIELD
 553 01264 2256 	ISZ	RREAD
 554 01265 7750 	SPA SNA CLA		/ GT 200, FIELD
 555 01266 5656 	JMP I	RREAD		/ R+1 IF LEADER, R+2 IF ORDINARY
 556            	
 557 01267 1033 	TAD	CH		/ PATCH A CDF INTO THE
 558 01270 0370 	AND	(70)		/ MAIN LOOP, SO IT WILL BE EXECUTED
 559 01271 1376 	TAD	(CDF)		/ AT THE RIGHT TIME
 560 01272 3211 	DCA	RCMD3
 561            	
 562 01273 5257 	JMP	RREAD1
 563            
 564 01370 0070 	PAGE
     01371 7600 
     01372 0300 
     01373 2263 
     01374 2234 
     01375 2454 
     01376 6201 
     01377 2200 
 565            	
 566            / U ADDR [LEN]
 567            
 568 01400 0000 UCMD,	0
 569 01401 4777 	JMS I	(GVAL)
 570 01402 5600 	JMP I	UCMD
 571 01403 4776 	JMS I	(SADR)
 572 01404 7240 	CLA CMA
 573 01405 3027 	DCA 	T7
 574 01406 4777 	JMS I 	(GVAL)
 575 01407 5213 	JMP 	UCMD1
 576 01410 1034 	TAD 	VAL
 577 01411 7041 	CMA IAC
 578 01412 3027 	DCA 	T7
 579 01413 4775 UCMD1,	JMS I	(ISCR)
 580 01414 5600 	JMP I	UCMD
 581 01415 4774 UCMD2,	JMS I	(PINS)
 582 01416 4773 	JMS I	(IADR)
 583 01417 2027 	ISZ	T7
 584 01420 5215 	JMP	UCMD2
 585 01421 2200 	ISZ	UCMD
 586 01422 5600 	JMP I	UCMD
 587            
 588            / X INST [DATA]
 589            
 590 01423 0000 XCMD,	0
 591 01424 4777 	JMS I	(GVAL)
 592 01425 5623 	JMP I	XCMD
 593 01426 1034 	TAD	VAL
 594 01427 3235 	DCA	XCMD1
 595 01430 4777 	JMS I	(GVAL)
 596 01431 3034 	DCA	VAL
 597 01432 4775 	JMS I	(ISCR)
 598 01433 5623 	JMP I	XCMD
 599 01434 1034 	TAD	VAL
 600 01435 0000 XCMD1,	0
 601 01436 5243 	JMP	XCMD2
 602 01437 4772 	JMS I	(POCT)
 603 01440 1371 	TAD	(MSG3-1)
 604 01441 4770 	JMS I	(PMSG)
 605 01442 5244 	JMP	XCMD3
 606 01443 4772 XCMD2,	JMS I	(POCT)
 607 01444 4767 XCMD3,	JMS I	(PCR)
 608 01445 2223 	ISZ	XCMD
 609 01446 5623 	JMP I	XCMD
 610            	
 611 01567 2263 	PAGE
     01570 2254 
     01571 2646 
     01572 2234 
     01573 2210 
     01574 2000 
     01575 2200 
     01576 2216 
     01577 2400 
 612            	
 613            / Y
 614            
 615 01600 0000 YCMD,	0
 616 01601 4777 	JMS I	(ISCR)
 617 01602 5600 	JMP I	YCMD
 618            
 619 01603 1376 	TAD	(SRST)		/ ASSERT SOFT RESET
 620 01604 6767 	HWC
 621 01605 1375 	TAD	(-24)		/ ISZ+JMP IS 3*4*125NS = 1.5US
 622 01606 3020 	DCA	T0		/ 20*1.5US = 25US
 623 01607 2020 YCMD6,	ISZ	T0
 624 01610 5207 	JMP	YCMD6	
 625 01611 6767 	HWC			/ NEGATE SOFT RESET
 626            	
 627 01612 6766 YCMD0,	HRS			/ WAIT FOR BSY=0
 628 01613 0374 	AND	(BSY)		/ WHICH INDICATES THAT THE DISK
 629 01614 7440 	SZA			/ HAS FINISHED RESETTING
 630 01615 5212 	JMP	YCMD0
 631            	
 632 01616 1373 	TAD	(NIEN)		/ DISABLE INTERRUPT
 633 01617 6767 	HWC			/ WHICH WAS RE-ENABLED BY RESET
 634            	
 635 01620 1372 	TAD	(LDEV)		/ DISK 0
 636 01621 6765 	HWR	60
 637            	
 638 01622 6766 YCMD1,	HRS			/ WAIT FOR BSY=0, DRDY=1
 639 01623 0374 	AND	(BSY)
 640 01624 7440 	SZA
 641 01625 5222 	JMP	YCMD1
 642 01626 6766 	HRS
 643 01627 0372 	AND	(DRDY)
 644 01630 7650 	SNA CLA
 645 01631 5222 	JMP	YCMD1
 646            
 647 01632 6755 	HWR	50		/ READ 1 SEC AT LBA 0
 648 01633 6745 	HWR	40		/ ALREADY L=1 AND A[27..24]=0
 649 01634 6735 	HWR	30
 650 01635 7001 	IAC
 651 01636 6725 	HWR	20
 652 01637 1371 	TAD	(RDSEC)
 653 01640 6775 	HWR	70
 654            
 655 01641 6766 YCMD2,	HRS			/ WAIT FOR BSY=0
 656 01642 0374 	AND	(BSY)
 657 01643 7440 	SZA
 658 01644 5241 	JMP	YCMD2
 659            	
 660 01645 6774 	HRR	70		/ READ AND SAVE STATUS
 661 01646 3020 	DCA	T0
 662            	
 663 01647 1020 	TAD	T0		/ BAD IF ERR=1
 664 01650 0370 	AND	(ERR)
 665 01651 7640 	SZA CLA
 666 01652 5257 	JMP	YCMD3
 667            	
 668 01653 1020 	TAD	T0		/ BAD IF DRQ=0
 669 01654 0367 	AND	(DRQ)
 670 01655 7640 	SZA CLA
 671 01656 5271 	JMP	YCMD4
 672            	
 673 01657 1020 YCMD3,	TAD	T0		/ ON ERRORS, PRINT THE
 674 01660 0366 	AND	(377)		/ CONTENTS OF THE STATUS REGISTER
 675 01661 4765 	JMS I	(POCT)		/ AND THE ERROR REGISTER
 676 01662 1364 	TAD	(SP)
 677 01663 4763 	JMS I	(PCH)
 678 01664 6714 	HRR	10
 679 01665 0366 	AND	(377)
 680 01666 4765 	JMS I	(POCT)
 681 01667 4762 	JMS I	(PCR)
 682 01670 5600 	JMP I	YCMD
 683            
 684 01671 3020 YCMD4,	DCA	T0
 685 01672 1361 	TAD	(-400)
 686 01673 3021 	DCA	T1
 687 01674 6201 	CDF	00
 688            	
 689 01675 6704 YCMD5,	HRR	00		/ COPY 256 WORDS
 690 01676 6006 	PDX			/ FROM THE DISK INTO LOCATIONS
 691 01677 3420 	DCA I	T0		/ STARTING AT 0.0000
 692 01700 2020 	ISZ	T0
 693 01701 2021 	ISZ	T1
 694 01702 5275 	JMP	YCMD5
 695            	
 696 01703 2200 	ISZ	YCMD		/ THE BOOT CAN BE
 697 01704 5600 	JMP I	YCMD		/ STARTED WITH A "G 0" COMMAND
 698            	
 699 01761 7400 	PAGE
     01762 2263 
     01763 2271 
     01764 0240 
     01765 2234 
     01766 0377 
     01767 0010 
     01770 0001 
     01771 0040 
     01772 0100 
     01773 0002 
     01774 0200 
     01775 7754 
     01776 0004 
     01777 2200 
 700            	
 701            / PRINT INSTRUCTION
 702            / CALLED WITH 0 IN AC, AND THE ADDRESS OF THE INSTRUCTION
 703            / WHICH SHOULD BE PRINTED IN ADR+1/ADR+0
 704            / RETURN WITH 0 IN AC
 705            / USES X0, X1, X2, X3 (AND DEALS WITH THE FACT THAT
 706            / POCT SMASHES X0 AND X1)
 707            
 708 02000 0000 PINS,	0
 709            
 710 02001 1037 	TAD	ADR+1
 711 02002 0377 	AND	(7)
 712 02003 7106 	CLL RTL
 713 02004 7004 	RAL
 714 02005 1376 	TAD	(CDF)
 715 02006 3207 	DCA	PINS1
 716 02007 0000 PINS1,	0
 717 02010 6006 	PDX
 718 02011 1436 	TAD I 	ADR
 719 02012 3013 	DCA	X3
 720            
 721 02013 4775 	JMS I	(PADR)
 722 02014 1374 	TAD	(SP)
 723 02015 4773 	JMS I	(PCH)
 724 02016 1013 	TAD	X3
 725 02017 4772 	JMS I	(POCT)
 726            
 727            / THE BULK OF THE WORK IS TABLE DRIVEN
 728            / THE INSTRUCTION WORD IS ANDED WITH A MASK, AND THEN
 729            / COMPARED WITH A VALUE; IF IT MATCHES THEN 3 ASCII CHARACTERS
 730            / ARE OUTPUT, PRECEEDED BY A SPACE
 731            
 732 02020 1371 	TAD	(PTAB-1)
 733 02021 3011 	DCA	X1
 734 02022 1370 	TAD	(-NPTAB)
 735 02023 3012 	DCA	X2
 736            
 737 02024 1013 PINS2,	TAD	X3
 738 02025 0411 	AND I	X1
 739 02026 1411 	TAD I	X1
 740 02027 7640 	SZA CLA
 741 02030 5242 	JMP	PINS3
 742 02031 1374 	TAD 	(SP)
 743 02032 4773 	JMS I	(PCH)
 744 02033 1411 	TAD I	X1
 745 02034 4773 	JMS I	(PCH)
 746 02035 1411 	TAD I	X1
 747 02036 4773 	JMS I	(PCH)
 748 02037 1411 	TAD I	X1
 749 02040 4773 	JMS I	(PCH)
 750 02041 5245 	JMP	PINS4
 751            
 752 02042 2011 PINS3,	ISZ	X1
 753 02043 2011 	ISZ	X1
 754 02044 2011 	ISZ	X1
 755            	
 756 02045 2012 PINS4,	ISZ	X2
 757 02046 5224 	JMP	PINS2
 758            
 759            / IF THE INSTRUCTION IS A MEMORY REFERENCE
 760            / INSTRUCTION THE EFFECTIVE ADDRESS NEEDS TO BE PRINTED, PERHAPS
 761            / PRECEEDED BY THE INDIRECT ADDRESSING FLAG
 762            
 763 02047 1013 	TAD	X3
 764 02050 0367 	AND	(6000)
 765 02051 1366 	TAD	(-6000)
 766 02052 7650 	SNA CLA
 767 02053 5304 	JMP	PINS7
 768            
 769 02054 1013 	TAD	X3
 770 02055 0365 	AND	(0400)
 771 02056 7650 	SNA CLA
 772 02057 5264 	JMP	PINS5
 773 02060 1374 	TAD	(SP)
 774 02061 4773 	JMS I	(PCH)
 775 02062 1364 	TAD	("I)
 776 02063 4773 	JMS I	(PCH)
 777            
 778 02064 1013 PINS5,	TAD	X3
 779 02065 0363 	AND	(0177)
 780 02066 3011 	DCA	X1
 781 02067 1013 	TAD	X3
 782 02070 0362 	AND	(0200)
 783 02071 7650 	SNA CLA
 784 02072 5277 	JMP	PINS6
 785 02073 1036 	TAD	ADR
 786 02074 0361 	AND	(7600)
 787 02075 1011 	TAD	X1
 788 02076 3011 	DCA	X1
 789            
 790 02077 1374 PINS6,	TAD	(SP)
 791 02100 4773 	JMS I	(PCH)
 792 02101 1011 	TAD	X1
 793 02102 4772 	JMS I	(POCT)
 794 02103 5327 	JMP	PINS8
 795            
 796            / IF THE INSTRUCTION IS A FIELD SETTING INSTRUCTION
 797            / THEN THE FIELD NUMBER NEEDS TO BE PRINTED; THIS IS PRINTED WITH
 798            / A TRAILING ZERO SO IT LOOKS LIKE PAL8 INPUT
 799            	
 800 02104 1013 PINS7,	TAD	X3
 801 02105 0360 	AND	(7700)
 802 02106 1357 	TAD	(-6200)
 803 02107 7640 	SZA CLA
 804 02110 5327 	JMP	PINS8
 805 02111 1013 	TAD	X3		
 806 02112 0356 	AND	(0003)
 807 02113 7650 	SNA CLA
 808 02114 5327 	JMP	PINS8
 809            	
 810 02115 1374 	TAD	(SP)
 811 02116 4773 	JMS I	(PCH)
 812 02117 1013 	TAD	X3
 813 02120 7012 	RTR
 814 02121 7010 	RAR
 815 02122 0377 	AND	(7)
 816 02123 1355 	TAD	("0)
 817 02124 4773 	JMS I	(PCH)
 818 02125 1355 	TAD	("0)
 819 02126 4773 	JMS I	(PCH)
 820            	
 821 02127 4754 PINS8,	JMS I	(PCR)
 822            
 823 02130 5600 	JMP I	PINS	
 824            
 825 02154 2263 	PAGE
     02155 0260 
     02156 0003 
     02157 1600 
     02160 7700 
     02161 7600 
     02162 0200 
     02163 0177 
     02164 0311 
     02165 0400 
     02166 2000 
     02167 6000 
     02170 7725 
     02171 2666 
     02172 2234 
     02173 2271 
     02174 0240 
     02175 2224 
     02176 6201 
     02177 0007 
 826            
 827            / THIS ROUTINE GETS CALLED AT THE END OF
 828            / EVERY COMMAND TO CHECK FOR A CARRIAGE RETURN
 829            / IF CH ISN'T A CR, RETURN JMS+1
 830            / IF CH IS A CR, PRINT A CRLF, RETURN JMS+2
 831            
 832 02200 0000 ISCR,	0
 833 02201 1033 	TAD	CH
 834 02202 1377 	TAD	(-CR)
 835 02203 7640 	SZA CLA
 836 02204 5600 	JMP I	ISCR
 837 02205 4776 	JMS I	(PCR)
 838 02206 2200 	ISZ	ISCR
 839 02207 5600 	JMP I	ISCR
 840            	
 841            / INCREMENT ADR+1 AND ADR+0
 842            
 843 02210 0000 IADR,	0
 844 02211 2036 	ISZ 	ADR		/ LO PART
 845 02212 5215 	JMP 	IADR1		/ NON ZERO, NO CARRY
 846 02213 2037 	ISZ 	ADR+1		/ HI PART
 847 02214 7000 	NOP
 848 02215 5610 IADR1,	JMP I 	IADR
 849            	
 850            / COPY VAL+1 TO ADR+1, VAL+0 TO ADR+0
 851            
 852 02216 0000 SADR,	0
 853 02217 1034 	TAD	VAL
 854 02220 3036 	DCA	ADR
 855 02221 1035 	TAD	VAL+1
 856 02222 3037 	DCA	ADR+1
 857 02223 5616 	JMP I 	SADR
 858            
 859            / PRINT ADDRESS
 860            / ADDRESS IS IN ADR+1 AND ADR+0
 861            / USES T0, T1
 862            
 863 02224 0000 PADR,	0
 864 02225 1037 	TAD	ADR+1
 865 02226 0375 	AND	(7)
 866 02227 1374 	TAD	("0)
 867 02230 4271 	JMS 	PCH
 868 02231 1036 	TAD 	ADR
 869 02232 4234 	JMS 	POCT
 870 02233 5624 	JMP I 	PADR
 871            	
 872            / PRINT OCTAL WORD
 873            / ENTER WITH WORD IN AC
 874            / USES T0, T1
 875            
 876 02234 0000 POCT,	0
 877 02235 7004 	RAL
 878 02236 3020 	DCA 	T0
 879 02237 1373 	TAD 	(-4)
 880 02240 3021 	DCA 	T1
 881 02241 1020 POCT1,	TAD 	T0
 882 02242 7006 	RTL
 883 02243 7004 	RAL
 884 02244 3020 	DCA 	T0
 885 02245 1020 	TAD 	T0
 886 02246 0375 	AND 	(7)
 887 02247 1374 	TAD 	("0)
 888 02250 4271 	JMS 	PCH
 889 02251 2021 	ISZ 	T1
 890 02252 5241 	JMP 	POCT1
 891 02253 5634 	JMP I 	POCT
 892            
 893            / PRINT MESSAGE
 894            / TEXT IS IN ASCII, END MARK IS 0000
 895            / ENTER WITH MSG-1 IN AC
 896            / USES X0
 897            	
 898 02254 0000 PMSG,	0
 899 02255 3010 	DCA	X0
 900 02256 1410 PMSG1,	TAD I	X0
 901 02257 7450 	SNA
 902 02260 5654 	JMP I	PMSG
 903 02261 4271 	JMS 	PCH
 904 02262 5256 	JMP	PMSG1	
 905            
 906            / PRINT CR/LF
 907            
 908 02263 0000 PCR,	0
 909 02264 1372 	TAD	(CR
 910 02265 4271 	JMS 	PCH
 911 02266 1371 	TAD 	(LF
 912 02267 4271 	JMS 	PCH
 913 02270 5663 	JMP I 	PCR
 914            
 915            / PRINT CHARACTER
 916            / ENTER WITH CHARACTER IN AC
 917            
 918 02271 0000 PCH,	0
 919 02272 6041 PCH1,	TSF
 920 02273 5272 	JMP 	PCH1
 921 02274 6046 	TLS
 922 02275 7200 	CLA
 923 02276 5671 	JMP I 	PCH
 924            
 925 02371 0212 	PAGE
     02372 0215 
     02373 7774 
     02374 0260 
     02375 0007 
     02376 2263 
     02377 7563 
 926            
 927            / GET (24-BIT) OCTAL NUMBER
 928            / ENTER WITH 0 IN AC AND FIRST CHARACTER IN CH
 929            / EXIT WITH 0 IN AC AND NUMBER IN VAL+1 (HI) AND VAL+0 (LO)
 930            / NORMAL RETURN IS FAILURE, SKIP RETURN IS SUCCESS
 931            / SKIPS LEADING BLANKS
 932            / USES T0
 933            
 934 02400 0000 GVAL,	0
 935 02401 1033 GVAL1,	TAD	CH
 936 02402 1377 	TAD	(-SP)
 937 02403 7640 	SZA CLA
 938 02404 5211 	JMP	GVAL2
 939 02405 1033 	TAD	CH
 940 02406 4776 	JMS I	(PCH
 941 02407 4775 	JMS I	(GCH
 942 02410 5201 	JMP	GVAL1
 943 02411 4242 GVAL2,	JMS	GVAL5
 944 02412 5600 	JMP I	GVAL
 945 02413 2200 	ISZ 	GVAL
 946 02414 3034 	DCA 	VAL
 947 02415 3035 	DCA 	VAL+1
 948 02416 1033 GVAL3,	TAD	CH
 949 02417 4776 	JMS I	(PCH
 950 02420 1374 	TAD 	(-3)
 951 02421 3020 	DCA 	T0
 952 02422 1034 GVAL4,	TAD 	VAL
 953 02423 7104 	CLL RAL
 954 02424 3034 	DCA 	VAL
 955 02425 1035 	TAD 	VAL+1
 956 02426 7004 	RAL
 957 02427 3035 	DCA 	VAL+1
 958 02430 2020 	ISZ 	T0
 959 02431 5222 	JMP 	GVAL4
 960 02432 1033 	TAD 	CH
 961 02433 1373 	TAD	(-"0)
 962 02434 1034 	TAD	VAL
 963 02435 3034 	DCA 	VAL
 964 02436 4775 	JMS I 	(GCH)
 965 02437 4242 	JMS	GVAL5
 966 02440 5600 	JMP I	GVAL
 967 02441 5216 	JMP 	GVAL3
 968            
 969 02442 0000 GVAL5,	0
 970 02443 1033 	TAD	CH
 971 02444 1373 	TAD	(-"0)
 972 02445 7710 	SPA CLA
 973 02446 5642 	JMP I	GVAL5
 974 02447 1033 	TAD	CH
 975 02450 1372 	TAD	(-"8)
 976 02451 7710 	SPA CLA
 977 02452 2242 	ISZ	GVAL5
 978 02453 5642 	JMP I	GVAL5
 979            	
 980            / GET CHARACTER
 981            / ENTER WITH 0 IN AC
 982            / EXIT WITH 0 IN AC, CHARACTER IN CH
 983            
 984 02454 0000 GCH,	0
 985 02455 6031 GCH1,	KSF
 986 02456 5255 	JMP	GCH1
 987 02457 6036 	KRB
 988 02460 0371 	AND	(0377
 989 02461 3033 	DCA 	CH
 990 02462 5654 	JMP I 	GCH
 991            
 992 02571 0377 	PAGE
     02572 7510 
     02573 7520 
     02574 7775 
     02575 2454 
     02576 2271 
     02577 7540 
 993            
 994            / TEXT MESSAGES
 995            / AS USED BY PMSG (ASCII, 0 ON THE END)
 996            
 997 02600 0320 MSG1,	"P
 998 02601 0304 	"D
 999 02602 0320 	"P
1000 02603 0255 	"-
1001 02604 0270 	"8
1002 02605 0257 	"/
1003 02606 0330 	"X
1004 02607 0240 	SP
1005 02610 0260 	"0
1006 02611 0265 	"5
1007 02612 0240 	SP
1008 02613 0304 	"D
1009 02614 0307 	"G
1010 02615 0303 	"C
1011 02616 0240 	SP
1012 02617 0262 	"2
1013 02620 0260 	"0
1014 02621 0255 	"-
1015 02622 0312 	"J
1016 02623 0325 	"U
1017 02624 0314 	"L
1018 02625 0255 	"-
1019 02626 0262 	"2
1020 02627 0260 	"0
1021 02630 0260 	"0
1022 02631 0260 	"0
1023 02632 0000 	0
1024            		
1025 02633 0310 MSG2,	"H
1026 02634 0301 	"A
1027 02635 0314 	"L
1028 02636 0324 	"T
1029 02637 0240 	SP
1030 02640 0301 	"A
1031 02641 0324 	"T
1032 02642 0240 	SP
1033 02643 0320 	"P
1034 02644 0303 	"C
1035 02645 0240 	SP
1036 02646 0000 	0
1037            
1038 02647 0240 MSG3,	SP
1039 02650 0250 	"(
1040 02651 0323 	"S
1041 02652 0313 	"K
1042 02653 0311 	"I
1043 02654 0320 	"P
1044 02655 0251 	")
1045 02656 0000 	0
1046            
1047 02657 0277 MSG4,	"?
1048 02660 0240 	SP
1049 02661 0000 	0
1050            
1051 02662 0240 MSG5,	SP
1052 02663 0330 	"X
1053 02664 0330 	"X
1054 02665 0330 	"X
1055 02666 0000 	0
1056            
1057            / INSTRUCTION DISASSEMBLY TABLE
1058            
1059 02667 7000 PTAB,	7000; -0000; "A; "N; "D		/ MRI
     02670 0000 
     02671 0301 
     02672 0316 
     02673 0304 
1060 02674 7000 	7000; -1000; "T; "A; "D
     02675 7000 
     02676 0324 
     02677 0301 
     02700 0304 
1061 02701 7000 	7000; -2000; "I; "S; "Z
     02702 6000 
     02703 0311 
     02704 0323 
     02705 0332 
1062 02706 7000 	7000; -3000; "D; "C; "A
     02707 5000 
     02710 0304 
     02711 0303 
     02712 0301 
1063 02713 7000 	7000; -4000; "J; "M; "S
     02714 4000 
     02715 0312 
     02716 0315 
     02717 0323 
1064 02720 7000 	7000; -5000; "J; "M; "P
     02721 3000 
     02722 0312 
     02723 0315 
     02724 0320 
1065 02725 7777 	7777; -7000; "N; "O; "P		/ OPR GROUP 1
     02726 1000 
     02727 0316 
     02730 0317 
     02731 0320 
1066 02732 7600 	7600; -7200; "C; "L; "A
     02733 0600 
     02734 0303 
     02735 0314 
     02736 0301 
1067 02737 7500 	7500; -7100; "C; "L; "L
     02740 0700 
     02741 0303 
     02742 0314 
     02743 0314 
1068 02744 7440 	7440; -7040; "C; "M; "A
     02745 0740 
     02746 0303 
     02747 0315 
     02750 0301 
1069 02751 7420 	7420; -7020; "C; "M; "L
     02752 0760 
     02753 0303 
     02754 0315 
     02755 0314 
1070 02756 7401 	7401; -7001; "I; "A; "C
     02757 0777 
     02760 0311 
     02761 0301 
     02762 0303 
1071 02763 7412 	7412; -7010; "R; "A; "R
     02764 0770 
     02765 0322 
     02766 0301 
     02767 0322 
1072 02770 7406 	7406; -7004; "R; "A; "L
     02771 0774 
     02772 0322 
     02773 0301 
     02774 0314 
1073 02775 7412 	7412; -7012; "R; "T; "R
     02776 0766 
     02777 0322 
     03000 0324 
     03001 0322 
1074 03002 7406 	7406; -7006; "R; "T; "L
     03003 0772 
     03004 0322 
     03005 0324 
     03006 0314 
1075 03007 7777 	7777; -7400; "N; "O; "P		/ OPR GROUP 2
     03010 0400 
     03011 0316 
     03012 0317 
     03013 0320 
1076 03014 7571 	7571; -7410; "S; "K; "P
     03015 0370 
     03016 0323 
     03017 0313 
     03020 0320 
1077 03021 7511 	7511; -7500; "S; "M; "A
     03022 0300 
     03023 0323 
     03024 0315 
     03025 0301 
1078 03026 7511 	7511; -7510; "S; "P; "A
     03027 0270 
     03030 0323 
     03031 0320 
     03032 0301 
1079 03033 7451 	7451; -7440; "S; "Z; "A
     03034 0340 
     03035 0323 
     03036 0332 
     03037 0301 
1080 03040 7451 	7451; -7450; "S; "N; "A
     03041 0330 
     03042 0323 
     03043 0316 
     03044 0301 
1081 03045 7431 	7431; -7420; "S; "N; "L
     03046 0360 
     03047 0323 
     03050 0316 
     03051 0314 
1082 03052 7431 	7431; -7430; "S; "Z; "L
     03053 0350 
     03054 0323 
     03055 0332 
     03056 0314 
1083 03057 7601 	7601; -7600; "C; "L; "A
     03060 0200 
     03061 0303 
     03062 0314 
     03063 0301 
1084 03064 7405 	7405; -7404; "O; "S; "R
     03065 0374 
     03066 0317 
     03067 0323 
     03070 0322 
1085 03071 7406 	7406; -7402; "H; "L; "T
     03072 0376 
     03073 0310 
     03074 0314 
     03075 0324 
1086 03076 7777 	7777; -6001; "I; "O; "N		/ IOT
     03077 1777 
     03100 0311 
     03101 0317 
     03102 0316 
1087 03103 7777 	7777; -6002; "I; "O; "F
     03104 1776 
     03105 0311 
     03106 0317 
     03107 0306 
1088 03110 7777 	7777; -6031; "K; "S; "F
     03111 1747 
     03112 0313 
     03113 0323 
     03114 0306 
1089 03115 7777 	7777; -6032; "K; "C; "C
     03116 1746 
     03117 0313 
     03120 0303 
     03121 0303 
1090 03122 7777 	7777; -6034; "K; "R; "S
     03123 1744 
     03124 0313 
     03125 0322 
     03126 0323 
1091 03127 7777 	7777; -6036; "K; "R; "B
     03130 1742 
     03131 0313 
     03132 0322 
     03133 0302 
1092 03134 7777 	7777; -6041; "T; "S; "F
     03135 1737 
     03136 0324 
     03137 0323 
     03140 0306 
1093 03141 7777 	7777; -6042; "T; "C; "F
     03142 1736 
     03143 0324 
     03144 0303 
     03145 0306 
1094 03146 7777 	7777; -6044; "T; "P; "C
     03147 1734 
     03150 0324 
     03151 0320 
     03152 0303 
1095 03153 7777 	7777; -6046; "T; "L; "S
     03154 1732 
     03155 0324 
     03156 0314 
     03157 0323 
1096 03160 7701 	7701; -6201; "C; "D; "F
     03161 1577 
     03162 0303 
     03163 0304 
     03164 0306 
1097 03165 7702 	7702; -6202; "C; "I; "F		
     03166 1576 
     03167 0303 
     03170 0311 
     03171 0306 
1098 03172 7774 	7774; -6244; "R; "M; "F
     03173 1534 
     03174 0322 
     03175 0315 
     03176 0306 
1099 03177 7774 	7774; -6234; "R; "I; "B
     03200 1544 
     03201 0322 
     03202 0311 
     03203 0302 
1100 03204 7774 	7774; -6224; "R; "I; "F
     03205 1554 
     03206 0322 
     03207 0311 
     03210 0306 
1101 03211 7774 	7774; -6214; "R; "D; "F
     03212 1564 
     03213 0322 
     03214 0304 
     03215 0306 
1102            	
1103            NPTAB=53
1104            
1105            	$
