PAGE 1 IMP,3147,IMP 4:35 PM 7/19/1974 /** THE INTERFACE MESSAGE PROCESSOR PROGRAM /** /** /** /** /** /** /** /** /** /** /** /** DEVELOPED BY BOLT BERANEK AND NEWMAN INC. /** /** /** /** UNDER CONTRACT NO. DAHC15-69-C-0179 /** /** /** /** SPONSORED BY THE ADVANCED RESEARCH PROJECTS AGENCY /** /** /** /** /** /** .VERS.=VERNUM /DAP516 KNOWS ^L PAGE 2 IMP,3147,IMP 4:35 PM 7/19/1974 DCA=0 PRINTX /NETWORK VERSION / PNTNUM .VERS. PRINTX / / REPEAT 1IF VZ DCA,[ PRINTX /ARPA NET SYSTEM / ] REPEAT 0IF VZ DCA,[ PRINTX /DCA NET SYSTEM / ] ACA=141216 ADD=14000 /516 OPCODES ANA=6000 AOA=141206 CAL=141050 CAR=141044 CAS=22000 CHS=140024 CMA=140401 CRA=140040 CSA=140320 DXA=11 .ENB=401 ERA=12000 EXA=13 HLT=0 IAB=201 ICA=141340 ICL=141140 ICR=141240 IMA=26000 .INH=1001 INK=43 IRS=24000 JMP=2000 JST=20000 LDA=4000 LDX=72000 NOP=101000 OTK=171020 RCB=140200 RMP=21 ^L PAGE 3 IMP,3147,IMP 4:35 PM 7/19/1974 SCB=140600 SKP=100000 SLN=101100 SLZ=100100 SMI=101400 SNZ=101040 SPL=100400 SPN=100200 SPS=101200 SRC=100001 SR1=100020 SR2=100010 SR3=100004 SR4=100002 SSC=101001 SSM=140500 SSP=140100 SS1=101020 SS2=101010 SS3=101004 SS4=101002 STA=10000 STX=32000 SUB=16000 SZE=100040 TCA=140407 /PUT KEY-IN LOADER FOR TTY IN IMP BINARY FOR IMPVER 00001 010057 1/ STA 57 00002 030004 TTSIM /030001 FOR RDR 00003 131004 RDADDR: TTINAC /131001 FOR RDR 00004 002003 JMP RDADDR 00005 101040 SNZ 00006 002003 JMP RDADDR 00007 010000 STA 0 00010 131004 RDCON1: TTINAC /131001 FOR RDR 00011 002010 JMP RDCON1 00012 041470 LGL 8 00013 130004 RDCON2: TTINA /130001 FOR RDR 00014 002013 JMP RDCON2 00015 110000 STA 0 I 00016 024000 IRS 0 00017 100040 SZE ^L PAGE 4 IMP,3147,IMP 4:35 PM 7/19/1974 IRP [I,,ALS,ARS,ALR,ARR,LGL,LGR,LLS,LRS,LLR,LRR,LLL,LRL], [N,, 415,405,416,406,414,404,411,401,412,402,410,400] DEFINE I C 0 0 N'00+100-C"A"77 TERMINATE ENDIRP IRP [I,,INA,OCP,OTA,SKS,SMK],[N,,13,3,17,7,17] DEFINE I C 0 0 N'0000 C TERMINATE ENDIRP MLCINDIS=OCP 31 /MLC IN DISABLE MLCOIDIS=OCP 33 /MLC OUTIN DISABLE X=40000 I=100000 XI=140000 DEFINE BSS N 200000 0 0 . N-1/ TERMINATE ^L PAGE 5 IMP,3147,IMP 4:35 PM 7/19/1974 /SKS'S, OCP'S, ETC FOR PRODUCTION MACHINES IRP [NUM,,1,2,3,4,5] M'NUM'OUT=OCP 7'NUM /BEGIN MODEM OUTPUT M'NUM'UNXP=OCP 17'NUM /UNPATCH = RESET INTERFACE M'NUM'LXP=OCP 27'NUM /LINE CROSSPATCH M'NUM'IXP=OCP 37'NUM /INTERFACE CROSSPATCH M'NUM'IN=OCP 47'NUM /BEGIN MODEM INPUT M'NUM'ERR=SKS 47'NUM /SKIP ON HARDWARE-DETECTED ERROR M'NUM'INIL=63 NUM /MODEM INPUT INTERRUPT LOCATION M'NUM'OTIL=70 NUM /MODEM OUTPUT INTERRUPT LOCATION M'NUM'INBP=16 NUM NUM M'NUM'OTBP=30 NUM NUM ENDIRP IRP [NUM,,1,2,3] H'NUM'ROUT=OCP 100-[10"T"NUM] /REGULAR HOST OUTPUT (NO LA H'NUM'IN=OCP 200-[10"T"NUM] /BEGIN HOST INPUT H'NUM'FOUT=OCP 300-[10"T"NUM] /FINAL HOST OUTPUT (WITH LA H'NUM'XP=OCP 400-[10"T"NUM] /INTERFACE CROSSPATCH H'NUM'UNXP=OCP 500-[10"T"NUM] /UNPATCH = RESET INTERFAC- H'NUM'ENAB=OCP 600-[10"T"NUM] /ENABLE HOST DATA (TURN ON H'NUM'ERR=SKS 100-[10"T"NUM] /SKIP ON HARDWARE ERROR (-- H'NUM'RDY=SKS 200-[10"T"NUM] /SKIP IF HOST READY ON H'NUM'EOM=SKS 300-[10"T"NUM] /SKIP IF LAST BIT SET ON IN H'NUM'FULL=SKS 500-[10"T"NUM] /?? H'NUM'OTIL=75 NUM /HOST OUTPUT INTERRUPT LOCATION H'NUM'INIL=77 NUM /HOST INPUT INTERRUPT LOCATION H'NUM'OTBP=42 NUM NUM /HOST OUTPUT BUFFER POINTER H'NUM'INBP=46 NUM NUM /HOST INPUT BUFFER POINTER ENDIRP ^L PAGE 6 IMP,3147,IMP 4:35 PM 7/19/1974 H3OTIL=M5INIL /HOST 3 IS A LITTLE STRANGE H3INIL=M5OTIL H3OTBP=54 H3INBP=56 H4OTIL=M4INIL /HOST 4 IS YET STRANGER H4INIL=M4OTIL H4OTBP=M5INBP H4INBP=M5OTBP H4ROUT=OCP 51 H4IN=OCP 151 H4FOUT=OCP 251 H4XP=OCP 351 H4UNXP=OCP 451 H4ENAB=OCP 551 H4ERR=SKS 51 H4RDY=SKS 151 H4EOM=SKS 251 H4FULL=SKS 451 CLKON=OCP 40 CLKOFF=OCP 1040 RDCLOK=INA 1040 CLOKIL=102 TASK=OCP 41 TASKIL=103 WDT=OCP 26 WDTIL=62 PFIL=60 SWDTIL=61 LITES=OTA 26 RDIMPN=INA 1041 AMIMLC=SKS 42 AMI516=SKS 26 CNFIG1=INA 1041 CNFIG2=INA 1140 CNFIG3=INA 1141 CNFIG4=INA 1240 CNFIG5=INA 1241 CNFIG6=INA 1340 CNFIG7=INA 1341 ^L PAGE 7 IMP,3147,IMP 4:35 PM 7/19/1974 /SKS'S AND OCP'S NATIVE TO THE 516 STDIL=63 /STANDARD INTERRUPT LOCATION TTSIM=OCP 4 /SELECT INPUT MODE TTSOM=OCP 104 /SELECT OUTPUT MODE TTSRDY=SKS 4 TTSNBZ=SKS 104 TTSNSC=SKS 504 TTINA=INA 4 TTINB=INA 204 TTINAC=INA 1004 TTINBC=INA 1204 TTOTA=OTA 4 TTOTB=OTA 204 INTM=120 /SMK TO SET THE PRIORITY INTER ! ^L PAGE 8 IMP,3147,IMP 4:35 PM 7/19/1974 EQUALS R,REPEAT EQUALS D,DEFINE EQUALS T,TERMINATE EQUALS P,PRINTX EQUALS PR,PRINT /MACROS TO TYPE OUT INTERESTING LOCATIONS D DEFPLC TX .TA.=. 100201/ .TA. .ASCII ;TX'"Z"; .TA./ T DEFPLC D RELOAD TX .TA.=. 100301/ .TA.+1 .ASCII ;TX'"Z"; .TA./ T RELOAD D DEFHLT TX .TA.=. 100101/ .TA.+1 .ASCII ;TX'"Z"; .TA./ T DEFHLT /TITLES FOR DUMPED TEXTS 100200/ .ASCII ;USEFUL LOCATIONS "Z"; 100100/ .ASCII ;HALT LOCATIONS "Z"; 100000/ .ASCII ; PATCH BEG END BUFS"Z"; 100300/ .ASCII ;CRASH-RELOAD LOCATIONS "Z"; 100400/ .ASCII ; IMP BUFFERS ASSIGNED PAGE "Z"; ^L PAGE 9 IMP,3147,IMP 4:35 PM 7/19/1974 /MACROS TO SET UP STATISTICS TABLES NSTATS=0 MAXSTAT=22. /CALL DEFSTAT , D DEFSTAT A,B .TA.=. .TB.=A A R 1IF P,[ SW1+NSTATS/ B SB1+NSTATS/ .TA. SC1+NSTATS/ .TB. .TA.+1/ ] NSTATS=NSTATS+1 R 1IF VP NSTATS-MAXSTAT,[ PR "TOO MANY STATISTICS" NSTATS=NSTATS-1 ] T DEFSTAT ^L PAGE 10 IMP,3147,IMP 4:35 PM 7/19/1974 /MACROS FOR IMP/TIP INITIALIZATION NITB=0 MAXITB=20.+4 /SATDEF USES 4 /CALL TIPDEF , D TIPDEF A,B .TA.=. .TB.=A BSS 1 .TC.=B R 1IF P,[ ITBLOC+NITB/ .TA. ITBIMP+NITB/ .TB. ITBTIP+NITB/ .TC. .TA.+1/ ] NITB=NITB+1 R 0IF VP MAXITB-NITB,[ PR "TOO MANY IMP/TIP INSTRS" NITB=NITB-1 ] T TIPDEF R 1IF P,[ ITBLOC/ R MAXITB,[ 1 ] 02362 000001 ] 02363 000001 02364 000001 02365 000001 02366 000001 02367 000001 02370 000001 02371 000001 02372 000001 02373 000001 02374 000001 02375 000001 02376 000001 02377 000001 02400 000001 02401 000001 02402 000001 02403 000001 02404 000001 02405 000001 02406 000001 02407 000001 02410 000001 02411 000001 ^L PAGE 11 IMP,3147,IMP 4:35 PM 7/19/1974 /SAT/IMP DEF (RESTORE) MACRO D SATDEF A TIPDEF A,A T SATDEF /THE STANDARD IMP INTERRUPT LEVELS M2I=0 /MODEM-TO-IMP RUNS LOCKED I2M=M2I+2 /IMP-TO-MODEM - SKIP VDI I2H=I2M+1 /IMP-TO-HOST H2I=I2H+1 /HOST-TO-IMP T.O=H2I+1 /TIMEOUT TSK=T.O+1 /TASK BCK=TSK+1 /BACKGROUND /SOME OTHER LEVEL 0 TYPES INI=0 /INITIALIZATION TTY=0 /TELETYPE INTERRUPT WDI=0 /WATCH DOG TIMER INTERRUPT RSI=0 /POWER FAIL INTERRUPT SIN=0 /SOFTWARE INTERRUPT CALLS ALL=0 /UNINTERRUPTABLE CODE LIKE DXA JMP SEQUENCE FRE=0 /REFERENCES TO FREE LIST AND COUNT MSK=0 /REFERENCES TO INTERRUPT MASK /VDH LEVELS VDI=M2I /INPUT INTERRUPT VDO=I2M /OUTPUT INTERRUPT VDB=BCK /BACKGROUND /TIP LEVELS TPO=0 /OUTPUT INTERRUPT TPC=H2I /CLOCK INTERRUPT TPB=BCK /BACKGROUND /MISCELLANEOUS VAR=75 /VARIABLES CON=76 /CONSTANTS UND=77 /UNDEFINED ^L PAGE 12 IMP,3147,IMP 4:35 PM 7/19/1974 /MACROS TO ESTABLISH INTERRUPT LEVELS FOR CODE AND DATA /XLEV IS HARDWARE LEVEL ESTABLISHED BY SMK INSTRUCTIONS /YLEV IS SOFTWARE LEVEL ESTABLISHED BY INH INSTRUCTIONS XLEV=0 YLEV=0 /MACROS WHICH ASSEMBLE CODE - INT,INH,ENB /DECLARE HARDWARE INTERRUPT ENTRANCE ON LEVEL N D INT N XLEV=N YLEV=0 WORD 0 0 300000+XLEV"T"100+YLEV 0 T INT /INHIBIT INTERRUPTS FROM LEVELS IN LIST D INH LIST R 0IF P,[ IRP [Q,,LIST] R 1IF VP 0 0 Q-YLEV, [ PRINTX /REDUNDANT INH AT / PNTNUM . PRINTX / / ] ENDIRP ] YLEV=100 IRP [Q,,LIST] R 1IF VP 0 0 YLEV-Q,YLEV=Q ENDIRP .INH WORD 0 0 300000+XLEV"T"100+YLEV T INH /ENABLE HIGHER INTERRUPTS FROM LEVEL N D ENB N R 0IF P,[ R 0IF VZ 0 0 XLEV-N, [ PRINTX /INCORRECT ENB AT / PNTNUM . PRINTX / / ] ] YLEV=N .ENB WORD 0 0 300000+XLEV"T"100+YLEV T ENB ^L PAGE 13 IMP,3147,IMP 4:35 PM 7/19/1974 /MORE INTERRUPT LEVEL MACROS /MACROS WHICH DO NOT ASSEMBLE CODE - LEV,LCK,RET /DECLARE CODE OR DATA TO BE AT LOGICAL LEVELS IN LIST D LEV LIST XLEV=100 IRP [Q,,LIST] R 1IF VP 0 0 XLEV-Q,XLEV=Q ENDIRP YLEV=XLEV WORD 0 0 300000+XLEV"T"100+YLEV T LEV /DECLARE AN IMPLICIT INH IN CODE D LCK LIST R 0IF P,[ IRP [Q,,LIST] R 1IF VP 0 0 Q-YLEV, [ PRINTX /REDUNDANT LCK AT / PNTNUM . PRINTX / / ] ENDIRP ] YLEV=100 IRP [Q,,LIST] R 1IF VP 0 0 YLEV-Q,YLEV=Q ENDIRP WORD 0 0 300000+XLEV"T"100+YLEV T LCK /DECLARE AN IMPLICIT ENB IN CODE D RET N R 0IF P,[ R 0IF VZ 0 0 XLEV-N, [ PRINTX /INCORRECT RET AT / PNTNUM . PRINTX / / ] ] YLEV=N WORD 0 0 300000+XLEV"T"100+YLEV T RET ^L PAGE 14 IMP,3147,IMP 4:35 PM 7/19/1974 /SOME SYSTEM PARAMETERS NH=4 /NO OF REAL HOSTS FH=4 /NO OF FAKE HOSTS TH=NH+FH BH=6 /NO OF BACK HOSTS CH=5 /NO OF PHONE LINES NIMP=64. /NO OF IMPS NACH=8 /NO OF ACK CHANNELS PER LINE R 0IF VZ DCA, BBNIMP=1 /DCA NCC IMP R 1IF VZ DCA, BBNIMP=50 /ARPA NCC IMP BBNTIP=30. /IMP NO OF BBN TIP PDP1D=300+0+BBNIMP /HOST PDP-1D AT BBN IMP PTCK=60. /NUMBER OF TICKS TO PROP ROUTI . 30SEC=47. /NUMBER OF TICKS IN 30 SECS MAXH=22. /MAX NO OF HOPS IN NET NSPD=4 /# OF DIFFERENT LINE SPDS WE HANDLE /WORDS IN BUFFER IT=1 /INPUT TIME ST=1 /SENT TIME PTRT=2 /PNTR TO TRACE BLOCK INCH=3 /INPUT CHANNEL ACKH=4 /ACKNOWLEDGE HEADER HEAD=5 /HEADER - 4 WORDS HEAD1=6 CNTL=7 HEAD2=7 HEAD3=8 MINPL=HEAD3 /LAST WORD (CHKSM) OF MIN PKT DATA=9 /BEGINNING OF DATA STORAGE BUFE=73. /PNTR TO END OF DATA /WORDS IN TRACE BLOCK TIT=1 /TRACE INPUT TIME TTT=2 /TRACE TASK TIME TST=3 /TRACE OUTPUT TIME TAT=4 /TRACE ACKNOWLEDGE TIME THED=5 /TRACE HEADER (4 WORDS) TQUE=9 /TRACE QUEUE - INPUT=LH, OUTPUT=RH TDONE=10. /TRACE DONE (100000=DONE) /WORDS IN REASSEMBLY BLOCK RID=1 /ID = MESS NO + IMP NO RMAX=2 /NO OF PCKTS MAX REAS=3 /BLOCK OF 8 PCKT PNTRS RSF=11. /NO OF PCKTS SO FAR - USED AS 9TH P-T ^L PAGE 15 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN INCH /FOR MODEM INPUT AND HOST INPUT HSTMOD=100000 /1 IF FROM HOST, 0 IF FROM MODEM INPCHN=17 /INPUT DEVICE NUMBER /AFTER TASK PROCESSING: /FOR HOST OUTPUT, THE TIME (IN TERMS OF TIMES SLOW TICKS) /WHEN PACKET WILL BE TOO OLD - 30 SECS /FOR MODEM OUTPUT, POINTER TO OUTPUT SLOT FOR THIS PACKET /BITS IN ACKH ODEVEN=100000 /CHANNEL ODD/EVEN INDICATOR QUADAC=60000 /WHICH QUADRANT WE ARE ACKING CHANUM=17400 /CHANNEL NO FOR THIS PKT ACKBTS=377 /MAX OF 8 ACKS /BITS IN HEAD (REG MESSAGE) MESSNO=177400 /MESSAGE NUMBER ONEOR8=200 /1= ONE-PACKET REQALL=100 /TRANSMIT ONLY RFNM=100 /REPLY ONLY ORDNO=60 /HIGH PRIORITY ORDER NUMBER INCTRN=10 /1= INC (ALSO SET ON RFNM FOR ', TRNREP=4 /1=TRANS, 0=REPLY GVBALL=2 /TRANSMIT ONLY ALLOC=2 /REPLY ONLY LINETS=1 /0=REGULAR PACKET /BITS IN RUTHED (ROUTING MESSAGE) SNDCOR=100000 /1=REQUEST A RELOAD RUTIMP=37400 /IMPNO TO IDENTIFY LOOPED LINES BLOCKF=100 /1=THIS IS A BLOCK STUBIT=40 /1-THIS IS MY ONLY LINE IHERDU=20 /1=ROUTING MESSAGE RECEIVED (I-H GETCOR=4 /1=DEMAND THE IMP TO RELOAD NULPKT=2 /1=NULL PKT WITH ACKS ONLY LINETS=1 /1=ROUTING MESSAGE /BITS IN HEAD1 PRIBIT=100000 /1=HIGH PRIORITY FORIMP=40000 /1=FOR IMP, 0=FOR HOST TRACE=20000 /1=TRACE THIS PACKET FOROCT=10000 /1=INTERPRET DATA AS OCTAL (TTY ONLY) PKTNO=3400 /TRANSMIT ONLY PKTN1=400 /LOW ORDER BIT OF PACKET NUMBE- RSTREQ=2000 /REPLY ONLY- REQUEST A RESET RSTREP=1000 /REPLY ONLY- RESET DONE REPDED=400 /REPLY ONLY - DEST DEAD DESTH=300 /DESTINATION HOST DESTI=77 /DESTINATION IMP DESTHI=377 /BOTH ^L PAGE 16 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN HEAD2 LSTPKT=100000 /LAST PACKET FLAG FRMIMP=40000 /1=FROM IMP, 0=FROM HOST FRMOCT=10000 /COPY OF FOROCT IHCODE=7400 /IMP-TO-HOST AND HICODE=7400 /HOST-TO-IMP CODE RSTTRN=2000 /TRANS ONLY- DO A RESET ENDBIT=1000 /1=PKT FROM HI NO IMP ON LINE SRCEH=300 /SOURCE HOST SRCEI=77 /SOURCE IMP SRCEHI=377 /BOTH /BITS IN HEAD3 LINKNO=177760 /LINK NUMBER (MESSID) SUBCOD=7 /IMP-TO-HOST SUB-CODES /BITS IN BUFE TWOQ=100000 /1 = ON TWO QUEUES (IN PPT) ^L PAGE 17 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN TMESS MESSNO=177400 /LAST MESS NO TRANSMITTED MESS1=400 /LOW ORDER BIT MSTO2=200 MSTO1=100 /2 TIMEOUT BITS FOR INC TRN ORDNO=60 /LAST ORDER NO TRANSMITTED MESBTS=17 /1= MESS ANSWERED /A,B,C,D WHERE A:T, B:T-1, C:T-2, D:T-3 /BITS IN RMESS MESSNO=177400 /OLDEST INCOMPLETE MESS NO + 3 MSRTO2=200 /2 TIMEOUT BITS FOR RESET-R MSRTO1=100 ORDNO=60 /NEXT ORDER ND WE WANT MESBTS=17 /1= MESS COMPLETE /A,B,C,D WHERE A:R, B:R-1, C:R-2, D:R-3 /BITS IN AMESS MESSNO=177400 /NEXT MESS NO TO REPLY TO MSRTO2=200 /2 TIMEOUT BITS FOR RESET-T MSRTO1=100 MSNRST=40 /1= WE ARE RESETING THIS IMP /BITS IN TALLY SRCEI=77 /FOREIGN IMP WHO ALLOCATED US 8 /BITS IN RALLY ONEOR8=200 RFNM=100 /WORDS IN PPT PPT0=0 /PACKET PTR PPT1=PPTL /HOST STAT TIME SENT /BITS IN PPT0 RETRAN=100000 /1= GOT AN ALLOCATE FOR HIM, MUST RET /PHYSICAL, LOGICAL FAKE HOST NUMBERS FHPTTY=4 FHLTTY=40000 /TELETYPE FHPDDT=5 FHLDDT=40100 /DDT FHPTRC=6 FHLTRC=40200 /TRACE FHPPRM=6 FHLPRM=40200 /PARAMETER CHANGE FHPBLK=6 FHLBLK=40200 /BLOCKS FHPSTS=7 FHLSTS=40300 /STATISTICS FHPDIS=7 FHLDIS=40300 /DISCARD ^L PAGE 18 IMP,3147,IMP 4:35 PM 7/19/1974 /WORDS IN PLT PLT0=0 PLT1=PLTL PLT2=PLTL+PLTL PLT3=PLTL+PLTL+PLTL /HOST STAT TIME SENT /BITS IN PLT0 MESSNO=177400 PLTUSE=200 /1 = THIS PLT ENTRY IN USE REQALL=100 /USEFUL FOR INC TRN PLTHST=7 /LOCAL HOST NO /BITS IN PLT1 PRIBIT=100000 FORIMP=40000 TRACE=20000 FOROCT=10000 DESTHI=377 /BITS IN PLT2 LINKNO=177760 SUBCOD=7 /IMP-TO-HOST SUB-CODES /BITS IN TSEX ACKTAB=377 /BITS IN RSEX ACKTAB=377 /IH CODES CREG=0 /REG CERRLD=400 /ERROR IN HI LEADER CERR32=0 /ERROR IN FIRST 32 BITS CSHORT=1 /LESS THAN 32 BITS IN MESSAGE CILLGL=2 /ILLEGAL HI CODE CIMPDN=1000 /IMP GOING DOWN DWN.WY=140000 /WHY GOING DOWN DWN.WN=036000 /WHEN GOING DOWN DWN.LG=001777 /HOW LONG WILL BE DOWN /BLOCKED LINK CNOP=2000 /NOP CRFNM=2400 /RFNM CHSTST=3000 /DEAD HOST STATUS CDESTD=3400 /DESTINATION DEAD CIMPD=0 /DEST IMP DEAD CHSTD=1 /DEST HOST DEAD CERRDT=4000 /ERROR IN HI DATA CINCTR=4400 /INCOMPLETE TRANS CSLOWD=0 /DEST HOST TOOK >30 SECS CLONG=1 /MORE THAN 8095 BITS CSLOWS=2 /SOURCE HOST TOOK >15 SECS CLOST=3 /LOST IN SUBNET CBLOCK=4 /SOURCE IMP TOOK > 15 SECS /GOES INTO TWDP, NOT PPT OR PLT CERROR=4 /ERROR BIT SET (BECOMES CERRDT) CDMCER=5 /LIKE MI DATA ERROR-- DMC SCREWED U CRESET=5000 /IMP-TO-HOST RESET - READY LINE FLA> ^L PAGE 19 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN HOST34 WORD (UNTIL CONFIGURATOR IS IN) H34H34=140000 /0=5M2H, 1=4M3H, 2 (MINUS) =3M4H H34VDH=1 /0= NO VDH, 1= VDH H34SAT=100 /SATELLITE FLAG H34H.B=3600 /VDH HOST BITS H34M.B=76 /VDH MODEM BITS /BITS IN HDOWN (HOST DOWN DATA) HSTDAY=160000 HSTHR=17400 HSTMIN=360 HSTWHY=17 /MACROS TO COLLECT FREE SPACE AND PRINT TABLES PAGES=32. BUFL=BUFE+1 NBUFS=0 D PAGEND A,U,E P /PAGE / PNTNUM A P / / FB=0 0 .+0'E NB=0 R 1IF VZ A+0-FB"Q"1000, [ NB=1+0+[0 0 1000"T"[A+1]+0-FB]"Q"BUFL NBUFS=NBUFS+NB] 0 0 SPAR+A-2/ FB"A"777-[NB+1]"T"1000 .TA.=FB+0+NB"T"BUFL 100004/ U FB .TA. NB .ASCII /"Z"/ 100400+NB+1/ .TB.=FB A R NB, .TB. .TB.=.TB.+0+BUFL .ASCII /"Z"/ .TA./ T PAGEND /FB IS THE ADDRESS OF THE FIRST BUFFER ON THE PAGE /NB IS THE NUMBER OF BUFFERS BETWEEN THIS PAGE AND THE NEX! /FORMAT OF SPAR: /HI 7 BITS = -(NB+1) /LO 9 BITS = LO 9 BITS OF FB ^L PAGE 20 IMP,3147,IMP 4:35 PM 7/19/1974 104/ / CONSTANTS - THESE FIRST FEW MUST NOT MOVE LEV CON 00104 023057 C DDSAI: DDSA /DDT S.A. START ADDRESS 00105 003147 C VERS: .VERS. /VERSION NUMBER DEFPLC [LOCAL IMP NUMBER - MINE] 00106 C MINE: BSS 1 /MY IMP NUMBER /TIME CONSTANTS IN TERMS OF 640 MS TICKS 00107 177721 C M30SEC: -30SEC /30 SECONDS 00110 177704 C PTICKS: -PTCK /ROUTING PROPAGATION TIME 00111 C ADDRET: BSS 1 /CHKSM ADDER RETURN 00112 100000 C SIGN: 100000 00113 000000 C ZERO: 0 00114 000001 C ONE: 1 00115 000002 C TWO: 2 00116 000003 C THREE: 3 00117 000004 C FOUR: 4 00120 000007 C SEVEN: 7 00121 177777 C MINUS1: -1 00122 177776 C MINUS2: -2 00123 177775 C MINUS3: -3 00124 177774 C MINUS4: -4 00125 177773 C MINUS5: -5 00126 177772 C MINUS6: -6 00127 177773 C MICH: -CH 00130 000004 C PLNH: NH 00131 177770 C MITH: -TH MIN100: 00132 177700 C MINIMP: -NIMP 00133 000000 C RSFLAG: 0 /FLAG TO DETECT WDT AND RELOADS /0=NONE, 1=RESTART, 2=RELOAD, 3=WDT, 4=POWER FAIL LEV VAR 00134 V PRIM: BSS 1 /PRIORITY INTERRUPT MASK /NCC OPERATIONS LOCATIONS 135-157 MUST NOT MOVE! LEV CON DEFPLC [DDT STAND ALONE ENTRY] 00135 102104 C DDT: JMP DDSAI I LEV VAR DEFPLC [TIP RESTART FLAG] 00136 000000 V TIPRSF: 0 /ASSEMBLE IN A ZERO DEFPLC [NICE-STOP AND RELOAD FLAG] 00137 V SW3FG: BSS 1 /ZERO=NICE STOP, THEN RELOAD DEFPLC [NICE-STOP AND RESTART FLAG] 00140 V NRSTF: BSS 1 /ZERO=NICE STOP, THEN RESTART DEFPLC [HOST & MODEM INTERFACE CONTROL] 00141 V HTPAR: BSS 1 /MODEM TEST FLAG DEFPLC [HOST INTERFACE TEST ENABLE AND TEST WORD] 00142 V HLNM: BSS 1 /# OF INTERFACE BEING TESTED 00143 177400 V HL2WD: 177400 /SECOND WORD OF DATA - ONLY LEFT HALF DEFPLC [VDH RESTART FLAG NVDH-- BITS 6,7,8,9 ARE HOSTS 0,1,2,3] 00144 000000 V VDHRSF: 0 /SET HOST BIT(S) TO RESTART VDH DEFPLC [SAT RESTART FLAG] 00145 000000 V SATRSF: 0 ^L PAGE 21 IMP,3147,IMP 4:35 PM 7/19/1974 PG0FIX=160 /START OF 2ND INVARIANT AREA .TA.=. 100002/ .TA. PG0FIX .ASCII /"Z"/ PG0FIX/ ZEROB: LEV VAR /START ZEROING HERE DEFPLC [NEIGHB] /USED BY [M2I,TSK,BCK] 00160 V NEIGHB: BSS CH /IMP NUMBER OF ADJACENT IMP DEFPLC [RUT] /USED BY [H2I,T.O,TSK,BCK] 00165 V RUT: BSS NIMP /ROUTE USE TABLE 00265 V RUTCHK: BSS 1 /CHECKSUM DEFPLC [SLT] /USED BY [M2I,I2M,T.O,BCK] 00266 V SLT: BSS CH /SEND LINE TEST (USED FOR RELOAD DE 1 /USED BY ALL 00273 V TIME: BSS 1 /TIME IN FAST TICKS (PERMANENT LOC.) QUEUEB: /QUEUE START POINTERS /MUST PRECEDE COUNTA /USED BY [I2H,TSK] 00274 V SHQ: BSS TH /REG HOST 00304 V SHPQ: BSS TH /PRI HOST /USED BY [I2M,T.O,TSK] 00314 V SMQ: BSS CH /REG MODEM 00321 V SMPQ: BSS CH /PRI MODEM /USED BY FRE 00326 V FREE: BSS 1 /FREE BUFFERS /USED BY [TSK,BCK] 00327 V TTF: BSS 1 /FREE TRACE BLOCKS /USED BY [T.O,TSK] 00330 V RASF: BSS 1 /FREE REASSEMBLY BLOCKS 00331 V MESSTK: BSS 1 /STACK OF COMPLETE REG MESSAGES /USED BY [M2I,H2I,TSK,BCK] 00332 V STQ: BSS 1 /TASK /USED BY [T.O,TSK,BCK] 00333 V SRQ: BSS 1 /REPLY,REROUTE,DEST DEAD /USED BY [I2H,H2I,T.O,TSK,BCK] 00334 V SHWQ: BSS NH+1 /HOST WORD 00341 V SHBQ: BSS 1 /HOST ONE WORD BUFFERS /USED BY [T.O,TSK] 00342 V SHRQ: BSS 1 /REASSEMBLY BLOCKS /USED BY [TSK,BCK] 00343 V STRQ: BSS 1 /TRACE BLOCKS /USED BY [ALL] 00344 V DIAGQ: BSS 1 /DIAG PACKET QUEUE /USED BY [M2I,BCK] 00345 V SBQ: BSS 1 /BLOCK BLOCKS ^L PAGE 22 IMP,3147,IMP 4:35 PM 7/19/1974 QUEUEE: /QUEUE END POINTERS /USED BY [I2H,TSK] 00346 V EHQ: BSS TH 00356 V EHPQ: BSS TH /USED BY [I2M,T.O,TSK] 00366 V EMQ: BSS CH 00373 V EMPQ: BSS CH 00400 V BSS 4 /SPARE /USED BY [M2I,H2I,TSK,BCK] 00404 V ETQ: BSS 1 /USED BY [T.O,TSK,BCK] 00405 V ERQ: BSS 1 /USED BY [I2H,H2I,T.O,TSK,BCK] 00406 V EHWQ: BSS NH+1 00413 V BSS 4 /SPARE /USED BY M2I 00417 V EBQ: BSS 1 QUEUEL=QUEUEE-QUEUEB /USED BY [TSK,BCK] 00420 V TTO: BSS 1 /TRACE TABLE OVERFLOW /USED BY [I2H,T.O,TSK] 00421 V TIMES: BSS 1 /TIME IN SLOW TICKS /USED BY [T.O,BCK] 00422 V SYNC: BSS 1 /TIME FOR STAT ROUTINES /USED BY [M2I,T.O] 00423 V THD: BSS 1 /CHANNEL TO MIN NO IMP /USED BY [I2M,TSK] 00424 V SIHY: BSS CH /SEND I HEARD YOU IF NOT ZERO /USED BY [T.O,TSK] 00431 V LAC: BSS CH /LINE ALIVE COUNT /USED BY [M2I,T.O.TSK] 00436 V LINE: BSS CH /LINE ALIVE-DEAD STATUS /USED BY [I2M,T.O,TSK] 00443 V NONE: BSS CH /MODEM IDLE IF ZERO /NEGATIVE= -(M30SEC-NO OF FAST TICKS SINCE LAST OUTPUT) 00450 V SNULL: BSS CH /SEND NULL PKT IF NON-ZERO /USED BY [M2I,T.O,TSK] 00455 V LUUP: BSS 1 /NON-ZERO=SOME MODEM IS LOOPED /USED BY [I2M,T.O,TSK,BCK] 00456 V LINSUP: BSS 1 /# OF LIVE LINES MINUS 1 /USED BY [H2I,TSK,BCK] TSKFLG: /TASK-HOST COMMUNICATION DEFPLC [HILO] 00457 V HILO: BSS TH /RETURN ADDRESSES WHERE HI LEFT OFF 00467 V BSS BH /0=NO ACTION, 1=NACK, 2=ACK /USED BY BCK 00475 V DDTI: BSS 1 /DDT INTERRUPT FLAG 00476 V OVRDF: BSS 1 /SS4 IS OVERRIDDEN IF THIS IS NON-Z-R /USED BY [TTY,BCK] 00477 V TTFG: BSS 1 /TTY COMMUNICATION SWITCH /USED BY [I2H,T.O,TSK,BCK] 00500 V RALLCF: BSS 1 /RALLY COMMUNICATION FLAG FOR PUT-GET ^L PAGE 23 IMP,3147,IMP 4:35 PM 7/19/1974 /USED BY MSK 00501 V IHM: BSS 1 /IH MASK 00502 V HIM: BSS 1 /HI MASK 00503 V MOM: BSS 1 /MODEM OUT MASK /USED BY [T.O,I2H(OWP)] 00504 V WDTIME: BSS 1 /SOFTWARE W.D.T. /USED BY [H2I,I2H,T.O,TSK,BCK] DEFPLC [HIHD - HOST STATUS TABLE] 00505 V HIHD: BSS TH /HOST STATUS HSTUP=0 /HOST IS UP HSTOFF=1 /READY LINE DOWN HSTTRD=2 /TARDY HSTNEX=3 /HOST DOESN'T EXIST HSTNIN=4 /HOST NOT INIT /USED BY TSK 00515 V THIS: BSS 1 /CURRENT TASK BUFFER /USED BY FRE 00516 V TWDP: BSS 1 /SECOND WORD IN TWO WORD PUT /USED BY I2H 00517 V TWDG: BSS 1 /SECOND WORD IN TWO WORD GET COUNTA: /ADDITIVE COUNTS - KEEP IN ORDER /USED BY [I2H,TSK] 00520 V NHA: BSS TH /REG HOST QUEUE 00530 V BSS TH /PRI HOST QUEUE /USED BY FRE 00540 V NFA: BSS 1 /FREE LIST /USED BY [M2I,I2M,T.O,TSK] 00541 V NSFA: BSS 1 /STORE-AND-FORWARD COUNT /USED BY [I2H,T.O,TSK] 00542 V NREA: BSS 1 /REASSEMBLY COUNT /USED BY [T.O,TSK,BCK] 00543 V NRAA: BSS 1 /REASBLOCK ALLOCATE COUNT 00544 V NALA: BSS 1 /ALLOCATE COUNT COUNTS: /SUBTRACTIVE COUNTS /USED BY [I2H,TSK] 00545 V NHS: BSS TH 00555 V BSS TH /USED BY FRE 00565 V NFS: BSS 1 /USED BY [M2I,I2M,T.O,TSK] 00566 V NSFS: BSS 1 /USED BY [I2H,T.O,TSK] 00567 V NRES: BSS 1 /USED BY [T.O,TSK,BCK] 00570 V NRAS: BSS 1 00571 V NALS: BSS 1 COUNTL=COUNTS-COUNTA /USED BY [BCK] 00572 V SATUPF: BSS 1 /SIMP UP/DOWN FLAG 00573 V DOWNMS: BSS 1 /SAVED IMP-GOING-DOWN INFO /USED BY [M2I,BCK] 00574 V NBA: BSS 1 /BLOCK QUEUE COUNT ZEROE: ZEROL=ZEROE-ZEROB ^L PAGE 24 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 00575 000004 C MINF: CH-1 /MIN NUMBER OF FREE BUFFERS 00576 C MAXS: BSS 1 /MAX NUMBER OF S/F PACKETS 00577 C MAXR: BSS 1 /MAX NUMBER OF REASSEMBLY PACKETS 00600 C MAXSI: BSS 1 /S&F LIMIT USED BY MODEM TASK 00601 C SW1: BSS MAXSTAT /ADDRESS OF STAT GATHERING SUBRS 00627 177665 C ADDL: ADDTOP+0-ADDBOT /LENGTH OF ADDER / (MAX LEGAL PACKET LENGTH) 00630 032144 C I2MTAB: I2MB0 /START ADDR OF BLOCK OF CHANNEL PNT'3 00631 032154 C I2MB1 00632 032164 C I2MB2 00633 032174 C I2MB3 00634 032204 C I2MB4 LEV VAR 00635 V I2MEND: BSS CH /END ADDRESS OF EACH BLOCK 00642 V I2MNXT: BSS CH /PKT PNTR FOR LATEST OUTPUT /0=ROUTE,NULL,OR NO OUTPUT, SIGN ON=ACK RECEIVED WHILE PKT O DEFPLC [TSEX - TRANSMIT ODD-EVEN BITS] 00647 V TSEX: BSS CH /ODD-EVEN BIT TO USE FOR NEXT OUTPUT DEFPLC [RSEX - RECEIVE ODD-EVEN BITS] 00654 V RSEX: BSS CH /COMP OF ODD-EVEN BIT WE EXPECT NEX' /USED BY [M2I,TSK] 00661 V CHFREE: BSS CH /INACTIVE SLOT BITS 00666 V RST.O: BSS 1 /PTR TO RM OUTPUT AREA 00667 V RST.F: BSS 1 / " " " FREE " 00670 V RST.N: BSS 1 / " " " NEW " 00671 V RST.C: BSS 1 / " " " COMPARE " LEV CON /ADDRESS CONSTANTS 00672 015642 C DODXA: .DODXA /POINTER TO DXA ROUTINE 00673 013255 C JAM: GAM /GIVE A WORD FROM FAKE HOST TO IMP 00674 003270 C DOZE: BKX /JAM WAIT 00675 017342 C SUCK: SUC /GET A WORD FOR FAKE HOST FROM IMP 00676 003274 C WAIT: BKW /SUCK WAIT 00677 015527 C OWP: OWPE /ENTRY INTO ONE WORD PUT 00700 005326 C FLUSHI: FLUSH /PNTR TO SUBR TO FREE BUFFER DEFPLC [HOST SIMULATOR FLAG] 00701 000000 C HSFG: 0 /NON-ZERO = START UP HOST SIMULATOR LEV VAR 00702 V MP: BSS 1 /MODEM-TO-IMP CURRENT MODEM NO 00703 V HIP: BSS 1 /HOST-TO-IMP CURRENT HOST NO 00704 V IHP: BSS 1 /IMP-TO-HOST CURRENT HOST NO LEV CON 00705 053400 C HIXX: HISP 0 X /HOST-TO-IMP INDEXED SAVE PNTR 00706 056217 C IHXX: IHSP 0 X /IMP-TO-HOST INDEXED SAVE PNTR 00707 013671 C HITSTP: HITEST /PTR TO HOST TEST ROUTINE ^L PAGE 25 IMP,3147,IMP 4:35 PM 7/19/1974 EPZCON=740 0-TH /ALLOW ROOM FOR HDOWN TABLE .TA.=. 100002/ .TA. EPZCON .ASCII /"Z"/ EPZCON/ LEV VAR /USED BY [H2I,T.O,TSK,BCK] DEFPLC [HOST-GOING-DOWN INFORMATION] 00730 V HDOWN: BSS TH LEV WDT 00740 000000 1 0 DOIT: 0 /DO A "PURE XCT" FOR MSTCLR 00741 010742 1 0 STA .+1 00742 1 0 BSS 1 00743 102740 1 0 JMP DOIT I LEV CON 00744 C VD..I: BSS 1 /PNTR TO VD INIT SET UP AT VDHLOAD ]I 00745 022551 C HLTNCC: HLTWRD /PNTR TO HALT REPORTING SUBR 00746 000000 C HLTLOC: 0 /PC OF LAST HALT 00747 C HLTA: BSS 1 /A REG AT LAST HALT 00750 C HLTX: BSS 1 /X REG AT LAST HALT 8PKTS: /NO OF PKTS PER MESSAGE CMINPL: /MIN PKT LENGTH 00751 000010 C TEN: 10 0"A"MINPL 00752 000077 C C77: 77 00753 000100 C C100: 100 00754 C BSS 9. /SOME ROOM FOR TIP CONSTANTS 00765 000000 C TPOPEN: 0 /COUNT OF NO OF OPEN CONNECTIONS ON T 00766 016241 C IHLSTP+TIPHST /MINUS IF LAST IMP-TO-TIP PKT 00767 017470 C TIPUPF: TIPSKP /SKP IF TIP UP, NOP IF TIP DOWN 00770 C TIPLNK: BSS 1 /IMP-TO-TIP DMC OUTPUT PNTR 00771 C BSS 1 /IMP-TO-TIP DMC OUTPUT END PNTR 00772 C BSS 1 /TIP-TO-IMP DMC INPUT PNTR 00773 C BSS 1 /TIP-TO-IMP DMC INPUT END PNTR 00774 000000 C 0 /(IMP-TO-TIP PKT PNTR) 00775 013362 C EMFH+TIPHST /SKP IF LAST TIP-TO-IMP PKT, ELSE NOP 00776 013172 C HITT+TIPHST /TIP-TO-IMP INTERFACE TIMER 00777 C BSS 1 ^L PAGE 26 IMP,3147,IMP 4:35 PM 7/19/1974 /WATCHDOG TIMER AND POWER FAIL ROUTINES 1000/ LEV CON 01000 177307 C ILBLTC: 0 0 1000-IMPLOZ 01001 041471 C ILBLT1: IMPLOZ 0 X 01002 077471 C ILBLT2: IMPLOZ 0 OFSET X LEV WDI 01003 003016 0 JMP WDTM2 /CYCLIC ('RANDOM') RELOAD 01004 003021 0 JMP WDLOD /DIRECTED RELOAD DEFPLC [HOST34 SWITCH] 01005 0 HOST34: BSS 1 /MEANING OF BITS FOLLOWS /MEANING OF BITS 1-2: / 00 - 5 MODEMS, 2 HOSTS / 01 - 4 MODEMS, 3 HOSTS / 10 - 3 MODEMS, 4 HOSTS /SINGLE HOST VDM /BIT 16 ON - VDH EXISTS, PAGE 36-37 NOT USED FOR BUFFERS /OLD VDH /BITS 14-15 CONTAIN HOST NUMBER /BITS 11-13 CONTAIN MODEM NUMBER (FOR VDH) /MULTI-HOST VDH /BIT 16 ON - VDH EXISTS, PAGE 35-37 NOT USED FOR BUFFERS /BITS 6-9 ARE BIT CODED TO SHOW VDH HOSTS /BIT 6=HOST 1 /BIT 7=HOST 2 /BIT 8=HOST 3 /BIT 9=HOST 4 /BITS 11-15 ARE BIT CODED TO SHOW VDH MODEMS /BIT 11=MODEM 1 /... /BIT 15=MODEM 5 /THE LEFTMOST VDH MODEM BIT WHICH IS 1 INDICATES THE / MODEM ASSOCIATED WITH THE LEFTMOST HOST BIT WHICH IS ON, / AND SO ON TO THE RIGHT /BIT 10 IS THE SATELLITE IMP BIT /LINKS TO TIP PROGRAM TIPHST=2 /THE TIP TAKES THE HOST 2 SLOT TIPBKG=40001 TIPVER=40000 /LINKS TO SIMP PROGRAM SATBCK=37700 SATT.O=37703 ^L PAGE 27 IMP,3147,IMP 4:35 PM 7/19/1974 P37LST=37700 /NO BUFFERS PAST P37LST /IMPLOD USES 37000-37500 /VDH USES 36000-37500 /OTHER USES OF PAGE 37 ARE: LEV VAR P37LST/ 37700 V P37SAT: BSS 40 /IMP-SIMP COMMUNICATION 37740 V P37HDN: BSS TH /HDOWN TABLE SAVED OVER LOADS 37750 V P37TIP: BSS 20 /IMP-TIP COMMUNICATION 37770 V P37LIN: BSS 1 /WHICH LINE TO LOAD FROM 37771 V P37TRY: BSS 1 /DIRECTED TRY COUNTER 37772 V BSS 1 /SPARE 37773 V P37RSF: BSS 1 /RSFLAG SAVED OVER LOADS 37774 V P37CRS: BSS 3 /CRASH P,A,X SAVED OVER LOADS 37777 V P37H34: BSS 1 /HOST34 SAVED OVER LOADS P1HDN=P37HDN"A"777+1000 P1LIN=P37LIN"A"777+1000 P1RSF=P37RSF"A"777+1000 P1H34=P37H34"A"777+1000 P1TRY=P37TRY"A"777+1000 1016/ CORELO=60 COREHI=37000 /CORE IMAGE IS LOADED STARTING AT CORELO /AND ENDING AT COREHI-1 OFSET=36000 /MOVE IMPLOD FROM P.1 TO P.37 LEV WDI /THIS CODE RUNS ON PAGE 1 *** 01016 073424 0 WDTM2: LDX (CODRLD) 01017 005425 0 LDA (100006) /CYCLIC ('RANDOM') RELOAD 01020 003026 0 JMP SAVLIN 01021 073426 0 WDLOD: LDX (-100.) 01022 133427 0 STX (P37TRY) I 01023 073424 0 LDX (CODRLD) 01024 017430 0 SUB (1) /DIRECTED RELOAD 01025 041577 0 ALS 1 /RENUMBERED 0-3 AND DOUBLED 01026 133431 0 SAVLIN: STX (P37RSF) I 01027 001001 0 INH ALL 01030 111432 0 STA (P37LIN) I 01031 000011 0 DXA 01032 003033 0 JMP .+1 01033 005005 0 LDA HOST34 01034 111433 0 STA (P37H34) I 01035 073434 0 LDX (-TH) /SAVE HOST-DOWN DATA 01036 044740 0 LDA HDOWN+TH X /IN 37740-37747 01037 111435 0 STA (P37HDN+TH 0 X) I 01040 024000 0 IRS 0 01041 003036 0 JMP .-3 01042 021051 0 P1GO: JST MSTCLR /DO A "MASTER-CLEAR" 01043 073000 0 MSTCAL: LDX ILBLTC /IMPLOD BLT UP TO P.37 01044 105001 0 LDA ILBLT1 I 01045 111002 0 STA ILBLT2 I /WHAT COULD BE EASIER? 01046 024000 0 IRS 0 01047 003044 0 JMP .-3 01050 103436 0 JMP (P37GO 0 OFSET) I ^L PAGE 28 IMP,3147,IMP 4:35 PM 7/19/1974 /THIS CODE RUNS ON PAGE 1 *** LEV ALL 01051 001043 0 MSTCLR: MSTCAL /CALLED BY IMPLOD 01052 073437 0 LDX (0) 01053 005440 0 LDA (-CH 0-NH) 01054 011300 0 STA MSTCT /FALL INTO MCLEAR A DEVICE CODE 01055 005441 0 LDA (STA DOIT+2) /COPY DO IT SUBROUTINE 01056 010740 0 STA DOIT 01057 010741 0 STA DOIT+1 01060 005442 0 LDA (JMP DOIT I) 01061 010743 0 STA DOIT+3 01062 030031 0 MLCINDIS /STOP MLC IN 01063 030033 0 MLCOIDIS /STOP MLC OUTIN 01064 031040 0 CLKOFF /TURN OFF IMP CLOCK 01065 030026 0 WDT /POKE WDT 01066 045155 0 MSTCL: LDA UNXP X 01067 020740 0 JST DOIT /UNPATCH 01070 020740 0 JST DOIT /TWICE(!) 01071 005443 0 LDA (-2000) 01072 011276 0 STA CLRT1 01073 025276 0 IRS CLRT1 /WAIT 01074 003073 0 JMP .-1 01075 045166 0 LDA IXP X 01076 020740 0 JST DOIT /DO CROSSPATCH 01077 045177 0 LDA INBP X 01100 141206 0 AOA 01101 011276 0 STA CLRT1 /GET PTR TO INPUT END PTR 01102 045210 0 LDA OTBP X 01103 141206 0 AOA 01104 011277 0 STA CLRT2 /GET PTR TO OUTPUT END PTR 01105 105276 0 LDA CLRT1 I /CURRENT INPUT END PTR 01106 017430 0 SUB (1) 01107 140500 0 SSM 01110 151177 0 STA INBP XI /SET INPUT FILL PTR 01111 140100 0 SSP /AND SAME FOR OUTPUT 01112 111277 0 STA CLRT2 I /IMPLIES NO CHANGE TO CORE 01113 151210 0 STA OTBP XI /AND OUTPUT FILL PTR 01114 005444 0 LDA (CLRINT) 01115 151221 0 STA INIL XI 01116 151232 0 STA OTIL XI 01117 005445 0 LDA (177757) /IF WE ARE A TIP WE MAY 01120 070042 0 AMIMLC /NEVER LET IN THE 01121 005446 0 LDA (177777) /MLC CLOCK INTERRUPT 01122 047265 0 ANA IOMSK X /GET MASK FOR THIS PAIR OF DEVICES 01123 170120 0 SMK 120 01124 045243 0 LDA INS X 01125 020740 0 JST DOIT /DO INPUT 01126 045254 0 LDA OUTS X 01127 020740 0 JST DOIT /DO OUTPUT 01130 033277 0 STX CLRT2 /MAKE SURE X IS PRESERVED(P.1?) 01131 021132 0 JST CLRINT ^L PAGE 29 IMP,3147,IMP 4:35 PM 7/19/1974 01132 000000 7 0 CLRINT: INT BCK 01133 000011 7 0 DXA /FIELD INTERRUPTS 01134 003135 7 0 JMP .+1 01135 000401 7 0 ENB BCK 01136 005447 7 LDA (-1000) /WAIT TIME 01137 011276 7 STA CLRT1 /(STARTS OVER EACH INTERRUPT) 01140 025276 7 IRS CLRT1 01141 003140 7 JMP .-1 /WAIT TILL INTERRUPTS STOP 01142 001001 7 INH ALL 01143 073277 7 0 LDX CLRT2 01144 045155 7 0 LDA UNXP X 01145 020740 7 0 JST DOIT /DO UNPATCH 01146 020740 7 0 JST DOIT /(TWICE AGAIN) 01147 140040 7 0 CRA 01150 170120 7 0 SMK 120 01151 024000 7 0 IRS 0 01152 025300 7 0 IRS MSTCT 01153 003066 7 0 JMP MSTCL 01154 103051 7 0 JMP MSTCLR I ^L PAGE 30 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 01155 030171 C UNXP: M1UNXP 01156 030172 C M2UNXP 01157 030173 C M3UNXP 01160 030174 C M4UNXP 01161 030175 C M5UNXP 01162 030470 C H1UNXP 01163 030460 C H2UNXP 01164 030450 C H3UNXP 01165 030451 C H4UNXP 01166 030371 C IXP: M1IXP 01167 030372 C M2IXP 01170 030373 C M3IXP 01171 030374 C M4IXP 01172 030375 C M5IXP 01173 030370 C H1XP 01174 030360 C H2XP 01175 030350 C H3XP 01176 030351 C H4XP 01177 000020 C INBP: M1INBP 01200 000022 C M2INBP 01201 000024 C M3INBP 01202 000026 C M4INBP 01203 000030 C M5INBP 01204 000050 C H1INBP 01205 000052 C H2INBP 01206 000056 C H3INBP 01207 000042 C H4INBP 01210 000032 C OTBP: M1OTBP 01211 000034 C M2OTBP 01212 000036 C M3OTBP 01213 000040 C M4OTBP 01214 000042 C M5OTBP 01215 000044 C H1OTBP 01216 000046 C H2OTBP 01217 000054 C H3OTBP 01220 000030 C H4OTBP 01221 000064 C INIL: M1INIL 01222 000065 C M2INIL 01223 000066 C M3INIL 01224 000067 C M4INIL 01225 000070 C M5INIL 01226 000100 C H1INIL 01227 000101 C H2INIL 01230 000075 C H3INIL 01231 000074 C H4INIL ^L PAGE 31 IMP,3147,IMP 4:35 PM 7/19/1974 01232 000071 C OTIL: M1OTIL 01233 000072 C M2OTIL 01234 000073 C M3OTIL 01235 000074 C M4OTIL 01236 000075 C M5OTIL 01237 000076 C H1OTIL 01240 000077 C H2OTIL 01241 000070 C H3OTIL 01242 000067 C H4OTIL 01243 030471 C INS: M1IN 01244 030472 C M2IN 01245 030473 C M3IN 01246 030474 C M4IN 01247 030475 C M5IN 01250 030170 C H1IN 01251 030160 C H2IN 01252 030150 C H3IN 01253 030151 C H4IN 01254 030071 C OUTS: M1OUT 01255 030072 C M2OUT 01256 030073 C M3OUT 01257 030074 C M4OUT 01260 030075 C M5OUT 01261 030270 C H1FOUT 01262 030260 C H2FOUT 01263 030250 C H3FOUT 01264 030251 C H4FOUT 01265 102000 C IOMSK: 0 0 100000"X"2000 01266 041000 C 0 0 40000"X"1000 01267 020400 C 0 0 20000"X"400 01270 010200 C 0 0 10000"X"200 01271 004100 C 0 0 4000"X"100 01272 000050 C 0 0 40"X"10 01273 000024 C 0 0 20"X"4 01274 004100 C 0 0 4000"X"100 01275 010200 C 0 0 10000"X"200 LEV VAR 01276 V CLRT1: BSS 1 /TEMPS FOR CLEAR 01277 V CLRT2: BSS 1 01300 V MSTCT: BSS 1 ^L PAGE 32 IMP,3147,IMP 4:35 PM 7/19/1974 LEV WDI /THIS CODE RUNS ON PAGE 37 *** 01301 005770 0 P37GO: LDA P1LIN /SET UP INSTRS AND POINTERS FOR LOAD 01302 101400 0 SMI /DIRECTED? 01303 003355 0 JMP LDDIR0 /YES 01304 015424 0 ADD (2) 01305 023450 0 CAS (100010) /CYCLE AROUND LINES 01306 101000 0 NOP 01307 005451 0 LDCYC: LDA (100000) 01310 011770 0 STA P1LIN 01311 007452 0 ANA (6) 01312 010000 0 LDDIR: STA 0 /DIRECTED LOAD 01313 040577 0 ARS 1 /GET LINE NUMBER 01314 015453 0 ADD (M1OUT) /MAKE OCP/SKS'S 01315 011333 0 STA LDOUT 01316 015454 0 ADD (0 0 M1IN-M1OUT) 01317 011342 0 STA LDINS 01320 015455 0 ADD (0 0 M1ERR-M1IN) 01321 011371 0 STA LDERT 01322 005456 0 LDA (SENDC 0 OFSET) /SET OUTPUT STUFF 01323 050032 0 STA M1OTBP X 01324 015457 0 ADD (4) 01325 050033 0 STA M1OTBP+1 X 01326 005460 0 LDA (CORELO 0 I) /AND INPUT STUFF 01327 050020 0 STA M1INBP X 01330 005461 0 LDA (COREHI 0 I) 01331 050021 0 STA M1INBP+1 X 01332 005462 0 LDA (-4.) /OUT-WAIT 01333 000000 0 LDOUT: 0 01334 010045 0 STA 45 01335 024044 0 IRS 44 01336 003335 0 JMP .-1 01337 024045 0 IRS 45 01340 003335 0 JMP .-3 01341 005463 0 LDA (-200.) /LONG WAIT- 5KBS LINE, 516 IMP 01342 000000 0 LDINS: 0 01343 010045 0 STA 45 01344 024044 0 LWAIT1: IRS 44 01345 003344 0 JMP LWAIT1 01346 044020 0 LDA M1INBP X /SEE IF WE HAVE MOVED ALREADY 01347 023460 0 CAS (CORELO 0 I) 01350 003360 0 JMP LWDONE /GO ERROR CHECK 01351 101000 0 NOP 01352 024045 0 IRS 45 /NO, WAIT ANOTHER LOOP 01353 003344 0 JMP LWAIT1 01354 003411 0 JMP TRYLOD /LOSE 01355 025771 0 LDDIR0: IRS P1TRY 01356 003312 0 JMP LDDIR 01357 003307 0 JMP LDCYC ^L PAGE 33 IMP,3147,IMP 4:35 PM 7/19/1974 01360 024045 0 LWDONE: IRS 45 01361 100000 0 SKP 01362 003411 0 JMP TRYLOD 01363 024044 0 IRS 44 /WAIT ANOTHER 1/2 SEC 01364 003363 0 JMP .-1 01365 062020 0 CAS M1INBP X /MOVED AGAIN? 01366 003344 0 JMP LWAIT1 /YES 01367 100000 0 SKP /NO, ITS DONE 01370 003344 0 JMP LWAIT1 01371 000000 0 LDERT: 0 /MODEM ERR? 01372 100000 0 SKP /NO 01373 003411 0 JMP TRYLOD /YUP 01374 013461 0 ERA (COREHI 0 I) /JUST CHECKING 01375 100040 0 SZE 01376 003411 0 JMP TRYLOD /OOPS 01377 005777 0 LDA P1H34 /RELOCATES TO LDA 37777 01400 111464 0 STA (HOST34) I 01401 005773 0 LDA P1RSF /RELOCATES TO LDA 37773 01402 010133 0 STA RSFLAG 01403 073434 0 LDX (-TH) 01404 045750 0 LDA P1HDN+TH X /RELOCATES TO 37750 X 01405 050740 0 STA HDOWN TH X 01406 024000 0 IRS 0 01407 003404 0 JMP .-3 01410 103465 0 JMP (INIT) I 01411 073000 0 TRYLOD: LDX ILBLTC 01412 105002 0 LDA ILBLT2 I /IMPLOD 01413 111001 0 STA ILBLT1 I /BLT 01414 024000 0 IRS 0 /DOWN TO 01415 003412 0 JMP .-3 /PAGE 1 01416 103466 0 JMP (P1GO) I ^L PAGE 34 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 01417 000000 C SENDC: 0 01420 100001 C SNDCOR 0 LINETS /SEND-CORE REQUEST 01421 000000 C 0 01422 000000 C 0 01423 100003 C -[SNDCOR 0 LINETS-4] 01424 000002 C LEV CON CONSTANTS 01425 100006 C 01426 177634 C 01427 037771 C 01430 000001 C 01431 037773 C 01432 037770 C 01433 037777 C 01434 177770 C 01435 077750 C 01436 037301 C 01437 000000 C 01440 177767 C 01441 010742 C 01442 102740 C 01443 176000 C 01444 001132 C 01445 177757 C 01446 177777 C 01447 177000 C 01450 100010 C 01451 100000 C 01452 000006 C 01453 030071 C 01454 000400 C 01455 040000 C 01456 037417 C 01457 000004 C 01460 100060 C 01461 137000 C 01462 177774 C 01463 177470 C 01464 001005 C 01465 002000 C 01466 001042 C IMPLOZ: /END OF COPY AREA ^L PAGE 35 IMP,3147,IMP 4:35 PM 7/19/1974 SWDT: 00061 001471 C SWDTIL/ SWDT /SOFTWARE W-D-T INTERRUPT CALL 01471 000000 0 SWDT/ INT WDI 01472 001001 0 INH ALL 01473 111541 0 STA (P37CRS+1) I /SAVED A 01474 005471 0 LDA SWDT /IF NOT MEM PROTECT (MAY NEED TO BE M 01475 101040 0 WDTM3: SNZ /IF ZERO (MEM PROT), MAKE SIGN 01476 004112 0 LDA SIGN 01477 111542 0 STA (P37CRS) I /SAVED P/Y 01500 133543 0 STX (P37CRS+2) I /SAVED X 01501 073544 0 LDX (CODWDT) 01502 005545 0 LDA (100006) /RANDOM 01503 003026 0 JMP SAVLIN /RELOAD WDTM: 00062 001504 0 WDTIL/ WDTM /HARDWARE W-D-T INTERRUPT CALL 01504 000000 0 WDTM/ INT WDI 01505 001001 0 INH ALL 01506 111541 0 STA (P37CRS+1) I /SAVED A 01507 005504 0 LDA WDTM /SAVED P/Y 01510 003475 0 JMP WDTM3 /JOIN SOFT WDT CODE RSTR: /POWER FAIL COMES HERE 00060 001511 0 PFIL/ RSTR 01511 000000 0 RSTR/ INT RSI 01512 030026 0 WDT /POKE WATCHDOG TIMER SO WE DON'T COLL 01513 140040 0 CRA 01514 010326 0 STA FREE /COPY SOME PROGRAM INTO PAGE 0 01515 005546 0 LDA (CODPWF) 01516 010133 0 STA RSFLAG /SO THAT RESTART WILL INDICATE POWER ; 01517 005523 0 LDA RST2A /THESE ARE FOR WHEN THE POWER COMES B 01520 010520 0 STA NHA 01521 073524 0 LDX RST3 01522 002326 0 JMP FREE /GO LOCK UP THE MACHINE 01523 002000 0 RST2A: 2000 01524 102520 0 RST3: JMP NHA I LEV CON 01525 000001 C BITTAB: 1 01526 000002 C 2 01527 000004 C 4 01530 000010 C 10 01531 000020 C 20 01532 000040 C 40 01533 000100 C 100 01534 000200 C 200 01535 000010 C MBITS: 10 01536 000004 C 4 01537 000002 C 2 01540 000001 C 1 01541 037775 C LEV CON CONSTANTS 01542 037774 C 01543 037776 C 01544 000003 C 01545 100006 C 01546 000004 C 01777 000000 C 1777/ 0 /LOC 1777 USED IN SWCH CODE /FOR MEM PROTECT TEST ^L PAGE 36 IMP,3147,IMP 4:35 PM 7/19/1974 /INITIALIZATION LEV BCK 02000 001001 7 INIT: INH INI 02001 000011 7 0 DXA 02002 003003 7 0 JMP .+1 02003 030026 7 0 WDT 02004 140040 7 0 CRA 02005 170120 7 0 SMK INTM /LOCK OUT INTERRUPTS FOR INIT 02006 010134 7 0 STA PRIM 02007 026133 7 0 IMA RSFLAG 02010 022114 7 0 CAS ONE /*FOR 02011 100000 7 0 SKP /*COMPATIBILITY 02012 004115 7 0 LDA TWO /*WITH 3121 02013 101040 7 0 SNZ /WHAT KIND OF INIT 02014 004114 7 0 LDA ONE 0"A"CODRST /JUST A RESTART 02015 111554 7 0 STA (RSFNCC) I /SET UP RSTART INDICATOR FOR NCC 02016 101400 7 0 SMI 02017 022117 7 0 CAS FOUR 0"A"CODPWF DEFHLT [IMPOSSIBLE RSFLAG] 02020 021334 7 0 JST INIHLT 02021 101000 7 0 NOP 02022 010000 7 0 STA 0 02023 143023 7 0 JMP INIJMP-1 XI 02024 002320 7 0 INIJMP: INIRST 0"A"CODRST /RESTART 02025 002030 7 0 INIRLD 0"A"CODRLD /RELOAD 02026 002030 7 0 INIWDT 0"A"CODWDT /WATCHDOG TIMER RELOAD 02027 002320 7 0 INIPWF 0"A"CODPWF /POWER FAIL AUTO RESTART INIRLD: 02030 140040 7 0 INIWDT: CRA 02031 010145 7 0 STA SATRSF 02032 010136 7 0 INIVDR: STA TIPRSF 02033 073555 7 0 LDX (-INITZN) /INIT THE ZERO STORAGE AREAS 02034 045346 7 0 INIT0: LDA INITZB+INITZN X 02035 011340 7 0 STA IT1 02036 045352 7 0 LDA INITZL+INITZN X 02037 011341 7 0 STA IT2 02040 140040 7 0 CRA /MUST PRECED QUEUE INIT 02041 111340 7 0 STA IT1 I 02042 025340 7 0 IRS IT1 02043 025341 7 0 IRS IT2 02044 003041 7 0 JMP .-3 02045 024000 7 0 IRS 0 02046 003034 7 0 JMP INIT0 02047 010144 7 0 STA VDHRSF /VDH WILL NOT RESTART 02050 010111 7 0 STA ADDRET /FOR DEBUGGING EASE 02051 010765 7 0 STA TPOPEN 02052 111556 7 0 STA (DMNDCR+3) I 02053 111557 7 0 STA (BLBUFF) I /CLEAR BLOCK BUFFER FLAG 02054 131041 7 0 RDIMPN 02055 003054 7 0 JMP .-1 02056 010106 7 0 STA MINE /INIT MINE 02057 022752 7 0 CAS C77 /VALID IMP NO? 02060 000000 7 0 HLT /YIKES! 02061 101000 7 0 NOP 02062 005560 7 0 LDA (NS1) 02063 111561 7 0 STA (NSRR) I 02064 004121 7 0 LDA MINUS1 02065 111562 7 0 STA (DMNDCR) I ^L PAGE 37 IMP,3147,IMP 4:35 PM 7/19/1974 02066 073563 7 0 LDX (-6) /READ CONFIG TABLE 02067 045152 7 0 CNFIGL: LDA CNFIGI+6 X 02070 011071 7 0 STA .+1 02071 7 0 BSS 1 /READ WORD 02072 005564 7 0 LDA (123456) /NO SKIP- BAD 02073 051144 7 0 STA CNFIGT+6 X 02074 024000 7 0 IRS 0 02075 003067 7 0 JMP CNFIGL 02076 073565 7 0 LDX (-QUEUEL) 02077 005566 7 0 LDA (QUEUEB) /INIT QUEUE PNTRS 02100 050420 7 0 INIT31: STA QUEUEE+QUEUEL X 02101 141206 7 0 AOA 02102 024000 7 0 IRS 0 02103 003100 7 0 JMP INIT31 02104 005567 7 0 LDA (ZERO) 02105 010326 7 0 STA FREE 02106 105570 7 0 LDA (HOST34) I 02107 007571 7 0 ANA (H34SAT) 02110 100040 7 0 SZE 02111 004123 7 0 LDA MINUS3 02112 111572 7 0 STA (SATNO) I 02113 105570 7 0 LDA (HOST34) I 02114 006114 7 0 ANA ONE 0"A"H34VDH 02115 010000 7 0 STA 0 02116 045472 7 0 LDA P35END X 02117 011533 7 0 STA SPAR+35-2 02120 045474 7 0 LDA P36END X 02121 011534 7 0 STA SPAR+36-2 /SET UP END OF P36 FOR VDH OR NOT 02122 045476 7 0 LDA P37END X 02123 011535 7 0 STA SPAR+37-2 /SET UP END OF P37 AND BEYOND 02124 004115 7 0 LDA TWO /START COLLECTING BUFFERS ON P2 02125 011340 7 0 STA IT1 02126 073573 7 0 LDX (-PAGES+2) 02127 045536 7 0 INIT4: LDA SPAR+PAGES-2 X 02130 040167 7 0 LRS 9. /PICK UP NUMBER OF BUFFERS ON THIS -A! /NOTE THAT NO MORE THAN 64 BUFFERS CAN BE CLAIMED PER ENTRY 02131 011341 7 0 STA IT2 02132 005340 7 0 LDA IT1 /PICK UP PAGE NUMBER 02133 025340 7 0 IRS IT1 02134 041167 7 0 LLS 9. /PICK UP START OF BUFFER STORAGE 02135 003157 7 0 JMP INIT6 LEV VAR 02136 V CNFIGT: BSS 6 LEV CON 02144 131140 C CNFIGI: CNFIG2 02145 131141 C CNFIG3 02146 131240 C CNFIG4 02147 131241 C CNFIG5 02150 131340 C CNFIG6 02151 131341 C CNFIG7 ^L PAGE 38 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI 02152 024540 7 0 INIT5: IRS NFA /COUNT ANOTHER FREE BUFFER 02153 026326 7 0 IMA FREE 02154 110326 7 0 STA FREE I /ADD TO FREE LIST 02155 004326 7 0 LDA FREE 02156 015574 7 0 ADD (BUFL) 02157 025341 7 0 INIT6: IRS IT2 /HAVE WE TAKEN ALL THE BUFFERS 02160 003152 7 0 JMP INIT5 /NO, MORE ON THIS PAGE 02161 024000 7 0 IRS 0 /YES, GO ON TO NEXT PAGE 02162 003127 7 0 JMP INIT4 02163 072326 7 0 LDX FREE /ZERO BUFES IN BUFFERS 02164 140040 7 0 INIT61: CRA 02165 050111 7 0 STA BUFE X 0"A"TWOQ 02166 044000 7 0 LDA 0 X /GET CHAIN POINTER 02167 010000 7 0 STA 0 02170 044000 7 0 LDA 0 X /NEW BUFFER POINTING TO ZERO? 02171 100040 7 0 SZE 02172 003164 7 0 JMP INIT61 /NO, CONTINUE 02173 005575 7 0 LDA (4"T"CH) 02174 010576 7 0 STA MAXS 02175 010600 7 0 STA MAXSI 02176 140407 7 0 TCA 02177 014540 7 0 ADD NFA 02200 014751 7 0 ADD 8PKTS 02201 040575 7 0 ARS 3 02202 041575 7 0 ALS 3 02203 014115 7 0 ADD TWO 02204 010577 7 0 STA MAXR 02205 072122 7 0 LDX MINUS2 /INIT THE FREE REAS+TRACE LISTS 02206 045354 7 0 INIT7: LDA INIBLK+2 X 02207 011340 7 0 STA IT1 02210 045356 7 0 LDA INIQUE+2 X 02211 151360 7 0 STA INISTR+2 XI 02212 011341 7 0 STA IT2 02213 055362 7 0 INIT8: ADD INILNG+2 X 02214 111341 7 0 STA IT2 I 02215 011341 7 0 STA IT2 02216 025340 7 0 IRS IT1 02217 003213 7 0 JMP INIT8 02220 140040 7 0 CRA 02221 111341 7 0 STA IT2 I 02222 024000 7 0 IRS 0 02223 003206 7 0 JMP INIT7 02224 005576 7 0 LDA (TALLY) 02225 111577 7 0 STA (TALLYI) I 02226 073600 7 0 LDX (0 0-2"T"FH-BH) 02227 045554 7 0 INIT13: LDA TTOI+FH+FH+BH X 02230 111601 7 0 STA (DZTB+FH+FH+BH 0 X) I 02231 024000 7 0 IRS 0 02232 003227 7 0 JMP INIT13 02233 005602 7 0 LDA (JMP HITSTP I) 02234 111603 7 0 STA (HERSAV) I /INITIALIZE HOST TEST CONTROL ^L PAGE 39 IMP,3147,IMP 4:35 PM 7/19/1974 02235 072124 7 0 LDX MINUS4 0"A"NH /INIT THE VDH-USED OCP'S 02236 045306 7 0 INIT21: LDA HOCPIN+NH X 02237 111604 7 0 STA (IHOT+NH X) I /HXROUT 02240 015571 7 0 ADD (0 0 H1IN-H1ROUT) 02241 111605 7 0 STA (HIN+NH X) I /HXIN 02242 015571 7 0 ADD (0 0 H1FOUT-H1IN) 02243 111606 7 0 STA (IHED+NH X) I /HXFOUT 02244 015607 7 0 ADD (0 0 H1ENAB-H1FOUT) 02245 111610 7 0 STA (HENABT+NH X) I /HXENAB 02246 015611 7 0 ADD (0 0 H1ERR-H1ENAB) 02247 111612 7 0 STA (HER+NH X) I /HXERR 02250 015571 7 0 ADD (0 0 H1RDY-H1ERR) 02251 111613 7 0 STA (SKST+NH X) I /HXRDY 02252 015571 7 0 ADD (0 0 H1EOM-H1RDY) 02253 111614 7 0 STA (EMIT+NH X) I /HXEOM 02254 105615 7 0 LDA (INBP+CH+NH X) I 02255 111616 7 0 STA (HIB1+NH X) I /USED BY VDH 02256 141206 7 0 AOA 02257 111617 7 0 STA (HIB2+NH X) I /USED BY VDH 02260 004117 7 0 LDA FOUR 0"A"HSTNIN /MARK HOSTS 02261 050511 7 0 STA HIHD+NH X /NOT INIT 02262 050515 7 0 STA HIHD+NH+NH X /FAKE HOSTS TOO 02263 024000 7 0 IRS 0 02264 003236 7 0 JMP INIT21 02265 073620 7 0 LDX (M1INIL+0-M5OTIL-1) /INIT MODEM INT. ENTRANCE' 02266 045320 7 0 INIT22: LDA M1LIN+10. X 02267 050076 7 0 STA M1INIL+10. X 02270 024000 7 0 IRS 0 02271 003266 7 0 JMP INIT22 02272 073621 7 0 LDX (-MAXITB) 02273 045472 7 0 INIT1: LDA ITBTIP+MAXITB X 02274 070042 7 0 AMIMLC 02275 045442 7 0 LDA ITBIMP+MAXITB X 02276 151412 7 0 STA ITBLOC+MAXITB XI /INIT TIP-HOST3 LOCS 02277 024000 7 0 IRS 0 02300 003273 7 0 JMP INIT1 02301 103622 7 0 JMP (INITNP) I LEV CON 02302 030070 C HOCPIN: H1ROUT /INITIAL HOST OCP'S 02303 030060 C H2ROUT 02304 030050 C H3ROUT 02305 030051 C H4ROUT 02306 010056 C M1LIN: M2I1 02307 010075 C M2I2 02310 010114 C M2I3 02311 010133 C M2I4 02312 010152 C M2I5 02313 012133 C I2M1 02314 012127 C I2M2 02315 012123 C I2M3 02316 012117 C I2M4 02317 012113 C I2M5 ^L PAGE 40 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI INIPWF: 02320 004000 7 0 INIRST: LDA VDHUPF /PWR FAIL OR PLAIN RESTART 02321 101040 7 0 SNZ /NEED RESTARTING? 02322 003325 7 0 JMP INJVDH /NO 02323 105570 7 0 LDA (HOST34) I /COPY VDH HOST BITS FROM 02324 007623 7 0 ANA (H34H.B) /HOST34 TO VDH RESTART FLAG 02325 010144 7 0 INJVDH: STA VDHRSF /THEN RESTART VDH IF IT WAS UP 02326 004145 7 0 LDA SATRSF 02327 140100 7 0 SSP 02330 010145 7 0 STA SATRSF 02331 004136 7 0 LDA TIPRSF 02332 140100 7 0 SSP /0=>0, -=>+ 02333 003032 7 0 JMP INIVDR 02334 000000 7 0 INIHLT: 0 02335 120745 7 0 JST HLTNCC I 02336 005624 7 0 LDA (CODRLD) 02337 103334 7 0 JMP INIHLT I LEV VAR 02340 V IT1: BSS 1 02341 V IT2: BSS 1 LEV CON 02342 000160 C INITZB: ZEROB 02343 032144 C I2MB0 02344 032144 C TABZB 02345 030421 C PARAMT 02346 177363 C INITZL: -ZEROL 02347 177730 C -[CH"T"NACH] 02350 175661 C -TABZL 02351 177740 C -PARAML INITZN=INITZL-0-INITZB 02352 177765 C INIBLK: -NREAB+0+1 02353 177771 C -NTRCB+0+1 02354 034043 C INIQUE: REASQ 02355 032245 C TRACEQ 02356 000330 C INISTR: RASF 02357 000327 C TTF 02360 000014 C INILNG: REASL 02361 000013 C TRACEL 02362 C ITBLOC: BSS MAXITB 02412 C ITBIMP: BSS MAXITB 02442 C ITBTIP: BSS MAXITB ^L PAGE 41 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 02472 170004 C P35END: P35FB"A"777-[P35NB+1]"T"1000 02473 177777 C -1 02474 170012 C P36END: P36FB"A"777-[P36NB+1]"T"1000 02475 177777 C -1 02476 172020 C P37END: P37FB"A"777-[P37NB+1]"T"1000 02477 177777 C -1 /VDH USES 36000-37500 SO ALL OF P36+P37+LAST BUFFER ON P35 /STOLEN 02500 C SPAR: BSS PAGES-2 /TABLE OF ENDS-OF-PAGES /FORMAT IS HI 7 BITS = -(NUMBER OF BUFFS ON PAGE+1) /LO 9 BITS = STARTING ADDRESS OF FIRST BUFFER /FAKE HOST OUTPUT (JAM) SLOTS IN DZTB 02536 025154 C TTOI: TTYI /FH0 (TTY) OUTPUT TO IMP FROM FH 02537 023113 C DOTI /FH1 (DDT) OUTPUT TO IMP FROM FH 02540 030464 C BTRE /FH2 (TRACE) OUTPUT TO IMP FROM FH 02541 030001 C STTI /FH3 (STAT) OUTPUT TO IMP FROM FH /FAKE HOST INPUT (SUCK) SLOTS IN WTTB 02542 025345 C TTO0 /FH0 (TTY) INPUT FROM IMP TO FH 02543 024052 C DIN4 /FH1 (DDT) INPUT FROM IMP TO FH 02544 030346 C BEST0 /FH2 (PARAM CHANGE) INPUT FROM IMP ]O 02545 030461 C STXY /FH3 (DISCARD) INPUT FROM IMP TO FH /BACK HOST SLOTS IN SLTB 02546 004075 C BACK0 /BH0 (SEND RFNMS+ALLOCATES) 02547 004221 C BACK1 /BH1 (SEND INCOMPLETE TRANSMISSIONS) 02550 004336 C BACK2 /BH2 (SEND GIVE BACKS) 02551 004412 C BACK3 /BH3 (RETRANSMIT FROM PPT) 02552 004421 C BACK4 /BH4 (SEND OUT-OF-RANGE REPLIES) / (REROUTE DEAD LINE STUFF) / (RETURN DESTINATION DEADS) 02553 004430 C BACK5 ^L PAGE 42 IMP,3147,IMP 4:35 PM 7/19/1974 02554 003656 C LEV CON CONSTANTS 02555 177774 C 02556 011245 C 02557 027220 C 02560 003541 C 02561 003537 C 02562 011242 C 02563 177772 C 02564 123456 C 02565 177726 C 02566 000274 C 02567 000113 C 02570 001005 C 02571 000100 C 02572 020675 C 02573 177742 C 02574 000112 C 02575 000024 C 02576 032375 C 02577 015266 C 02600 177762 C 02601 043522 C 02602 102707 C 02603 022421 C 02604 057055 C 02605 053247 C 02606 056166 C 02607 000300 C 02610 056410 C 02611 037300 C 02612 053237 C 02613 057472 C 02614 053354 C 02615 041210 C 02616 053216 C 02617 053226 C 02620 177766 C 02621 177750 C 02622 003067 C 02623 003600 C 02624 000002 C 02500 175631 C PAGEND 2,UNCON,4 ^L PAGE 43 IMP,3147,IMP 4:35 PM 7/19/1974 /CONSTANTS, VARIABLE FOR NEW INIT PAGE LEV VAR 03055 V IT3: BSS 1 LEV CON 03056 010063 C M2IIT: M2I1A 03057 010102 C M2I2A 03060 010121 C M2I3A 03061 010140 C M2I4A 03062 010157 C M2I5A 03063 C HIM.I: TIPDEF 177660,177664 02362 003063 C 02412 177660 C 02442 177664 C 03064 C HIM.I4: TIPDEF 177460,177464 02363 003064 C 02413 177460 C 02443 177464 C 03065 C IHM.I: TIPDEF 173600,173624 02364 003065 C 02414 173600 C 02444 173624 C 03066 C IHM.I4: TIPDEF 163400,163424 02365 003066 C 02415 163400 C 02445 163424 C ^L PAGE 44 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI 03067 105657 7 0 INITNP: LDA (HOST34) I /THIS IS <>0 IF 3 OR 4 HOSTS 03070 141044 7 0 CAR 0"A"H34H34 /=0 FOR 5 MODEMS, 2 HOSTS />0 FOR 4 MODEMS, 3 HOSTS /<0 FOR 3 MODEMS, 4 HOSTS 03071 072132 7 0 LDX MIN100 /5M,2H 03072 100040 7 0 SZE 03073 073065 7 0 LDX IHM.I /4M,3H 03074 100400 7 0 SPL 03075 073066 7 0 LDX IHM.I4 /3M,4H 03076 032501 7 0 STX IHM /* 03077 073660 7 0 LDX (-20) /5M,2H 03100 100040 7 0 SZE 03101 073063 7 0 LDX HIM.I /4M,3H 03102 100400 7 0 SPL 03103 073064 7 0 LDX HIM.I4 /3M,4H 03104 032502 7 0 STX HIM /* 03105 072116 7 0 LDX THREE 0"A"HSTNEX 03106 101400 7 0 SMI 03107 032510 7 0 STX HIHD+3 /3H OR 2H 03110 101040 7 0 SNZ 03111 032507 7 0 STX HIHD+2 /2H 03112 073661 7 0 LDX (-4000) /5M,2H 03113 100040 7 0 SZE 03114 073662 7 0 LDX (-10000) /4M,3H 03115 100400 7 0 SPL 03116 073663 7 0 LDX (-20000) /3M,4H 03117 032503 7 0 STX MOM /* 03120 072113 7 0 LDX ZERO /5M,2H 03121 100040 7 0 SZE 03122 072121 7 0 LDX MINUS1 /4M,3H 03123 100400 7 0 SPL 03124 072122 7 0 LDX MINUS2 /3M,4H 03125 033055 7 0 STX IT3 /* 03126 073664 7 0 LDX (M2I5) /5M 03127 100040 7 0 SZE 03130 073665 7 0 LDX (IH2E) /4M OR 3M 03131 032070 7 0 STX M5INIL /* 03132 073666 7 0 LDX (M2I4) /5M OR 4M 03133 100400 7 0 SPL 03134 073667 7 0 LDX (IH3E) /3M 03135 032067 7 0 STX M4INIL /* 03136 073670 7 0 LDX (I2M5) /5M 03137 100040 7 0 SZE 03140 073671 7 0 LDX (HI2E) /4M OR 3M 03141 032075 7 0 STX M5OTIL /* 03142 073672 7 0 LDX (I2M4) /5M OR 4M 03143 100400 7 0 SPL 03144 073673 7 0 LDX (HI3E) /3M 03145 032074 7 0 STX M4OTIL /* 03146 073674 7 0 LDX (PFIL-0-TASKIL-1) 03147 140040 7 0 CRA /ZERO INTERRUPT ENTRANCES IN CASE 03150 150104 7 0 STA TASKIL+1 XI /OF RELOAD FROM EXA IMP 03151 024000 7 0 IRS 0 03152 003150 7 0 JMP .-2 03153 005443 7 0 LDA KNOP /SET UP VDH CALLS TO NON-VDH 03154 011455 7 0 STA VDH2 03155 111675 7 0 STA (VDH3) I ^L PAGE 45 IMP,3147,IMP 4:35 PM 7/19/1974 03156 121676 7 0 JST (RUTINI) I /INIT ROUTING TABLES 03157 121677 7 0 JST (TOI) I /INITIALIZE TIMEOUT 03160 131040 7 0 RDCLOK 03161 003160 7 0 JMP .-1 /WAIT 3 SECONDS- RESETT, RESETR RUN 03162 101400 7 0 SMI 03163 003160 7 0 JMP .-3 /BEFORE STARTING INTERRUPT PROGRAMS 03164 121700 7 0 JST (SWCH) I /FIRE OFF A TRBL REPT NOW - FOLLOWS T /START MODEM INPUT - MUST FOLLOW TOI 03165 073701 7 0 LDX (-[2"T"CH]) 03166 005702 7 0 LDA (I 0 1) 03167 050032 7 0 INIT17: STA M1INBP+2"T"CH X 03170 024000 7 0 IRS 0 03171 003167 7 0 JMP INIT17 03172 005703 7 0 LDA (M1IN) 03173 011217 7 0 STA INIT19 /DETERMINE WHICH MODEMS BELONG TO THE IMP 03174 072127 7 0 LDX MICH 03175 005704 7 0 INIT18: LDA (JMP+0+1000+M2II"A"777) 03176 151063 7 0 STA M2IIT+CH XI /FIRST IN WILL BE DISCARDED 03177 140040 7 0 CRA /INITIALIZE IMPMOD TO BE MODEM 03200 111705 7 0 STA (IMPMOD+CH 0 X) I 03201 005706 7 0 LDA (LGR 0 03202 014000 7 0 ADD 0 03203 011205 7 0 STA . 2 03204 105657 7 0 LDA (HOST34) I 03205 7 0 BSS 1 03206 100100 7 0 SLZ 03207 003221 7 0 JMP INIT20 /STOLEN BY VDH 03210 004000 7 0 LDA 0 03211 023055 7 0 CAS IT3 /0=5MODS, -1=4MODS, -2=3MODS 03212 003222 7 0 JMP INIT23 /STOLEN BY HOST 03213 003222 7 0 JMP INIT23 /DITTO 03214 123707 7 0 CAS (SATNO) I 03215 003223 7 0 JMP INIT24 03216 003223 7 0 JMP INIT24 /STOLEN BY SATELLITE 03217 7 0 INIT19: BSS 1 /STARTUP MODEM INS 03220 003224 7 0 JMP INIT25 /0 = IMP MODEM 03221 125705 7 0 INIT20: IRS (IMPMOD+CH 0 X) I /3 = VDH USES MODEM 03222 125705 7 0 INIT23: IRS (IMPMOD+CH 0 X) I /2 = HOST USES MODEM 03223 125705 7 0 INIT24: IRS (IMPMOD+CH 0 X) I /1 = SIMP USES MODEM 03224 025217 7 0 INIT25: IRS INIT19 03225 024000 7 0 IRS 0 03226 003175 7 0 JMP INIT18 ^L PAGE 46 IMP,3147,IMP 4:35 PM 7/19/1974 /START THE HOST/IMP AND IMP/HOST ROUTINES 03227 004131 7 0 LDA MITH 03230 011055 7 0 STA IT3 /COUNTING ON X=0 AT THIS POINT 03231 004000 7 0 INIT15: LDA 0 /SET UP NOMINAL HOST MAP 03232 141240 7 0 ICR 03233 012000 7 0 ERA 0 /IN BOTH HALVES 03234 111710 7 0 STA (HSTMAP 0 X) I 03235 121711 7 0 JST (IHIN) I /** MUST BE IN THIS ORDER 03236 121712 7 0 JST (HIST) I /** 03237 024000 7 0 IRS 0 03240 025055 7 0 IRS IT3 03241 003231 7 0 JMP INIT15 03242 004106 7 0 LDA MINE /INIT OUR OWN 03243 121713 7 0 JST (RESETT) I /MESS NO'S 03244 121714 7 0 JST (RESETR) I 03245 004121 7 0 LDA MINUS1 03246 010137 7 0 STA SW3FG 03247 010140 7 0 STA NRSTF 03250 010134 7 0 STA PRIM 03251 170120 7 0 SMK INTM 03252 000401 7 0 ENB BCK 03253 131040 7 RDCLOK /ALLOW ALL T/O PROGRAMS TO RUN 03254 003253 7 JMP .-1 03255 100400 7 SPL 03256 003253 7 JMP .-3 /BEFORE BACK BEGINS /FALL INTO BACKST ----- ^L PAGE 47 IMP,3147,IMP 4:35 PM 7/19/1974 /BACKGROUND LOOP LEV BCK 03257 005715 7 BACKST: LDA (BBNIMP) /1ST REPORT MUST GO TO NCC 03260 111716 7 BACK: STA (TRBD) I 03261 005717 7 LDA (-FH) 03262 011477 7 STA BT1 03263 005477 7 BKV: LDA BT1 03264 017717 7 SUB (-FH) 03265 010000 7 STA 0 03266 011501 7 STA FAKENO /FOR DEBUG 03267 143504 7 JMP DZTB XI /RESUME WHERE JAM LEFT OFF 03270 000000 7 BKX: 0 /JAM WAIT (DOZE) 03271 005270 7 LDA BKX 03272 051504 7 STA DZTB X 03273 143510 7 JMP WTTB XI /RESUME WHERE SUCK LEFT OFF 03274 000000 7 BKW: 0 /SUCK WAIT (WAIT) 03275 005274 7 LDA BKW 03276 051510 7 STA WTTB X 03277 000401 7 ENB BCK 03300 025477 7 IRS BT1 03301 003263 7 JMP BKV 03302 005720 7 LDA (-BH) 03303 011477 7 STA BT1 03304 072113 7 LDX ZERO 03305 133721 7 BKY: STX (BACKNO) I 03306 001001 7 INH ALL DEFHLT [BACK HOST WAKE-UP IN EXA MODE] 03307 121722 7 0 JST (CHKDXA) I 03310 143514 7 0 JMP SLTB XI /RESUME WHERE BACK HOSTS LEFT OFF ^L PAGE 48 IMP,3147,IMP 4:35 PM 7/19/1974 RET BCK 03311 000000 7 BKZ: 0 /BACK HOST WAIT (SLEEP) 03312 000401 7 ENB BCK 03313 173721 7 LDX (BACKNO) I 03314 005311 7 LDA BKZ 03315 051514 7 STA SLTB X 03316 024000 7 IRS 0 03317 025477 7 IRS BT1 03320 003305 7 JMP BKY 03321 140040 7 CRA 03322 100004 7 SR3 03323 010137 7 STA SW3FG /DO NICE STOP IF SS3 03324 004137 7 LDA SW3FG /REMOTE NICE-STOP+RELOAD 03325 100400 7 SPL 03326 004140 7 LDA NRSTF 03327 101400 7 SMI 03330 021535 7 JST NSRT /NICE-STOP IF SW3FG>=0 OR NRSTF>=0 03331 131041 7 RDIMPN 03332 003331 7 JMP .-1 03333 026106 7 IMA MINE 03334 012106 7 ERA MINE 03335 001001 7 INH ALL 03336 100040 7 0 SZE /HAS OUR IMP NO CHANGED LATELY? DEFHLT [IMP NUMBER WRONG -- SERIOUS FAILURE!] 03337 021617 7 0 JST BAKHLT 03340 004121 7 0 LDA MINUS1 03341 026134 7 0 IMA PRIM 03342 012134 7 0 ERA PRIM 03343 100040 7 0 SZE /IS PRIM IN BACKGROUND? DEFHLT [PRIM IS WRONG -- SERIOUS FAILURE] 03344 021617 7 0 JST BAKHLT 03345 004121 7 0 LDA MINUS1 /CHECK LINSUP 03346 011477 7 0 STA BT1 /...WHICH SHOULD BE ONE LESS THAN 03347 072127 7 0 LDX MICH /...THE NUMBER OF LIVE LINES 03350 044443 7 0 BKL: LDA LINE+CH X /LINE UP? 03351 101040 7 0 SNZ 03352 025477 7 0 IRS BT1 /YES 03353 101000 7 0 NOP 03354 024000 7 0 IRS 0 03355 003350 7 0 JMP BKL 03356 005477 7 0 LDA BT1 /CORRECT CURRENT VALUE 03357 026456 7 0 IMA LINSUP 03360 012456 7 0 ERA LINSUP 03361 100040 7 0 SZE /WAS IT CORRECT? DEFHLT [LINSUP WRONG -- CROCKY FAILURE] 03362 021617 7 0 JST BAKHLT 03363 000401 7 0 ENB BCK ^L PAGE 49 IMP,3147,IMP 4:35 PM 7/19/1974 03364 004273 7 LDA TIME 03365 027502 7 IMA WDTOLD /IS T.O RUNNING? 03366 013502 7 ERA WDTOLD 03367 100040 7 SZE 03370 003374 7 JMP BKT /TIME CHANGED...YES 03371 025503 7 IRS WDTBAK 03372 003376 7 JMP BKU /DON'T GIVE UP YET RELOAD [BACKGROUND SAW TIMEOUT STOP] 03373 120061 7 JST SWDTIL I 03374 005723 7 BKT: LDA (-10000.) /GIVE T.O A LONG TIME TO RUN 03375 011503 7 STA WDTBAK /AND RESET BACK-WDT 03376 000401 7 BKU: ENB BCK 03377 7 TIPDEF [JMP BKS],[LDA TIPRSF] 02366 003377 7 02416 003421 7 02446 004136 7 03400 101040 7 SNZ 03401 003412 7 JMP BKR 03402 072114 7 LDX ONE 0"A"HSTOFF 03403 101400 7 SMI 03404 032507 7 STX HIHD+TIPHST 03405 000013 7 EXA 03406 121724 7 JST (TIPBKG) I 03407 001001 7 INH ALL 03410 120672 7 0 JST DODXA I RET BCK 03411 003421 7 JMP BKS 03412 004063 7 BKR: LDA STDIL 03413 010101 7 STA H2INIL 03414 010077 7 STA H2OTIL 03415 005443 7 LDA KNOP 03416 110767 7 STA TIPUPF I 03417 004117 7 LDA FOUR 0"A"HSTNIN 03420 010507 7 STA HIHD+TIPHST 03421 073725 7 BKS: LDX (-LITN) /LIGHTS DISPLAY 03422 145535 7 LIT2: LDA LITT+LITN XI 03423 100040 7 SZE 03424 140500 7 SSM 03425 041277 7 LLR 1 03426 024000 7 IRS 0 03427 003422 7 JMP LIT2 03430 140040 7 CRA 03431 040267 7 LRR LITN 03432 012455 7 ERA LUUP 03433 011523 7 STA LITS 03434 001001 7 INH ALL 03435 000013 7 0 EXA 03436 105522 7 0 LDA LITP I 03437 120672 7 0 JST DODXA I RET BCK 03440 100020 7 SR1 03441 004121 7 LDA MINUS1 /LAMP TEST 03442 170026 7 LITES 03443 101000 7 KNOP: NOP 03444 000201 7 IAB 03445 025500 7 IRS BACKX /KEEP COUNT OF BACK LOOPS 03446 101000 7 NOP PAGE 50 IMP,3147,IMP 4:35 PM 7/19/1974 03447 105657 7 LDA (HOST34) I 03450 101100 7 SLN 03451 003456 7 JMP VDH2A /NO VDH TO RESTART 03452 004144 7 LDA VDHRSF /CHECK AND RESET VDH RESTART FLAG 03453 100040 7 SZE 03454 120744 7 JST VD..I I /YES, RESTART 03455 7 VDH2: BSS 1 /VDH BACKGROUND CALL 03456 004235 7 VDH2A: LDA RUT+BBNIMP 03457 101400 7 SMI 0"A"RUTDED /IS NCC IMP UP? 03460 003257 7 JMP BACKST /YES 03461 072132 7 LDX MINIMP /MUST FIND RANDOM IMP UP 03462 044265 7 BKWD1: LDA RUT+NIMP X 03463 101400 7 SMI 0"A"RUTDED /DEAD? 03464 101040 7 SNZ 0"A"RUTUS 03465 003472 7 JMP BKWD2 /DON'T USE OURSELVES EXCEPT AS A LAST 03466 004000 7 LDA 0 /GOT ONE 03467 016132 7 SUB MINIMP 03470 013726 7 BKWD3: ERA (FHLDIS) /TO DISCARD 03471 003260 7 JMP BACK 03472 024000 7 BKWD2: IRS 0 03473 003462 7 JMP BKWD1 03474 004106 7 LDA MINE /EVERYONE IS DEAD, USE OURSELVES 03475 003470 7 JMP BKWD3 03476 7 VDH2.: BSS 1 ^L PAGE 51 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 03477 V BT1: BSS 1 03500 V BACKX: BSS 1 /NO OF BACK LOOPS 03501 V FAKENO: BSS 1 03502 V WDTOLD: BSS 1 /OLD TIME READING 03503 V WDTBAK: BSS 1 /BACK WDT TIMER /THESE 3 TABLES MUST STAY IN ORDER!! DEFPLC [DZTB - GOES WITH JAM] 03504 V DZTB: BSS FH DEFPLC [WTTB - GOES WITH SUCK] 03510 V WTTB: BSS FH DEFPLC [SLTB - GOES WITH SLEEP (BACK HOSTS)] 03514 V SLTB: BSS BH DEFPLC [LIGHT DISPLAY POINTER AND NOMINAL DISPLAY WORD] 03522 003523 V LITP: LITS 03523 V LITS: BSS 1 /LIGHTS TABLE AND CONDITION INDICATED BY LIT LIGHT LEV CON 03524 000436 C LITT: LINE /1 - 100000 1ST CHANNEL DEAD 03525 000437 C LINE+1 /2 - 40000 2ND CHANNEL DEAD 03526 000440 C LINE+2 /3 - 20000 3RD CHANNEL DEAD 03527 000441 C LINE+3 /4 - 10000 4TH CHANNEL DEAD 03530 000505 C HIHD /5 - 4000 HOST 1 DEAD 03531 000506 C HIHD+1 /6 - 2000 HOST 2 DEAD 03532 000507 C HIHD+2 /7 - 1000 HOST 3 DEAD 03533 000510 C HIHD+3 /8 - 400 HOST 4 DEAD 03534 000765 C TPOPEN /9 - 200 TIP HAS OPEN CONNECTIONS LITN=0 0 .-LITT ^L PAGE 52 IMP,3147,IMP 4:35 PM 7/19/1974 / NICE STOP ROUTINE LEV BCK 03535 000000 7 NSRT: 0 03536 103537 7 JMP NSRR I 03537 000000 7 NSRR: 0 03540 103535 7 JMP NSRT I 03541 004137 7 NS1: LDA SW3FG /SET UP RSFNCC WORD FOR NICE STOP 03542 006120 7 ANA SEVEN 03543 041675 7 ALR 3 03544 012140 7 ERA NRSTF 03545 007727 7 ANA (177770) 03546 012140 7 ERA NRSTF 03547 012752 7 ERA C77 03550 041675 7 ALR 3 03551 101004 7 SS3 /DO NOT SET RSFNCC FOR SS3 03552 011656 7 STA RSFNCC 03553 004573 7 LDA DOWNMS /SEND IMP-GNG-DWN-IN-30-SECS 03554 007730 7 ANA (DWN.WY 0 DWN.LG) /AND WHY AND HOW LONG 03555 021623 7 JST IHDOWN LCK FRE 03556 000401 7 0 ENB BCK 03557 021641 7 JST NSWT /WAIT 5 SECONDS 03560 004117 7 LDA FOUR 0"A"HSTNIN 03561 010505 7 STA HIHD /STOP NET TRAFFIC TO AND FROM HOSTS 03562 010506 7 STA HIHD+1 /MARK HOSTS DEAD, IMP NOT UP 03563 010507 7 STA HIHD+2 03564 010510 7 STA HIHD+3 03565 021641 7 JST NSWT /WAIT 5 SECONDS 03566 004121 7 LDA MINUS1 /STOP STORE-AND-FORWARD TRAFFIC BY 03567 010600 7 STA MAXSI /MAKING MAXS COPY SMALL 03570 021641 7 JST NSWT /WAIT 5 SECONDS 03571 004127 7 LDA MICH 03572 011654 7 STA BT2 /STOP EXCHANGE OF ROUTING AND ACKNO-L 03573 072113 7 LDX ZERO /TURNING OFF ALL LINES 03574 001001 7 INH [M2I,T.O,TSK] 03575 121731 7 0 NS3: JST (KILLIN) I /KILL LINE AT ONCE 03576 024000 7 0 IRS 0 03577 025654 7 0 IRS BT2 03600 003575 7 0 JMP NS3 03601 000401 7 0 ENB BCK 03602 021641 7 JST NSWT /WAIT 5 SECONDS 03603 021641 7 JST NSWT /WAIT UNTIL SLT DELAY OVER 03604 004140 7 LDA NRSTF 03605 101400 7 SMI /RESTART? 03606 103732 7 JMP (INIT) I /GO TO 2000 03607 004137 7 LDA SW3FG /FOR VDH OR NON-VDH 03610 101040 7 SNZ 03611 004112 7 LDA SIGN /IF WAS ZERO, MAKE IT RECYCLE LINES 03612 101004 7 SS3 /STOP OR RELOAD? 03613 103733 7 JMP (WDLOD) I 03614 030026 7 WDT 03615 000000 7 HLT 03616 003614 7 JMP .-2 ^L PAGE 53 IMP,3147,IMP 4:35 PM 7/19/1974 LCK ALL 03617 000000 7 0 BAKHLT: 0 03620 120745 7 0 JST HLTNCC I 03621 000401 7 0 ENB BCK /THIS TRAP RESTARTS BACKGROUND 03622 003257 7 JMP BACKST 03623 000000 7 IHDOWN: 0 /NOTIFY ALL HOSTS OF IMP DOWN 03624 001001 7 INH FRE 03625 010516 7 0 STA TWDP 03626 004131 7 0 LDA MITH 03627 011654 7 0 STA BT2 03630 005654 7 0 NS2: LDA BT2 03631 016131 7 0 SUB MITH 03632 010000 7 0 STA 0 03633 005734 7 0 LDA (CIMPDN) /IMP GOING DOWN MESSAGE 03634 120677 7 0 JST OWP I 03635 101000 7 0 NOP 03636 025654 7 0 IRS BT2 03637 003630 7 0 JMP NS2 03640 103623 7 0 JMP IHDOWN I 03641 000000 7 0 NSWT: 0 /WAIT 5 SECONDS 03642 030026 7 0 WDT 03643 004273 7 0 LDA TIME 03644 011655 7 0 STA NSTM 03645 021537 7 0 NS5: JST NSRR 03646 004273 7 0 LDA TIME 03647 017655 7 0 SUB NSTM 03650 141044 7 0 CAR /WAIT FIVE SECONDS 03651 101040 7 0 SNZ 03652 003645 7 0 JMP NS5 03653 103641 7 0 JMP NSWT I LEV VAR 03654 V BT2: BSS 1 /TEMP 03655 V NSTM: BSS 1 /FOR STOP 03656 V RSFNCC: BSS 1 /RESTART FLAGE FOR NCC -FORMAT FOLL-W /RSFNCC HAS THE FORM 000XYZ WHERE X,Y,Z ARE OCTAL DIGITS /X IS RELOAD REQUEST INDICATOR, X=0 NO REQUEST /X=7 RANDOM RELOAD, X=6 RELOAD FOR LINE 1, X=5 LINE 2, X=4 L /X=3 LINE 4, X=2 LINE 5 /Y IS RESTART REQUEST INDICATOR, Y=0 NO REQUEST /Y=7 RESTART AT 2000 - NON-VDH, X=6 RESTART AT 2001 - VDH /Z IS PROGRAM INITIALIZATION INDICATOR, Z=0 NO INIT /Z=1 RESTARTED, Z=2 RELOADED, Z=3 WATCH DOG TIMER RELOADED /Z=4 POWER FAIL RESTARTED CODRST=1 CODRLD=2 CODWDT=3 CODPWF=4 ^L PAGE 54 IMP,3147,IMP 4:35 PM 7/19/1974 03657 001005 C LEV CON CONSTANTS 03660 177760 C 03661 174000 C 03662 170000 C 03663 160000 C 03664 010152 C 03665 016052 C 03666 010133 C 03667 016044 C 03670 012113 C 03671 013115 C 03672 012117 C 03673 013107 C 03674 177754 C 03675 021123 C 03676 026053 C 03677 020155 C 03700 022461 C 03701 177766 C 03702 100001 C 03703 030471 C 03704 003171 C 03705 052712 C 03706 040500 C 03707 020675 C 03710 054300 C 03711 016261 C 03712 013323 C 03713 021132 C 03714 021306 C 03715 000050 C 03716 030443 C 03717 177774 C 03720 177772 C 03721 004456 C 03722 015507 C 03723 154360 C 03724 040001 C 03725 177767 C 03726 040300 C 03727 177770 C 03730 141777 C 03731 011125 C 03732 002000 C 03733 001021 C 03734 001000 C 02501 176745 C PAGEND 3,UNCON,4 ^L PAGE 55 IMP,3147,IMP 4:35 PM 7/19/1974 /SEND OFF ALLOCATED RFNMS AND ALLOCATES AND RFNMS LEV BCK 04057 140040 7 B0AA: CRA 04060 011172 7 STA BALLOC 04061 121455 7 B0A: JST SLEEP I 04062 021435 7 B0B: JST GETFRE LCK FRE /GET A BUFFER FOR OUR ALLOC 04063 003061 7 0 JMP B0A /NOT NOW, WAIT 04064 005170 7 0 LDA BRALLY 0"A"DESTI /GET OUR RALLY 04065 007643 7 0 ANA (DESTI) 04066 050006 7 0 STA HEAD1 X /SAVE IN HEADER 04067 013170 7 0 ERA BRALLY 0"A"[MESSNO 0 ONEOR8 RFNM] 04070 013172 7 0 ERA BALLOC 0"A"TRNREP /SET ALLOC BIT OR NOT 04071 013173 7 0 ERA BREPIN 0"A"INCTRN 04072 050005 7 0 STA HEAD X 04073 021473 7 0 JST GIVTSK RET BCK /GIVE RALLY TO TASK 04074 121455 7 B0C: JST SLEEP I 04075 021531 7 BACK0: JST RALLYG /GET NEXT RALLY TO GO 04076 003074 7 JMP B0C 04077 100000 7 SKP /GOOD RETURN 04100 003074 7 JMP B0C /GOT A DESTINATION DEAD, SENT ALREADY 04101 011170 7 STA BRALLY /SAVE RALLY 04102 007644 7 ANA (ONEOR8 0 RFNM) 04103 013644 7 ERA (ONEOR8 0 RFNM) 04104 101040 7 SNZ /IS THIS JUST A 1-PKT RFNM? 04105 003057 7 JMP B0AA /YES, NO ALLOC NECESSARY 04106 005170 7 LDA BRALLY 04107 007645 7 ANA (ONEOR8) 04110 100040 7 SZE 04111 005646 7 LDA (-7) 0"A"8PKTS 04112 014751 7 ADD 8PKTS 04113 011172 7 STA BALLOC 04114 004273 7 LDA TIME 04115 011171 7 STA BALLTO 04116 121455 7 B0D: JST SLEEP I 04117 004273 7 LDA TIME 04120 017171 7 SUB BALLTO 04121 017647 7 SUB (40.) 04122 100400 7 SPL /HAVE WE BEEN WAITING 1 SEC? 04123 003130 7 JMP B0F /NOT YET 04124 005170 7 LDA BRALLY 04125 007650 7 ANA (RFNM) 04126 100040 7 SZE /ARE WE SENDING AN ALLOCATED RFNM? 04127 003057 7 JMP B0AA /YES, SEND IT OFF WITHOUT ALLOC ^L PAGE 56 IMP,3147,IMP 4:35 PM 7/19/1974 04130 001001 7 B0F: INH [T.O,TSK] 04131 004544 7 5 LDA NALA 04132 016571 7 5 SUB NALS 04133 014542 7 5 ADD NREA 04134 016567 7 5 SUB NRES 04135 015172 7 5 ADD BALLOC 04136 141206 7 5 AOA /IMPORTANT! CF B0H 04137 022577 7 5 CAS MAXR /CAN WE HAVE THE ROOM? 04140 003116 7 5 JMP B0D /NOT YET 04141 003163 7 5 JMP B0H /THIS ALLOC WILL USE IT ALL UP 04142 005172 7 5 LDA BALLOC 04143 012751 7 5 ERA 8PKTS /1 OR 8? 04144 100040 7 5 SZE 04145 003154 7 5 JMP B0G /1 PKT--DON'T CARE ABT REASBLOCKS 04146 004543 7 5 LDA NRAA 04147 016570 7 5 SUB NRAS 04150 017651 7 5 SUB (NREAB) /ALL IN USE OR ALLOCATED? 04151 101400 7 5 SMI 04152 003116 7 5 JMP B0D /YES 04153 024543 7 5 IRS NRAA /NO, TAKE ONE 04154 004115 7 5 B0G: LDA TWO 0"A"ALLOC 04155 027172 7 5 IMA BALLOC /SET ALLOC BIT IN OUR REPLY 04156 014544 7 5 ADD NALA 04157 010544 7 5 STA NALA /YES, SO TAKE IT 04160 004107 7 5 LDA M30SEC /30 SECS BEFORE WE ARE IDLE 04161 011174 7 5 STA SNTALL 04162 003062 7 5 JMP B0B /THIS CODE PREVENTS LOCKUP OF OUT-OF-ORDER /8PKT MESSAGES HOLDING ALL STORAGE 04163 005172 7 5 B0H: LDA BALLOC /IS THIS A 1PKT 04164 012751 7 5 ERA 8PKTS /THAT USES UP LAST 04165 100040 7 5 SZE /BUFFER? 04166 003154 7 5 JMP B0G /YES, HE CAN TAKE IT 04167 003116 7 5 JMP B0D /8PKT MESS CANNOT HAVE IT LEV VAR 04170 V BRALLY: BSS 1 /OUR ALLOCATE TO MAKE 04171 V BALLTO: BSS 1 /TIME WE STARTED TO TRY FOR ALLOC 04172 V BALLOC: BSS 1 /NO OF BUFFERS WE NEED TO ALLOC 04173 V BREPIN: BSS 1 /BIT ON IF INC TRN REPLY 04174 V SNTALL: BSS 1 /TIMER FOR GARBAGE COLLECTION OF ALLO ^L PAGE 57 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /SEND OFF INCOMPLETE TRANSMISSIONS IF ANY TMESS NO OVERDUE LCK [H2I,T.O,TSK] 04175 121652 7 4 B1A: JST (PPTGET) I /GET THE PPT ENTRY 04176 003301 7 4 JMP B1F /NOT IN PPT OR PLT, SO A GVB OR RST 04177 044111 7 4 LDA BUFE X 04200 140100 7 4 SSP 0"A"TWOQ 04201 011316 7 4 STA BACK1T /SAVE PTR TO PKT CKSUM 04202 044010 7 4 LDA HEAD3 X 04203 007653 7 4 ANA (0 0 177777"X"SUBCOD) 04204 012116 7 4 ERA THREE 0"A"CLOST /MARK MESS AS LOST IN NET 04205 066010 7 4 IMA HEAD3 X 04206 056010 7 4 SUB HEAD3 X 04207 115316 7 4 ADD BACK1T I /ADJUST CKSUM 04210 111316 7 4 STA BACK1T I 04211 005645 7 4 LDA (ONEOR8) /MARK AS INC TRN FOR ONE-PKT 04212 073466 7 4 B1B: LDX HOLD+1 /GET OUR PKT 04213 052005 7 4 ERA HEAD X 04214 050005 7 4 STA HEAD X 04215 021473 7 4 B1B1: JST GIVTSK RET BCK /AND GIVE TO TASK 04216 005315 7 B1C: LDA BACK1P /LOOK AT NEXT TMESS ENTRY 04217 141206 7 AOA 04220 023654 7 CAS (TMESS 0 NIMP) 04221 005654 7 BACK1: LDA (TMESS 0 NIMP) /SHOULDNT HAPPEN 04222 014132 7 ADD MINIMP /WRAPAROUND TMESS TABLE 04223 011315 7 STA BACK1P /SAVE PNTR TO TMESS 04224 121455 7 B1D: JST SLEEP I 04225 001001 7 INH [H2I,T.O,TSK] 04226 105315 7 4 LDA BACK1P I 04227 007644 7 4 ANA (MSTO1 0 MSTO2) 04230 013644 7 4 ERA (MSTO1 0 MSTO2) 04231 100040 7 4 SZE /HAS THIS MESS NO TIMED OUT? 04232 003216 7 4 JMP B1C /NO 04233 011316 7 4 STA BACK1T /INIT TEMP COUNTER, USED LATER 04234 005315 7 4 LDA BACK1P 04235 017655 7 4 SUB (TMESS) 04236 010000 7 4 STA 0 /IMP NO IN X 04237 105315 7 4 LDA BACK1P I DEFHLT [SENDING INC? TO IMP=X, MESSNO=A] 04240 021241 7 4 JST .+1 04241 000000 7 4 0 04242 120745 7 4 JST HLTNCC I 04243 021435 7 4 JST GETFRE /YES, GET A BUFFER FOR OUR INC TRN 04244 003224 7 4 JMP B1D /NOT NOW, TRY AGAIN 04245 033466 7 4 STX HOLD+1 04246 005315 7 4 LDA BACK1P 04247 017655 7 4 SUB (TMESS) /SET UP OUR DEST 04250 050006 7 4 STA HEAD1 X 0"A"DESTI 04251 105315 7 4 LDA BACK1P I 04252 007656 7 4 ANA (0 0 177777"X"MSTO1"X"MSTO2) 04253 111315 7 4 STA BACK1P I /CLEAR TIMEOUT BITS 04254 025316 7 4 B1E: IRS BACK1T /1 MEANS OLDEST, 2 NEXT OLDEST ... 04255 040677 7 4 ARR 1 04256 100400 7 4 SPL /IS THE OLDEST POSSIBLE MESS INC? 04257 003254 7 4 JMP B1E /NO, COUNT ONE MORE BACKWARDS ^L PAGE 58 IMP,3147,IMP 4:35 PM 7/19/1974 04260 005316 7 4 LDA BACK1T 04261 141240 7 4 ICR /GET NO OF MESS NOS TO ROLL BACK 04262 115315 7 4 ADD BACK1P I 04263 141044 7 4 CAR 0"A"MESSNO 04264 015657 7 4 ADD (INCTRN 0 -2000 TRNREP 0"A"LINETS) 04265 050005 7 4 STA HEAD X /SET UP INC TRN WITH RIGHT MESS NO 04266 141044 7 4 CAR 0"A"MESSNO 04267 052006 7 4 ERA HEAD1 X /SET UP MESS NO + IMP NO 04270 121660 7 4 JST (PLTGET) I /GET THE PLT ENTRY 04271 003175 7 4 JMP B1A /NOT IN PLT, TRY PPT 04272 044030 7 4 LDA PLT2 X 04273 007653 7 4 ANA (0 0 177777"X"SUBCOD) 04274 012116 7 4 ERA THREE 0"A"CLOST /MARK MESS AS LOST IN NET 04275 050030 7 4 STA PLT2 X 04276 044000 7 4 LDA PLT0 X 04277 007650 7 4 ANA (REQALL) 04300 003212 7 4 JMP B1B 04301 073315 7 4 B1F: LDX BACK1P 04302 105661 7 4 LDA (AMESS-0-TMESS X) I 04303 007662 7 4 ANA (MSNRST) /ARE WE IN RESET MODE? 04304 100040 7 4 SZE 04305 003310 7 4 JMP B1G /YES, SEND THE RESET 04306 005663 7 4 LDA (GVBALL 0 ONEOR8) /NO 04307 003212 7 4 JMP B1B /MAKE UP AN INC GVB 04310 073466 7 4 B1G: LDX HOLD+1 /MAKE A RESET 04311 005664 7 4 LDA (RSTTRN) /BY TURNING ON BIT 04312 052007 7 4 ERA HEAD2 X /IN INC TRN 04313 050007 7 4 STA HEAD2 X 04314 003215 7 4 JMP B1B1 LEV VAR 04315 V BACK1P: BSS 1 /PNTR TO TMESS ENTRY 04316 V BACK1T: BSS 1 /COUNT OF NO OF MESS NOS TO GO BACK ^L PAGE 59 IMP,3147,IMP 4:35 PM 7/19/1974 /SEND OFF GIVE BACKS WHEN ALLOCATES TIME OUT LEV BCK 04317 121455 7 B2A: JST SLEEP I 04320 021435 7 B2B: JST GETFRE LCK FRE /GET A BUFFER FOR OUR GIV'C 04321 003317 7 0 JMP B2A /NOT NOW, WAIT 04322 033467 7 0 STX HOLD+2 04323 121455 7 0 B2C: JST SLEEP I RET BCK 04324 073467 7 LDX HOLD+2 04325 005350 7 LDA BACK2D 0"A"PRIBIT /GET OUR DEST 04326 050006 7 STA HEAD1 X /PUT IN PKT (NOT PRI) 04327 001001 7 INH H2I 04330 121665 7 4 JST (MESGET) I 04331 003323 7 4 JMP B2C /CANT HAVE MESS NO 04332 013663 7 4 ERA (GVBALL 0 ONEOR8 0"A"LINETS"A"INCTRN) 04333 050005 7 4 STA HEAD X /SET UP GVB 04334 021473 7 4 JST GIVTSK RET BCK /GIVE THE GVB TO TASK 04335 121455 7 B2D: JST SLEEP I 04336 001001 7 BACK2: INH [H2I,T.O] 04337 004126 7 4 LDA MINUS6 /ALLOCATES TIME OUT IN 125 MS 04340 115666 7 4 ADD (TALLYC) I 04341 100400 7 4 SPL /IS ALLOC TOO OLD? 04342 003335 7 4 JMP B2D /NOT USED UP YET 04343 105667 7 4 LDA (TALLY) I /GET TOP TALLY ENTRY 04344 121670 7 4 JST (TALLYG) I /PULL IT OFF 04345 003335 7 4 JMP B2D /NOT THERE? 04346 011350 7 4 STA BACK2D /SAVE OUR DEST 04347 003320 7 4 JMP B2B LEV VAR 04350 V BACK2D: BSS 1 /DEST OF GIVE BACK ^L PAGE 60 IMP,3147,IMP 4:35 PM 7/19/1974 /DO RETRANSMISSSIONS OF REQ1 IN PPT THAT HAS GOT ALL1 IN R'+ LEV BCK 04351 011470 7 B3A: STA HOLD+3 04352 121455 7 B3B: JST SLEEP I 04353 001001 7 INH T.O /PREVENT RESET FROM GRABBING IT 04354 105416 7 5 LDA BACK3P I 04355 023470 7 5 CAS HOLD+3 /HAS PPT BEEN CHANGED FROM UNDER US' 04356 003403 7 5 JMP B3C /YES, FORGET IT 04357 100000 7 5 SKP 04360 003403 7 5 JMP B3C 04361 010000 7 5 STA 0 04362 044111 7 5 LDA BUFE X 04363 100400 7 5 SPL 0"A"TWOQ /IS THIS PKT STILL ON 2 QUEUES? 04364 003352 7 5 JMP B3B /YES, NEED TO DELAY WHILE ACK IS PROC 04365 011417 7 5 STA B3T1 /TEMP CKSUM POINTER 04366 140500 7 5 SSM 0"A"TWOQ 04367 050111 7 5 STA BUFE X /PPT ENTRY GOES ON 2 QUEUES AGAIN 04370 044005 7 5 LDA HEAD X 04371 007671 7 5 ANA (0 0 177777"X"REQALL) 04372 050005 7 5 STA HEAD X /TURN OFF REQ BIT, KEEP SAME MESS NO 04373 105416 7 5 LDA BACK3P I 04374 140100 7 5 SSP 0"A"RETRAN 04375 111416 7 5 STA BACK3P I 04376 105417 7 5 LDA B3T1 I 04377 015650 7 5 ADD (REQALL) /NOW ADJUST CHECKSUM 04400 111417 7 5 STA B3T1 I 04401 140040 7 5 CRA /GIVTSK WON'T MAKE CHECKSUM 04402 021473 7 5 JST GIVTSK RET BCK /GIVE TO TASK 04403 121455 7 B3C: JST SLEEP I 04404 105416 7 LDA BACK3P I /LOOK AT NEXT PPT ENTRY 04405 100400 7 SPL 0"A"RETRAN /MUST WE RETRANSMIT IT? 04406 003351 7 JMP B3A /YES 04407 005416 7 LDA BACK3P 04410 141206 7 AOA /GET NEXT PPT SLOT 04411 023672 7 CAS (PPT+0+PPTL) 04412 005672 7 BACK3: LDA (PPT+0+PPTL) /SHOULDNT HAPPEN 04413 017673 7 SUB (PPTL) /WRAPAROUND PPT 04414 011416 7 STA BACK3P /SAVE PPT SLOT 04415 003403 7 JMP B3C LEV VAR 04416 V BACK3P: BSS 1 /PNTR TO PPT ENTRY 04417 V B3T1: BSS 1 /PNTR TO CHKSM IN PKT ^L PAGE 61 IMP,3147,IMP 4:35 PM 7/19/1974 /SEND OFF PACKETS FROM A LINE WHICH JUST DIED - REROUTE /SEND OFF DESTINATION DEAD MESSAGES TO SOURCE LEV BCK 04420 121455 7 B4A: JST SLEEP I 04421 073674 7 BACK4: LDX (SRQ) /GET NEXT REPLY 04422 001001 7 INH [I2H,T.O] 04423 121675 7 3 JST (GETQ) I 04424 003420 7 3 JMP B4A /NONE, SO SLEEP 04425 140040 7 3 CRA /TELL GIVTSK NOT TO CKSUM 04426 021473 7 3 JST GIVTSK RET BCK /GIVE THE REPLY TO TASK 04427 003420 7 JMP B4A /SATELLITE BACK HOST LEV BCK 04430 004145 7 BACK5: LDA SATRSF 04431 7 B5A: SATDEF SZE 02367 004431 7 02417 100040 7 02447 100040 7 04432 121676 7 JST (SATBCK) I 04433 121455 7 JST SLEEP I 04434 003430 7 JMP BACK5 LEV [VDB,BCK] 04435 000000 7 GETFRE: 0 /GET A FREE BUFFER FOR A BACK HOST 04436 001001 7 INH FRE /MUST WORK IN EXA MODE FOR SIMP!!! 04437 004540 7 0 LDA NFA 04440 016565 7 0 SUB NFS 04441 016575 7 0 SUB MINF 04442 100400 7 0 SPL 04443 103435 7 0 JMP GETFRE I /NOT ENOUGH BUFFERS FOR MODEM INPUT 04444 121677 7 0 JST (GFREE) I 04445 103435 7 0 JMP GETFRE I 04446 010000 7 0 STA 0 04447 014751 7 0 ADD CMINPL 0"A"TWOQ 04450 050111 7 0 STA BUFE X 04451 004106 7 0 LDA MINE 04452 050007 7 0 STA HEAD2 X /SET UP SOURCE IMP 04453 025435 7 0 IRS GETFRE /SKIP=SUCCESS 04454 103435 7 0 JMP GETFRE I LEV CON 04455 003311 C SLEEP: BKZ /BACK HOST WAIT LEV VAR 04456 V BACKNO: BSS 1 /NO OF BACK HOST CURRENTLY ACTIVE 04457 V GIVTST: BSS BH /RETURN ADDRS FOR BACK HOSTS GIVING T 04465 V HOLD: BSS BH /PKT PNTRS FOR BACK HOSTS GIVING TO ; ^L PAGE 62 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 04473 000000 7 GIVTSK: 0 04474 101040 7 SNZ 04475 003504 7 JMP GIVT0 /NOT GENERATING A CHECKSUM 04476 004117 7 LDA FOUR 0"A"[MINPL-ACKH] 04477 056004 7 SUB ACKH X 04500 056005 7 SUB HEAD X 04501 056006 7 SUB HEAD1 X 04502 056007 7 SUB HEAD2 X 04503 050010 7 STA HEAD3 X /THERE'S THE CHECKSUM 04504 005456 7 GIVT0: LDA BACKNO 0"A"INPCHN 04505 015700 7 ADD (HSTMOD 0 TH) 04506 050003 7 STA INCH X /SET UP INPUT CHANNEL 04507 004000 7 LDA 0 04510 073456 7 LDX BACKNO 04511 140100 7 SSP 0"A"RETRAN /NEC FOR BACK3 04512 051465 7 STA HOLD X /SAVE PKT PNTR 04513 005473 7 LDA GIVTSK 04514 051457 7 STA GIVTST X /SAVE RETURN ADDR 04515 045465 7 GIVT1: LDA HOLD X 04516 001001 7 INH M2I 04517 110404 7 0 STA ETQ I 04520 010404 7 0 STA ETQ /PUT ON TASK QUEUE 04521 030041 7 0 TASK /POKE TASK 04522 121455 7 0 JST SLEEP I RET BCK 04523 140040 7 CRA 04524 066467 7 IMA TSKFLG+TH X 04525 101100 7 SLN /TASK REFUSED IT 04526 143457 7 JMP GIVTST XI /TASK TOOK IT 04527 121455 7 JST SLEEP I /WAIT ONE BACKGROUND LOOP 04530 003515 7 JMP GIVT1 /THEN TRY AGAIN ^L PAGE 63 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 04531 000000 7 RALLYG: 0 /GET AN ENTRY IN RALLY TABLE 04532 140040 7 CRA 04533 026500 7 IMA RALLCF 04534 101040 7 SNZ /ANY ALLOCATES TO GO? 04535 103531 7 JMP RALLYG I /NO 04536 140040 7 CRA 04537 011640 7 STA RALLYX 04540 005701 7 LDA (MESS1) 04541 011642 7 STA RALADD /PRESET TABLE INCREMENTER 04542 073641 7 LDX RALTRY 04543 105702 7 RALLG: LDA (RALLY+NIMP 0 X) I 04544 101040 7 SNZ /ANY RALLY ENTRIES TO GO? 04545 003625 7 JMP RALLG0 /NO 04546 025640 7 IRS RALLYX /COUNT SOMETHING THERE 04547 105703 7 LDA (AMESS+NIMP 0 X) I 04550 141140 7 ICL 04551 006116 7 ANA THREE /GET NEXT MESS NO TO USE 04552 041576 7 ALS 2 04553 140407 7 TCA 04554 015704 7 ADD (ALR 0 04555 011561 7 STA RALGS1 04556 013705 7 ERA (1000) 04557 011572 7 STA RALGS2 04560 005706 7 LDA (17) 04561 7 RALGS1: BSS 1 /SHIFT MASK OVER 04562 001001 7 INH [I2H,TSK] 04563 107702 7 3 ANA (RALLY+NIMP 0 X) I 04564 101040 7 3 SNZ /ANYTHING IN NEXT SLOT TO GO? 04565 003625 7 3 JMP RALLG0 /NO 04566 113702 7 3 ERA (RALLY+NIMP 0 X) I 04567 127702 7 3 IMA (RALLY+NIMP 0 X) I /TURN OFF BITS 04570 113702 7 3 ERA (RALLY+NIMP 0 X) I 04571 000401 7 3 ENB BCK 04572 7 RALGS2: BSS 1 /SHIFT BACK THE BITS IN QUESTION 04573 023707 7 CAS (13) 04574 025531 7 IRS RALLYG /DEST DEAD, DOUBLE SKIP 04575 101000 7 NOP 04576 011173 7 STA BREPIN 04577 007673 7 ANA (INCTRN) 04600 027173 7 IMA BREPIN /GET INCTRN BIT AND SAVE IT 04601 006116 7 ANA THREE /EXTRACT THEM 04602 012115 7 ERA TWO 0"A"[ONEOR8 0 RFNM] 04603 101040 7 SNZ /IS THIS A REQ FOR 1 04604 011642 7 STA RALADD /YES, DO NOT BUMP MESSAGE NO 04605 012115 7 ERA TWO /RESTORE A 04606 041672 7 ALR 6 0"A"[ONEOR8 0 RFNM] 04607 011641 7 STA RALTRY /TEMP 04610 105703 7 LDA (AMESS+NIMP X) I 04611 015642 7 ADD RALADD /BUMP NEXT MESS TO REPLY TO 04612 127703 7 IMA (AMESS+NIMP X) I 04613 141044 7 CAR 0"A"MESSNO /GET THIS MESSNO 04614 013641 7 ERA RALTRY /PUT IN TYPE BITS 04615 014000 7 ADD 0 04616 016132 7 SUB MINIMP /OR IN MESS NO AND IMP NO ^L PAGE 64 IMP,3147,IMP 4:35 PM 7/19/1974 04617 024000 7 IRS 0 04620 100000 7 SKP 04621 072132 7 LDX MINIMP 04622 033641 7 STX RALTRY 04623 025531 7 IRS RALLYG 04624 003636 7 JMP RALLEX 04625 000401 7 RALLG0: ENB BCK 04626 024000 7 IRS 0 04627 003543 7 JMP RALLG 04630 004132 7 LDA MINIMP 04631 027641 7 IMA RALTRY 04632 013641 7 ERA RALTRY 04633 101040 7 SNZ /DID WE MAKE A COMPLETE PASS? 04634 005640 7 LDA RALLYX 04635 100040 7 SZE /AND DID WE FIND NOTHING AT ALL? 04636 010500 7 RALLEX: STA RALLCF /IF NO FOR EITHER, MUST COME BACK AGA 04637 103531 7 JMP RALLYG I /IF YES FOR BOTH, LEAVE RALLCF ALONE /IF ENTRIES WERE PUT DURING OUR PASS, RALLCF WILL HAVE BEE- LEV VAR 04640 V RALLYX: BSS 1 /NON-ZERO = SOMETHING IN RALLY 04641 V RALTRY: BSS 1 04642 V RALADD: BSS 1 /INCREMENT TO AMESS = 0 OR MESS1 ^L PAGE 65 IMP,3147,IMP 4:35 PM 7/19/1974 04643 000077 C LEV CON CONSTANTS 04644 000300 C 04645 000200 C 04646 177771 C 04647 000050 C 04650 000100 C 04651 000014 C 04652 015144 C 04653 177770 C 04654 032505 C 04655 032405 C 04656 177477 C 04657 176014 C 04660 015322 C 04661 040200 C 04662 000040 C 04663 000202 C 04664 002000 C 04665 015272 C 04666 020310 C 04667 032375 C 04670 015225 C 04671 177677 C 04672 033345 C 04673 000010 C 04674 000333 C 04675 015646 C 04676 037700 C 04677 010241 C 04700 100010 C 04701 000400 C 04702 073005 C 04703 072705 C 04704 041700 C 04705 001000 C 04706 000017 C 04707 000013 C 02502 176715 C PAGEND 4,UNCON,-5 ^L PAGE 66 IMP,3147,IMP 4:35 PM 7/19/1974 TSKI: LEV TSK /TASK INTERRUPT 00103 005027 6 TASKIL/ TSKI 05027 000000 6 0 TSKI/ INT TSK /TASK INTERRUPT COMES HERE 05030 011060 6 0 STA TA1 05031 033061 6 0 STX TX1 05032 000011 6 0 DXA 05033 003034 6 0 JMP .+1 05034 000043 6 0 INK 05035 011062 6 0 STA TK1 05036 004122 6 0 TSKMSK: LDA MINUS2 05037 170120 6 0 SMK INTM 05040 010134 6 0 STA PRIM 05041 000401 6 0 TSKL: ENB TSK /ALL TASKS RETURN HERE 05042 004332 6 LDA STQ 05043 001001 6 INH MSK 05044 100040 6 0 SZE /IS TASK QUEUE EMPTY? 05045 003106 6 0 JMP TSKM /GOT A TASK 05046 140401 6 0 CMA /YES, TURN ON ALL BITS IN PRTY INT A 05047 010134 6 0 STA PRIM 05050 170120 6 0 SMK INTM /RESTORE REGISTERS AND KEYS 05051 073061 6 0 LDX TX1 05052 005062 6 0 LDA TK1 05053 000013 6 0 EXA 05054 171020 6 0 OTK 05055 005060 6 0 LDA TA1 05056 000401 6 0 ENB TSK 05057 103027 6 JMP TSKI I LEV VAR 05060 V TA1: BSS 1 /TEMP A 05061 V TX1: BSS 1 /TEMP X 05062 V TK1: BSS 1 /TEMP KEYS 05063 V TASKIN: BSS 1 /INPUT CHAN - SIGN ON=FROM HOST 05064 V ACKBIT: BSS 1 /BIT PNTR FOR OUR ACK 05065 V OURL: BSS 1 /OUR ROUTE LOGICAL CHANNEL (0-CH-1) 05066 V OURP: BSS 1 /OUR ROUTE PHYSICAL CHANNEL (0-CH-1. 05067 V MODMAP: BSS CH /MAP LOGICAL CHANNEL TO PHYSICAL CH-N 05074 V I2MSLT: BSS 1 /THE CHANNEL PNTR WE NEED 05075 V I2MBIT: BSS 1 /ODD-EVEN BIT POSITION FOR THIS PKT 05076 V ACKCH: BSS 1 /TRANSMIT ACK CHANNEL FOR THIS PKT 05077 V ACKP: BSS 1 /PNTR TO RELEVANT RSEX ENTRY 05100 V SWPCHT: BSS 1 /TEMP FOR SWPCHK ^L PAGE 67 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK MSK 05101 005636 6 0 TSKM2: LDA (STQ) /CLEAN UP Q PNTRS 05102 010404 6 0 STA ETQ 05103 003116 6 0 JMP TSKM1 LEV TSK 05104 105077 6 TSKM3: LDA ACKP I 05105 003142 6 JMP TSKM4 LEV TSK LCK MSK 05106 010000 6 0 TSKM: STA 0 /TASK 05107 010515 6 0 STA THIS /STORE BUFF ADDR IN X AND THIS 05110 140040 6 0 CRA 05111 050002 6 0 STA PTRT X /CLEAR TRACE PTR 05112 066000 6 0 IMA 0 X /CLEAR BUFF CHAIN PNTR AND LOAD IN A 05113 010332 6 0 STA STQ /STORE NEW ADDR IN HEAD OF Q 05114 101040 6 0 SNZ /WAS THIS LAST ENTRY IN Q? 05115 003101 6 0 JMP TSKM2 /YES 05116 000401 6 0 TSKM1: ENB TSK /X HAS BUFF ADDR 05117 044003 6 LDA INCH X 05120 011063 6 STA TASKIN /SAVE INPUT CHANNEL 05121 100400 6 SPL 0"A"HSTMOD /FROM HOST? 05122 003145 6 JMP TSKFOR /YES 05123 015637 6 ADD (RSEX) /NO,FROM MODEM, MUST DUPLICATE-DETECT 05124 011077 6 STA ACKP 05125 044005 6 LDA HEAD X 05126 100100 6 SLZ 0"A"LINETS /IS THIS A ROUTING MESSAGE? 05127 003342 6 JMP TSKRUT /YES 05130 044004 6 LDA ACKH X 05131 141340 6 ICA 05132 006120 6 ANA SEVEN 0"A"CHANUM /GET CHANNEL NO 05133 015640 6 ADD (BITTAB) 05134 011064 6 STA ACKBIT /CONVERT TO BIT PNTR TABLE ADDR 05135 044004 6 LDA ACKH X 05136 100400 6 SPL 0"A"ODEVEN /GET ODD-EVEN BIT FROM PKT 05137 003104 6 JMP TSKM3 /JUMP IF BIT IS ONE 05140 105077 6 LDA ACKP I /COMPARE WITH WHAT WE WANT 05141 140401 6 CMA 05142 107064 6 TSKM4: ANA ACKBIT I /MASK WITH CONTENTS OF BITTAB 05143 100040 6 SZE 05144 003627 6 JMP FQMOD /IF DUPLICATE --FREE AND QUIT MODEM 05145 044006 6 TSKFOR: LDA HEAD1 X 05146 007641 6 ANA (DESTI) 05147 010000 6 STA 0 /STOR DEST NO FROM HEADER IN X 05150 044165 6 LDA RUT X /GET ROUTE 05151 101040 6 SNZ 0"A"RUTUS /IS IT FOR US? 05152 103642 6 JMP (FORUS) I /YES 05153 100400 6 SPL 0"A"RUTDED 05154 003565 6 JMP FQOK /FOR DEAD GUY, RUT WD WAS MINUS 05155 007643 6 ANA (RUTDLC) 05156 016114 6 SUB ONE /TASK STORE-AND-FORWARD 05157 010000 6 STA 0 /STORE SHIFTED ROUTE IN X (0 TO CH-1) 05160 011065 6 STA OURL 05161 044436 6 LDA LINE X /TEST FOR LINE TEST STATUS 05162 100040 6 SZE /IS LINE DEAD? 05163 003624 6 JMP FQNG /YES, WAIT TILL ROUTING STABLE ^L PAGE 68 IMP,3147,IMP 4:35 PM 7/19/1974 05164 045067 6 LDA MODMAP X 05165 010000 6 STA 0 05166 011066 6 STA OURP 05167 001001 6 INH [M2I,I2M,H2I] 05170 004541 6 0 LDA NSFA /COMPUTE NO SF BUFFS IN USE 05171 016566 6 0 SUB NSFS 05172 141206 6 0 AOA /WE NEED ONE MORE 05173 022600 6 0 CAS MAXSI /ENOUGH S-F ROOM? 05174 003624 6 0 JMP FQNG /NO 05175 003624 6 0 JMP FQNG /NO 05176 004540 6 0 LDA NFA 05177 016565 6 0 SUB NFS /COMPUTE NO OF FREE BUFFS AVAIL, 05200 016544 6 0 SUB NALA /CONSIDERING ALLOCATED AND USED 05201 014571 6 0 ADD NALS 05202 016575 6 0 SUB MINF 05203 100400 6 0 SPL /DO WE HAVE MIN FREE BUFFS? 05204 003624 6 0 JMP FQNG /NO 05205 044661 6 0 LDA CHFREE X /FREE SLOT BITS 05206 140407 6 0 TCA 05207 046661 6 0 ANA CHFREE X /SINGLE LEAST SIGNIFICANT BIT SET 05210 101040 6 0 SNZ 05211 003624 6 0 JMP FQNG /ALL CHANNELS ARE IN USE 05212 011075 6 0 STA I2MBIT /FOR MARKING CHANNEL LATER 05213 052661 6 0 ERA CHFREE X /NOW MARK IT ASSIGNED 05214 050661 6 0 STA CHFREE X 05215 000401 6 0 ENB TSK /YES ^L PAGE 69 IMP,3147,IMP 4:35 PM 7/19/1974 05216 005075 6 LDA I2MBIT 05217 022116 6 CAS THREE 05220 040575 6 ARS 3 /CH 2-7 05221 100000 6 SKP /CAS IS NEVER EQUAL 05222 003227 6 JMP GOTCHN /CH 0-1 05223 022116 6 CAS THREE 05224 040575 6 ARS 3 /CH 5-7 05225 014116 6 ADD THREE /CAS IS NEVER EQUAL 05226 014116 6 ADD THREE 05227 016114 6 GOTCHN: SUB ONE /GOT CHANNEL 0-7 05230 011076 6 STA ACKCH 05231 054630 6 ADD I2MTAB X /GET PTR TO SLOT 05232 011074 6 STA I2MSLT 05233 005075 6 LDA I2MBIT 05234 111074 6 STA I2MSLT I /MARK SLOT IN USE 05235 046647 6 ANA TSEX X /GET O/E BIT IN TSEX 05236 100040 6 SZE /WAS IT ZERO? 05237 005644 6 LDA (200) 0"A"ODEVEN /NO, SET O/E BIT 05240 013076 6 ERA ACKCH /PUT SLOT NO IN A 05241 141240 6 ICR /PUT IN LEFT HALF 05242 072515 6 LDX THIS /BUFF ADDR TO X 05243 011075 6 STA I2MBIT /USED AS A TEMP WORD 05244 044111 6 LDA BUFE X 05245 140100 6 SSP 0"A"TWOQ 05246 027075 6 IMA I2MBIT /NOW HAS PTR TO CHECKSUM 05247 066004 6 IMA ACKH X /SAVE BIT, CHANNEL IN ACKHEADER 05250 056004 6 SUB ACKH X 05251 115075 6 ADD I2MBIT I /AND ADJUST CHECKSUM 05252 111075 6 STA I2MBIT I 05253 044007 6 LDA HEAD2 X /NOW PUT IN BIT FOR LO-HI LINE END 05254 007645 6 ANA (0 0 177777"X"ENDBIT) 05255 073065 6 LDX OURL /THIS BIT DETECTS LOOPED LINES 05256 113646 6 ERA (LEND 0 X) I 05257 072515 6 LDX THIS 05260 066007 6 IMA HEAD2 X 05261 056007 6 SUB HEAD2 X /ADJUST CHECKSUM AGAIN 05262 115075 6 ADD I2MBIT I 05263 111075 6 STA I2MBIT I ^L PAGE 70 IMP,3147,IMP 4:35 PM 7/19/1974 05264 044006 6 LDA HEAD1 X 05265 007647 6 ANA (TRACE) /TRACE BIT ON IN PKT? 05266 113650 6 ERA (PTON) I /OR PKT TRACING ON? 05267 100040 6 SZE /MUST WE TRACE HIM? 05270 021446 6 JST TSUB /TRACE HIM IF NECESSARY 05271 005074 6 LDA I2MSLT /PUT OUR SLOT IN PKT 05272 050003 6 STA INCH X /AND I2M WILL SET IT UP AT OUTPUT T'M 05273 005065 6 LDA OURL 05274 050001 6 STA IT X 05275 044005 6 LDA HEAD X 05276 007651 6 ANA (TRNREP) /GET TRNREP BIT 05277 001001 6 INH SIN 05300 101040 6 0 SNZ /IS THIS A REPLY? 05301 003312 6 0 JMP SFPRI /YES 05302 044006 6 0 LDA HEAD1 X 05303 100400 6 0 SPL 0"A"PRIBIT /IS THIS A PRI TRN? 05304 003312 6 0 JMP SFPRI /YES 05305 004515 6 0 LDA THIS /NO, SO PUT ON REG MODEM QUEUE 05306 073066 6 0 LDX OURP 05307 150366 6 0 STA EMQ XI /LINK BUFF TO END OF REG CHL Q 05310 050366 6 0 STA EMQ X 05311 003316 6 0 JMP SFALL 05312 004515 6 0 SFPRI: LDA THIS /YES, SO PUT ON PRI MODEM QUEUE 05313 073066 6 0 LDX OURP 05314 150373 6 0 STA EMPQ XI /LINK BUFF TO END OF PRI CHL Q 05315 050373 6 0 STA EMPQ X 05316 024541 6 0 SFALL: IRS NSFA /COUNT A S-F PKT 05317 044443 6 0 LDA NONE X 05320 100040 6 0 SZE /POKE MODEM OUTPUT IF IDLE 05321 003570 6 0 JMP GOODM /NO NEED 05322 121652 6 0 JST (I2MSB) I RET TSK 05323 001001 6 INH ALL 05324 000011 6 0 DXA 05325 003570 6 0 JMP GOODM /RETURN GOOD ACK LEV FRE /CALL WITH INTERRUPTS LOCKED /DOESN'T CHANGE X, MUST WORK IN EXA MODE FOR SIMP 05326 000000 0 FLUSH: 0 /RETURN BUFFER TO FREE LIST 05327 044111 0 LDA BUFE X 05330 100400 0 SPL 0"A"TWOQ /IS PACKET ON 2 QUEUES? 05331 003337 0 JMP FLUSH1 /YES 05332 004326 0 LDA FREE /NO, SO FREE IT 05333 050000 0 STA 0 X /STORE PNTR TO FREE LIST 05334 032326 0 STX FREE /STORE PNTR TO PACKET 05335 024540 0 IRS NFA /INCREASE NO OF FREE PKTS 05336 103326 0 JMP FLUSH I 05337 140100 0 FLUSH1: SSP 0"A"TWOQ /MARK PACKET AS ON ONE QUEUE 05340 050111 0 STA BUFE X 05341 103326 0 JMP FLUSH I ^L PAGE 71 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 05342 073063 6 TSKRUT: LDX TASKIN /INPUT CHL NO 05343 040677 6 ARR 1 0"A"NULPKT 05344 100100 6 SLZ /THIS A NULL PACKET? 05345 003401 6 JMP TSKNUL /YES 05346 041677 6 ALR 1 05347 141140 6 ICL /GET OTHER GUYS IMPNO 05350 066160 6 IMA NEIGHB X /SAVE IT 05351 100040 6 SZE /DO NOT KILL LINE IF WE JUST DID 05352 052160 6 ERA NEIGHB X 05353 100040 6 SZE /DO KILL LINE IF NEIGHBOR HAS CHANGED 05354 003411 6 JMP NEIKIL 05355 065550 6 IRS E123 X /INCREMENT NUMBER OF RECD RUT MSGS 05356 101000 6 NOP 05357 044160 6 LDA NEIGHB X /COMPUTE AND SET HI-LO BIT 05360 016106 6 SUB MINE 05361 100040 6 SZE 05362 003366 6 JMP TSKCPY /COPY IN ROUTING INFO 05363 004114 6 LDA ONE 05364 010455 6 STA LUUP /BLINK LUUPED LITE 05365 003627 6 JMP FQMOD 05366 001001 6 TSKCPY: INH MSK 05367 004124 6 0 LDA MINUS4 /LOCK OUT SLOW T.O 05370 170120 6 0 SMK INTM /SHARED CODE & TABLES 05371 010134 6 0 STA PRIM LEV T.O LCK MSK 05372 140040 5 0 CRA /MARK AS REAL INPUT 05373 000401 5 0 ENB T.O 05374 121653 5 JST (RSTINP) I 05375 072515 5 LDX THIS 05376 001001 5 INH [MSK,FRE] 05377 021326 5 0 JST FLUSH 05400 003036 5 0 JMP TSKMSK LEV TSK 05401 040675 6 TSKNUL: ARR 3 0"A"IHERDU 05402 100100 6 TSKNU2: SLZ /DID WE GET AN IHEARD YOU? 05403 064431 6 TSKNU3: DEFSTAT IRS LAC X, TSKIH /YES 00601 031246 6 32104 005403 6 32124 064431 6 05404 041674 6 ALR 4 05405 007654 6 ANA (STUBIT) /MARK WHETHER THE NEIGHBOR 05406 013654 6 ERA (STUBIT) /IS A STUB (0 IF YES) 05407 111655 6 STA (NSTUB 0 X) I 05410 003627 6 TSKNU4: JMP FQMOD 05411 001001 6 NEIKIL: INH ALL 05412 011561 6 0 STA NEIT 05413 121656 6 0 JST (KILLIN) I 05414 005561 6 0 LDA NEIT DEFHLT [NEIGHBOR IMP CHANGED] 05415 021622 6 0 JST THLTNG ^L PAGE 72 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK [H2I,T.O] 05416 000000 6 4 SWPCHK: 0 05417 011100 6 4 STA SWPCHT /BITS TO PUT INTO HEAD1 05420 044006 6 4 LDA HEAD1 X 05421 007657 6 4 ANA (FORIMP 0 FOROCT DESTHI) 05422 066007 6 4 IMA HEAD2 X /SWITCH SRC FOR DEST AND V.V. 05423 007657 6 4 ANA (FRMIMP 0 FRMOCT SRCEHI) 05424 013100 6 4 ERA SWPCHT 05425 050006 6 4 STA HEAD1 X 05426 044111 6 4 LDA BUFE X 05427 006112 6 4 ANA SIGN 0"A"TWOQ 05430 014000 6 4 ADD 0 05431 015660 6 4 ADD (MINPL+2) /FIX LENGTH OF REPLY 05432 050111 6 4 STA BUFE X 05433 005661 6 4 LDA (MINPL-ACKH+2) 05434 056004 6 4 SUB ACKH X 05435 056005 6 4 SUB HEAD X 05436 056006 6 4 SUB HEAD1 X /BUILD CHECKSUM 05437 056007 6 4 SUB HEAD2 X 05440 056010 6 4 SUB HEAD3 X 05441 056011 6 4 SUB DATA X /NOW STORE IT 05442 050012 6 4 STA DATA+1 X 05443 132405 6 4 STX ERQ I /PUT ON 05444 032405 6 4 STX ERQ /REPLY QUEUE 05445 103416 6 4 JMP SWPCHK I LEV TSK /TSUB DOES THE TASK PART OF TRACING 05446 000000 6 TSUB: 0 05447 004421 6 LDA TIMES /GET TIME IN SLOW TICKS 05450 016107 6 SUB M30SEC 05451 066003 6 IMA INCH X /GIVE PKT 30 SEC. TO LIVE 05452 011561 6 STA NEIT /SAVE INCH IN TEMP 05453 105650 6 LDA (PTON) I 05454 100040 6 SZE /IS PKT TRACE ON? 05455 003472 6 JMP TS3 /YES 05456 044006 6 TS1: LDA HEAD1 X /NO 05457 007647 6 ANA (TRACE) 05460 100040 6 SZE /MUST WE TRACE HIM? 05461 105662 6 LDA (TRON) I 05462 101040 6 SNZ 05463 103446 6 JMP TSUB I 05464 004327 6 TS2: LDA TTF /FREE TRACE BLOCK PNTR 05465 100040 6 SZE 05466 003504 6 JMP TS4 /JUMP IF THERE ARE FREE TRACE BLOCKS 05467 141206 6 AOA 05470 010420 6 STA TTO /MARK TRACE TABLE OVERFLOW 05471 103446 6 JMP TSUB I 05472 044007 6 TS3: LDA HEAD2 X 05473 007663 6 ANA (FRMIMP 0 SRCEH) 05474 013664 6 ERA (FHLTRC) /IS THIS PKT FROM TRACE? 05475 100040 6 SZE /IF SO DO NOT PKT TRACE 05476 025562 6 IRS TSKTF /INCR PKT TRC COUNTER 05477 003456 6 JMP TS1 /NOT YET TIME 05500 105665 6 LDA (PTF) I 05501 140407 6 TCA 05502 011562 6 STA TSKTF /RESET COUNTER 05503 003464 6 JMP TS2 /AND TRACE IT. ^L PAGE 73 IMP,3147,IMP 4:35 PM 7/19/1974 05504 033555 6 TS4: STX SPB /SAVE BUFFER PNTR 05505 011556 6 STA STB /FREE TRC BLK BUFF PNTR 05506 050002 6 STA PTRT X /SET UP TRACE POINTER 05507 026343 6 IMA STRQ /GET STRT OF ACTIVE TRC Q 05510 127556 6 IMA STB I /LINK TO TOP OF TRACE Q 05511 010327 6 STA TTF /STORE ADDR OF NEXT FREE BLK 05512 004343 6 LDA STRQ /ADDR OF NEW TOP OF Q 05513 015666 6 ADD (THED+4 X) /SET UP LAST TRC BUFF ADDR 05514 011557 6 STA ITB 05515 005555 6 LDA SPB /ADDR OF PKT BUFF 05516 015666 6 ADD (HEAD+4 X) /SET UP LAST PKT BUFF ADDR 05517 011560 6 STA IMB 05520 072124 6 LDX MINUS4 /TRANSFER PKT BUFF TO TRC BUFF 05521 105560 6 LDA IMB I 05522 111557 6 STA ITB I 05523 024000 6 IRS 0 /FINISHED? 05524 003521 6 JMP .-3 /NO 05525 073555 6 LDX SPB /YES 05526 044001 6 LDA IT X /SAVE INPUT TIME IN TRACE TABLE 05527 073556 6 LDX STB 05530 050001 6 STA TIT X 05531 005561 6 LDA NEIT /GET INPUT CHANNEL 05532 141240 6 ICR 0"A"HSTMOD 05533 050011 6 STA TQUE X /SAVE IN LH OF TQUE 05534 073555 6 LDX SPB 05535 044111 6 LDA BUFE X 05536 140100 6 SSP 0"A"TWOQ 05537 016000 6 SUB 0 05540 016117 6 SUB FOUR 0"A"ACKH /CALCULATE PACKET LENGTH 05541 073556 6 LDX STB 05542 050012 6 STA TDONE X 05543 131040 6 RDCLOK 05544 003543 6 JMP .-1 /SAVE TASK TIME IN TRACE TABLE 05545 050002 6 STA TTT X 05546 073555 6 LDX SPB /RESTORE BUFFER PNTR IN X 05547 103446 6 JMP TSUB I LEV VAR 05550 V E123: BSS CH /NUMBER OF RUT MSGS RECD FROM CHLS 05555 V SPB: BSS 1 /SAVE PACKET BUFFER 05556 V STB: BSS 1 /SAVE TRACE BUFFER 05557 V ITB: BSS 1 /INDIRECT TO TRACE BUFFER 05560 V IMB: BSS 1 /INDIRECT TO PACKET BUFFER 05561 V NEIT: BSS 1 /TEMP 05562 177777 V TSKTF: -1 /TASK PKT TRC COUNTER ^L PAGE 74 IMP,3147,IMP 4:35 PM 7/19/1974 /END-OF-TASK ROUTINES /RETURN A NACK OR ACK TO THE SENDING MODEM, HOST, OR BACK LEV TSK LCK ALL 05563 000000 6 0 THLTOK: 0 /REPORT BUG AND GIVE GOOD RETURN 05564 120745 6 0 JST HLTNCC I LEV TSK 05565 072515 6 FQOK: LDX THIS /FREE+QUIT, GOOD RETURN 05566 001001 6 INH [FRE,SIN] 05567 021326 6 0 JST FLUSH /FREE THE BUFFER LEV TSK 05570 001001 6 GOODM: INH SIN 05571 005063 6 0 LDA TASKIN /GOOD RETURN 05572 100400 6 0 SPL 0"A"HSTMOD /FROM HOST? 05573 003607 6 0 JMP GOODH /YES 05574 010000 6 0 STA 0 0"A"INPCHN 05575 105064 6 0 LDA ACKBIT I /FROM MODEM, GIVE ACK 05576 050450 6 0 STA SNULL X /SEND A NULL PKT IF NECESSARY TO SEND 05577 052654 6 0 ERA RSEX X /REVERSE PROPER BIT IN RSEX 05600 050654 6 0 STA RSEX X 05601 044443 6 0 LDA NONE X /CHECK ACTIVITY ON MODEM 05602 101040 6 0 SNZ /RESTART I2M IF NECESSARY FOR MY ACK 05603 121652 6 0 JST (I2MSB) I RET TSK 05604 001001 6 INH ALL 05605 000011 6 0 DXA 05606 003041 6 0 JMP TSKL 05607 140100 6 0 GOODH: SSP 0"A"HSTMOD /NEED TO CLEAR SIGN FOR HISB 05610 010000 6 0 STA 0 0"A"INPCHN 05611 064457 6 0 IRS TSKFLG X /DOUBLE SKIP = GOOD RETURN 05612 064457 6 0 IRS TSKFLG X 05613 014131 6 0 ADD MITH 05614 000013 6 0 EXA 05615 100400 6 0 SPL /FROM BACK HOST? 05616 121667 6 0 JST (HISB) I RET TSK /NO, POKE HOST WAITING FO- 05617 001001 6 INH ALL 05620 000011 6 0 DXA 05621 003041 6 0 JMP TSKL LEV TSK LCK ALL 05622 000000 6 0 THLTNG: 0 /REPORT BUG AND GIVE BAD RETURN 05623 120745 6 0 JST HLTNCC I LEV TSK 05624 005063 6 FQNG: LDA TASKIN /FREE+QUIT, BAD RETURN 05625 100400 6 SPL 0"A"HSTMOD /FROM HOST? 05626 003633 6 JMP BADH 05627 072515 6 FQMOD: LDX THIS /FROM MODEM, DO NOT ACK 05630 001001 6 INH FRE 05631 021326 6 0 JST FLUSH 05632 003041 6 0 JMP TSKL LEV TSK 05633 010000 6 BADH: STA 0 0"A"INPCHN /YES, RETURN A NACK TO HOST 05634 064457 6 IRS TSKFLG X /SINGLE SKIP = BAD RETURN 05635 003041 6 JMP TSKL /DO NOT POKE HOST (ALLOW BACK TO RUN) ^L PAGE 75 IMP,3147,IMP 4:35 PM 7/19/1974 05636 000332 C LEV CON CONSTANTS 05637 000654 C 05640 001525 C 05641 000077 C 05642 006010 C 05643 000037 C 05644 000200 C 05645 176777 C 05646 050232 C 05647 020000 C 05650 030427 C 05651 000004 C 05652 012623 C 05653 026106 C 05654 000040 C 05655 060670 C 05656 011125 C 05657 050377 C 05660 000012 C 05661 000006 C 05662 030421 C 05663 040300 C 05664 040200 C 05665 030453 C 05666 040011 C 05667 013137 C 02503 176676 C PAGEND 5,UNCON,4 ^L PAGE 76 IMP,3147,IMP 4:35 PM 7/19/1974 /TASK REASSEMBLY LEV TSK 06010 072515 6 FORUS: LDX THIS /PNTR TO PKT BUFF 06011 044007 6 LDA HEAD2 X /TASK FOR US 06012 007621 6 ANA (SRCEI) /SOURCE IMP MASK 06013 011617 6 STA SOURCE /PREPARE MESS TABLE ENTRY 06014 044005 6 LDA HEAD X 06015 141044 6 CAR 0"A"MESSNO 06016 011605 6 STA MESNUM /SAVE OUR MESS NO 06017 013617 6 ERA SOURCE 06020 011610 6 STA MESSID /PREPARE MESSAGE ID 06021 044005 6 LDA HEAD X 06022 007622 6 ANA (TRNREP) 06023 100040 6 SZE 06024 005623 6 LDA (0 0 RMESS"X"TMESS) 06025 013624 6 ERA (TMESS) /PICK TRANSMIT OR REPLY TABLE 06026 015617 6 ADD SOURCE 06027 011604 6 STA MESTAB 06030 001001 6 INH [H2I,T.O] 06031 044005 6 4 LDA HEAD X 06032 007625 6 4 ANA (INCTRN 0 TRNREP) 06033 013625 6 4 ERA (INCTRN 0 TRNREP) 06034 101040 6 4 SNZ /IS IT AN INCOMPLETE TRANSMISSION? 06035 003344 6 4 JMP INCGOT /YES 06036 105604 6 4 LDA MESTAB I /GET OLDEST MSG NO WE ARE EXPECTING 06037 141044 6 4 CAR 0"A"MESSNO /GET MESS NO WE WANT 06040 017605 6 4 SUB MESNUM /COMPARE WITH MESS NO WE GOT 06041 100400 6 4 SPL /IS MESS NO WE GOT TOO HIGH? 06042 103626 6 4 JMP (FQOK) I /YES, DISCARD PACKET 06043 141140 6 4 ICL 06044 022116 6 4 CAS THREE /IS MESS NO WE GOT TOO LOW? 06045 103626 6 4 JMP (FQOK) I /YES, DISCARD PACKET 06046 101000 6 4 NOP /GOOD MESS NO 06047 015627 6 4 ADD (MBITS) /NOW CONVERT DIFF BETWEEN MESSNOS 06050 011606 6 4 STA MESBIT /INTO A BIT - 1,2,4, OR 10 06051 105606 6 4 LDA MESBIT I /LOAD DIFFERENCE BIT 06052 107604 6 4 ANA MESTAB I /CHECK AGAINST MSG NO 06053 000401 6 4 ENB TSK 06054 100040 6 SZE /IS MESS NO A DUPLICATE? 06055 103626 6 JMP (FQOK) I /YES, DISCARD PKT 06056 044005 6 LDA HEAD X /GOOD MESSAGE FOR US 06057 007622 6 ANA (TRNREP) 06060 101040 6 SNZ /IS IT A REPLY? 06061 103630 6 JMP (REPGOT) I /YES 06062 073617 6 LDX SOURCE 06063 001001 6 INH [FRE,H2I,T.O] 06064 044165 6 0 LDA RUT X 06065 100400 6 0 SPL DEFHLT [RECVD TRANSMISSION FROM DEAD IMP] 06066 121631 6 0 JST (THLTOK) I 06067 007632 6 0 ANA (0 0 177777"X"RUTCMU) 06070 066165 6 0 IMA RUT X 06071 056165 6 0 SUB RUT X 06072 014265 6 0 ADD RUTCHK /ADJUST CKSM 06073 010265 6 0 STA RUTCHK 06074 072515 6 0 LDX THIS PAGE 77 IMP,3147,IMP 4:35 PM 7/19/1974 06075 044005 6 0 LDA HEAD X 06076 006115 6 0 ANA TWO 0"A"GVBALL 06077 100040 6 0 SZE /IS IT A REGULAR TRANSMIT? 06100 003404 6 0 JMP GUDGVB /NO, WE MUST RETURN A REPLY 06101 044006 6 0 LDA HEAD1 X 06102 121633 6 0 JST (HOSTNO) I /GET PHYSICAL LOCAL HOST NO. 06103 000401 6 0 ENB TSK 06104 010000 6 STA 0 06105 044505 6 LDA HIHD X 0"A"HSTUP 06106 100040 6 SZE 06107 003317 6 JMP TRNDD3 /HOST DEAD, GET REASON 06110 005634 6 LDA (JMP TRNDIS) /LIVE DISPATCH 06111 072515 6 TRNDD2: LDX THIS 06112 011121 6 STA TRNJMP 06113 044005 6 LDA HEAD X /GOOD TRANSMISSION FOR US 06114 141050 6 CAL 06115 040572 6 ARS 6 0"A"ONEOR8"A"REQALL 06116 015121 6 ADD TRNJMP 06117 011121 6 STA TRNJMP 06120 001001 6 INH FRE 06121 6 0 TRNJMP: BSS 1 /DISPATCH ON 1 OR 8 PKT, REQ OR REG 06122 003236 6 0 TRNDIS: JMP TRNGT8 /NON-REQ 8 PKT 06123 003414 6 0 JMP GUDRQ8 /REQ 8 PKT 06124 003163 6 0 JMP TRNGT1 /NON-REQ 1 PKT 06125 105606 6 0 LDA MESBIT I /REQ 1 PKT 06126 100100 6 0 SLZ /IS THIS REQ THE NEXT TO GO? 06127 003140 6 0 JMP TRNDS1 /YES 06130 044006 6 0 LDA HEAD1 X /NO 06131 101400 6 0 SMI 0"A"PRIBIT /IS IT A PRI REQ? 06132 003156 6 0 JMP GUDRQ1 /NOT PRI, SO WE CAN GO NO FURTHER 06133 105604 6 0 LDA MESTAB I 06134 052005 6 0 ERA HEAD X 06135 007635 6 0 ANA (ORDNO) 06136 100040 6 0 SZE /IS HIS PRI ORD NO UP YET? 06137 003156 6 0 JMP GUDRQ1 /NO, SO HE MUST WAIT 06140 004544 6 0 TRNDS1: LDA NALA 06141 016571 6 0 SUB NALS 06142 014542 6 0 ADD NREA 06143 016567 6 0 SUB NRES 06144 141206 6 0 AOA 06145 022577 6 0 CAS MAXR 06146 003156 6 0 JMP GUDRQ1 /NO RDOM FOR 1 PKT MESS, TREAT AS REQ 06147 003156 6 0 JMP GUDRQ1 /NO ROOM FOR 1 PKT MESS, TREAT AS R-Q 06150 004565 6 0 LDA NFS 06151 016540 6 0 SUB NFA 06152 141206 6 0 AOA 06153 014575 6 0 ADD MINF 06154 100400 6 0 SPL 06155 003200 6 0 JMP GUDTR1 /NOTE THAT NO DUPLICATE DETECTION IS DONE HERE 06156 005610 6 0 GUDRQ1: LDA MESSID /ENTER HIS REQUEST 06157 013636 6 0 ERA (ONEOR8) /FOR ONE BUFFER 06160 121637 6 0 JST (RALLYP) I DEFHLT [RALLY ENTRY ALREADY PRESENT FOR REQ 1 PKT] 06161 121631 6 0 JST (THLTOK) I 06162 103626 6 0 JMP (FQOK) I /DO NOT MARK MESS NO COMPLETE ^L PAGE 78 IMP,3147,IMP 4:35 PM 7/19/1974 06163 004542 6 0 TRNGT1: LDA NREA /CHECK REAS ROOM 06164 016567 6 0 SUB NRES 06165 141206 6 0 AOA /ROOM FOR ONE MORE? 06166 022577 6 0 CAS MAXR DEFHLT [MAXR EXCEEDED BY A NON-REQUEST 1 PKT MESS] 06167 101000 6 0 NOP 06170 121640 6 0 JST (THLTNG) I /NO, A FOUL-UP 06171 004565 6 0 LDA NFS 06172 016540 6 0 SUB NFA 06173 141206 6 0 AOA 06174 014575 6 0 ADD MINF 06175 101400 6 0 SMI /DO WE HAVE ENOUGH FREE? DEFHLT [MINF VIOLATED BY A NON-REQUEST 1 PKT MESS] 06176 121640 6 0 JST (THLTNG) I /NO, A FOUL-UP 06177 024571 6 0 IRS NALS 06200 024542 6 0 GUDTR1: IRS NREA /YES, SO TAKE IT 06201 000401 6 0 ENB TSK 06202 033614 6 STX READY /SAVE PACKET POINTER 06203 003304 6 JMP GUDTRN /NOW TRY TO GIVE TO HOST LCK FRE 06204 003231 6 0 TRNDED: JMP TRNDD8 /NON-REQ 8 PKT 06205 003414 6 0 JMP GUDRQ8 /REQ 8 PKT 06206 024571 6 0 IRS NALS /NON-REQ 1 PKT - ONLY HAPPENS IF HOST 06207 005610 6 0 TRNDD1: LDA MESSID 06210 072112 6 0 LDX SIGN /MARK ENTRY-EOB DEST DEAD 06211 121637 6 0 JST (RALLYP) I /PUT IN A DUMMY ENTRY DEFHLT [RALLY ENTRY ALREADY PRESENT FOR DESTINATION DEAD] 06212 121631 6 0 JST (THLTOK) I 06213 072515 6 0 LDX THIS 06214 005620 6 0 LDA HSTUPT /REQ 1 PKT 06215 050011 6 0 STA DATA X /HOST DOWN DATA 06216 044005 6 0 LDA HEAD X 06217 007641 6 0 ANA (0 0 177777"X"INCTRN"X"TRNREP"X"ALLOC) 06220 050005 6 0 STA HEAD X 06221 005642 6 0 LDA (REPDED) /SWAP SRC&DEST 06222 121643 6 0 JST (SWPCHK) I /AND CHECKSUM IT 06223 121644 6 0 JST (REASGT) I 06224 003422 6 0 JMP NXMES1 /NO PKTS CAME IN SO FAR 06225 044000 6 0 LDA 0 X 06226 111613 6 0 STA TEND I /SPLICE UP REAS Q 06227 121645 6 0 JST (REASF) I /AND FREE UP THIS BLK 06230 003422 6 0 JMP NXMES1 06231 004751 6 0 TRNDD8: LDA 8PKTS 06232 014571 6 0 ADD NALS 06233 010571 6 0 STA NALS /MUST TAKE BACK ROOM WE ALLOCATED 06234 024570 6 0 IRS NRAS /AND THE BLOCK 06235 003207 6 0 JMP TRNDD1 ^L PAGE 79 IMP,3147,IMP 4:35 PM 7/19/1974 06236 000401 6 0 TRNGT8: ENB TSK 06237 044006 6 LDA HEAD1 X /MULTI-PACKET TRANS FOR US 06240 141340 6 ICA 06241 006120 6 ANA SEVEN 0"A"PKTNO /GET PACKET NO 06242 011607 6 STA PKTN 06243 015646 6 ADD (REAS 0 X) 06244 011612 6 STA ORS /SAVE POST-INDEXED PNTR TO OUR REAS S! 06245 121644 6 JST (REASGT) I LCK T.O /FIND OUR GUY IN REAS 06246 103647 6 5 JMP (NEWMES) I /NOT THERE, SO START A NEW MESS 06247 033611 6 5 OLDMES: STX ORB /SAVE PNTR TO OUR REAS BLOCK 06250 105612 6 5 LDA ORS I 06251 100040 6 5 SZE /IS IT EMPTY? 06252 103626 6 5 JMP (FQOK) I /NO, A DUPLICATE PACKET 06253 004515 6 5 LDA THIS 06254 111612 6 5 STA ORS I /PUT PACKET IN OUR REAS SLOT 06255 010000 6 5 STA 0 06256 044007 6 5 LDA HEAD2 X 06257 073611 6 5 LDX ORB 06260 101400 6 5 SMI 0"A"LSTPKT /IS THIS THE LAST PACKET? 06261 003270 6 5 JMP NOTL /NO 06262 005607 6 5 LDA PKTN /GET PACKET NO 06263 050002 6 5 STA RMAX X /SAVE IN REAS BLOCK 06264 016120 6 5 SUB SEVEN 0"A"8PKTS 06265 140407 6 5 TCA 06266 014567 6 5 ADD NRES 06267 010567 6 5 STA NRES /ADJUST REAS COUNT FOR SURPLUS 06270 044013 6 5 NOTL: LDA RSF X 06271 062002 6 5 CAS RMAX X /IS REAS DONE? 06272 100000 6 5 SKP /NO 06273 003276 6 5 JMP DONE /YES 06274 064013 6 5 IRS RSF X 06275 103650 6 5 JMP (GOODM) I 06276 044000 6 5 DONE: LDA 0 X /REAS COMPLETE 06277 111613 6 5 STA TEND I /REMOVE BLOCK FROM QUEUE 06300 000401 6 5 ENB TSK 06301 005611 6 LDA ORB 06302 140500 6 SSM /MARK AS MULTI-PACKET 06303 011614 6 STA READY 06304 001001 6 GUDTRN: INH T.O 06305 105606 6 5 LDA MESBIT I /MARK GOT IT BIT 06306 113604 6 5 ERA MESTAB I /IN RMESS 06307 111604 6 5 STA MESTAB I 06310 100100 6 5 SLZ /IS MESS NO THE ONE WE WANT? 06311 003500 6 5 JMP T2H /YES, GIVE TO HOST 06312 005614 6 5 LDA READY /NO, PUT BUFFER OR BLOCK 06313 026331 6 5 IMA MESSTK /ON COMPLETED MESSAGE STACK 06314 072331 6 5 LDX MESSTK /DO THIS SINCE SIGN BIT MAY BE SET 06315 050000 6 5 STA 0 X 06316 003432 6 5 JMP SMSTK /AND SEARCH FOR NEXT MESS ^L PAGE 80 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 06317 044730 6 TRNDD3: LDA HDOWN X 06320 101040 6 SNZ /DO WE HAVE ANY REASON FROM HOST? 06321 003325 6 JMP TRNDD4 /NO, USE HIHD 06322 011620 6 TRNDD5: STA HSTUPT /STORE REASON 06323 005651 6 LDA (JMP TRNDED) /SET DEAD DISPATCH 06324 003111 6 JMP TRNDD2 /AND RETURN 06325 044505 6 TRNDD4: LDA HIHD X 0"A"HSTWHY 06326 013652 6 ERA (0 0 HSTDAY"X"HSTHR"X"HSTMIN) 06327 003322 6 JMP TRNDD5 /AND HIHD REASON ^L PAGE 81 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK [H2I,T.O] 06330 121644 6 4 INCGT8: JST (REASGT) I /FIND THIS INC TRN IN REAS 06331 003336 6 4 JMP SNDRP7 /NOT THERE, WE NEVER SAW HIM 06332 044000 6 4 LDA 0 X 06333 111613 6 4 STA TEND I /REMOVE FROM REAS QUEUE 06334 121645 6 4 JST (REASF) I /FREE REAS BLOCK AND PKTS 06335 003342 6 4 JMP SNDRP8 06336 004751 6 4 SNDRP7: LDA 8PKTS /CANT FIND BLK BUT MESS IN PROG 06337 014571 6 4 ADD NALS /SO HAVE TO FREE 8 ALLOCATED PKTS 06340 010571 6 4 STA NALS /SINCE NEWMES NEVER RAN 06341 024570 6 4 IRS NRAS /ALSO FREE REAS BLOCK 06342 005623 6 4 SNDRP8: LDA (RFNM) /CREATE A REPLY TO 8-PKT INC TRN 06343 003412 6 4 JMP SNDRP1 /COULD BE INC DETECTED AT SRC, RESETS /COME HERE ON RECEIPT OF INC TRN 06344 044007 6 4 INCGOT: LDA HEAD2 X 06345 007653 6 4 ANA (RSTTRN) /RESET? 06346 100040 6 4 SZE 06347 103654 6 4 JMP (INCRST) I /YES 06350 105604 6 4 LDA MESTAB I /GET OLDEST MESSAGE NO WE ARE EXPECTI 06351 141044 6 4 CAR 0"A"MESSNO /GET MESS WE WANT 06352 017605 6 4 SUB MESNUM 06353 100400 6 4 SPL /IS MESSNO WE GOT TOO HIGH? 06354 103655 6 4 JMP (INCREQ) I /YES,SEND RESET REQUEST 06355 141140 6 4 ICL 06356 022120 6 4 CAS SEVEN /IS MESSNO WE GOT >7 TOO LOW? 06357 103655 6 4 JMP (INCREQ) I /YES, SEND RESET REQUEST 06360 101000 6 4 NOP 06361 022116 6 4 CAS THREE /IS MESSNO UP TO 4 PREVIOUS? 06362 103656 6 4 JMP (INCREP) I /YES, SEND DUPLICATE REPLY 06363 101000 6 4 NOP 06364 015627 6 4 ADD (MBITS) 06365 011606 6 4 STA MESBIT 06366 105606 6 4 LDA MESBIT I /GOT AN INC TRANS 06367 107604 6 4 ANA MESTAB I /EXPLICITLY PERMIT DUPLICATES 06370 100040 6 4 SZE /HAVE WE SEEN HIM COMPLETED YET? 06371 103656 6 4 JMP (INCREP) I /YES, SEND BACK DUPLICATE REPLY 06372 044005 6 4 LDA HEAD X 06373 007657 6 4 ANA (ONEOR8 0 REQALL) 06374 101040 6 4 SNZ /8 PKT INC TRN? 06375 003330 6 4 JMP INCGT8 /YES 06376 007636 6 4 ANA (ONEOR8) 06377 101040 6 4 SNZ /8 PKT REQ FOR ALL? 06400 003414 6 4 JMP GUDRQ8 /YES, IT IS INSIDE WINDOW 06401 044005 6 4 LDA HEAD X /NEVER SAW THIS 1 PKT GUY 06402 006115 6 4 ANA TWO 0"A"GVBALL 06403 100040 6 4 SZE /IS THIS A GVB? 06404 004751 6 4 GUDGVB: LDA 8PKTS /YES 06405 100040 6 4 SZE 06406 024570 6 4 IRS NRAS /REMOVE BLOCK AND 06407 014571 6 4 ADD NALS /REMOVE BUFFER FROM ALLOCATE COUNT 06410 010571 6 4 STA NALS 06411 005657 6 4 LDA (ONEOR8 0 RFNM) 06412 072121 6 4 SNDRP1: LDX MINUS1 /MAKE A REPLY TO 1-PKT INC TRN 06413 003415 6 4 JMP GUDRAL /SINCE IT MAY HAVE BEEN A REPLY TO AN INC TRN THAT WAS LOS /WE SHOULD KEEP A RECORD OF THE HOST QUEUE LAST FLUSHED /THIS WAY WE COULD SEND THE CORRECT DUPLICATE REPLY ^L PAGE 82 IMP,3147,IMP 4:35 PM 7/19/1974 06414 140040 6 4 GUDRQ8: CRA 06415 013610 6 4 GUDRAL: ERA MESSID 06416 121637 6 4 JST (RALLYP) I /SET UP ENTRY TO REPLY DEFHLT [RALLY ENTRY ALREADY PRESENT FOR INC OR REQ8] 06417 121631 6 4 JST (THLTOK) I 06420 072515 6 4 LDX THIS 06421 120700 6 4 JST FLUSHI I 06422 105606 6 4 NXMES1: LDA MESBIT I /TURN ON 06423 113604 6 4 ERA MESTAB I /GOT IT BIT 06424 111604 6 4 STA MESTAB I /IN RMESS 06425 105604 6 4 NXTMES: LDA MESTAB I 06426 101100 6 4 SLN /IS THIS THE MESS NO WE WANT? 06427 103650 6 4 JMP (GOODM) I /NO 06430 073604 6 4 LDX MESTAB 06431 121660 6 4 JST (UPMESS) I RET TSK 06432 005661 6 SMSTK: LDA (MESSTK) /SEARCH THE MESSAGE STACK 06433 011613 6 STA TEND /FOR MESSAGES WHOSE NUMBERS ARE UP 06434 001001 6 INH T.O 06435 004331 6 5 LDA MESSTK /GET CONTENTS OF STACK ENTRY 06436 101040 6 5 SRCSTK: SNZ /IS STACK EMPTY? 06437 003425 6 5 JMP NXTMES /YES 06440 011614 6 5 STA READY 06441 010000 6 5 STA 0 06442 100400 6 5 SPL /IS THIS A REAS BLOCK? 06443 044003 6 5 LDA REAS X /YES, SO GET A PACKET 06444 010000 6 5 STA 0 06445 044007 6 5 LDA HEAD2 X /GET SOURCE OF THIS PACKET 06446 013617 6 5 ERA SOURCE /COMPARE WITH OURS 06447 007621 6 5 ANA (SRCEI) 06450 100040 6 5 SZE /MATCH? 06451 003473 6 5 JMP SRCSTL /NO 06452 044006 6 5 LDA HEAD1 X 06453 101400 6 5 SMI 0"A"PRIBIT /IS IT PRIORITY? 06454 003461 6 5 JMP SRCST2 /NO 06455 105604 6 5 LDA MESTAB I /GET ORD NO WE WANT 06456 052005 6 5 ERA HEAD X /COMPARE WITH THIS PACKET 06457 007635 6 5 ANA (ORDNO) 06460 003465 6 5 JMP SRCST3 06461 105604 6 5 SRCST2: LDA MESTAB I /GET MESS NO WE WANT 06462 017662 6 5 SUB (0 0 3"T"400) 06463 052005 6 5 ERA HEAD X /COMPARE WITH THIS PACKET 06464 141044 6 5 CAR 0"A"MESSNO 06465 100040 6 5 SRCST3: SZE /IS THIS THE NEXT TO GO? 06466 003473 6 5 JMP SRCSTL /NO 06467 073614 6 5 LDX READY 06470 066000 6 5 IMA 0 X /YES 06471 111613 6 5 STA TEND I /REMOVE FROM MESS STACK 06472 003500 6 5 JMP T2H /AND GIVE TO HOST 06473 005614 6 5 SRCSTL: LDA READY /LOOP BACK FOR MORE 06474 140100 6 5 SSP 06475 011613 6 5 STA TEND 06476 105613 6 5 LDA TEND I 06477 003436 6 5 JMP SRCSTK ^L PAGE 83 IMP,3147,IMP 4:35 PM 7/19/1974 06500 000401 6 5 T2H: ENB TSK 06501 004114 6 LDA ONE 06502 011616 6 STA NPKTS 06503 073614 6 LDX READY /LOAD THE PACKET PNTR 06504 005614 6 LDA READY /REGULAR MESSAGE READY FOR HOST 06505 100400 6 SPL /IS THIS A SINGLE PACKET? 06506 003550 6 JMP T2H8 /NO 06507 011615 6 STA READYE /SAVE END PNTR 06510 121663 6 T2HL1: JST (TSUB) I 06511 044006 6 LDA HEAD1 X 06512 001001 6 INH [I2H,H2I,T.O] 06513 121633 6 3 JST (HOSTNO) I /GET PHYSICAL LOCAL HOST NUMBER 06514 044006 6 3 LDA HEAD1 X 06515 006112 6 3 ANA SIGN 0"A"PRIBIT 06516 100040 6 3 SZE /PICK PRI OR REG QUEUE 06517 005664 6 3 LDA (EHPQ+0-EHQ) 06520 115665 6 3 ADD (LOCHST) I /ADD OFFSET GENERATED IN HOSTNO 06521 026000 6 3 IMA 0 /PUT IN X AND GET PKT PNTR 06522 150346 6 3 STA EHQ XI /PUT ON HOST QUEUE 06523 005615 6 3 LDA READYE 06524 050346 6 3 STA EHQ X 06525 005616 6 3 LDA NPKTS /NUM PKTS IN MSG 06526 054520 6 3 ADD NHA X /NUM PKTS FOR HOST 06527 050520 6 3 STA NHA X /ADJUST COUNTS 06530 073614 6 3 LDX READY 06531 044006 6 3 LDA HEAD1 X 06532 073604 6 3 LDX MESTAB 06533 101400 6 3 SMI 0"A"PRIBIT /PRIORITY? 06534 003545 6 3 JMP T2HL2 /NO 06535 121666 6 3 JST (UPORD) I /YES, SO BUMP ORD NO 06536 073614 6 3 LDX READY 06537 105604 6 3 LDA MESTAB I /GET MESS NO WE WANT 06540 017662 6 3 SUB (0 0 3"T"400) 06541 052005 6 3 ERA HEAD X /COMPARE WITH WHAT WE GOT 06542 141044 6 3 CAR 0"A"MESSNO 06543 073604 6 3 LDX MESTAB 06544 101040 6 3 SNZ /MATCH? 06545 121660 6 3 T2HL2: JST (UPMESS) I /BUMP MESS NO 06546 121667 6 3 JST (TASK2H) I RET TSK /POKE HOST IF NECESSARY 06547 003432 6 JMP SMSTK /GO BACK FOR MORE ^L PAGE 84 IMP,3147,IMP 4:35 PM 7/19/1974 /THE FIRST PKT IS COUNTED FIRST, IN T2H /AND TRACED LAST, IN T2HL1 /SUBSEQUENT PKTS ARE COUNTED AND TRACED IN T2H81 LEV TSK 06550 140100 6 T2H8: SSP /MULTI-PACKET MESSAGE READY 06551 011611 6 STA ORB /OUR REASSY BLOCK 06552 044003 6 LDA REAS X /LOAD PKT PNTR 06553 011614 6 STA READY 06554 140040 6 CRA 06555 050013 6 STA REAS+8 X 0"A"RSF /A TRICK TO INIT RSF AND MAKE IT LOOK LIKE PKT 9 06556 044004 6 T2H81: LDA REAS+1 X /LOAD ADDR OF NEXT PACKET 06557 150003 6 STA REAS XI /CHAIN PACKETS TOGETHER 06560 101040 6 SNZ /IS THIS THE LAST PKT? 06561 003573 6 JMP T2H82 /YES 06562 033615 6 STX READYE /NO, STORE THE PKT PNTR 06563 010000 6 STA 0 06564 121663 6 JST (TSUB) I /TRACE PKT IF NECESSARY 06565 073615 6 LDX READYE 06566 140040 6 CRA /CLEAR REAS PNTR 06567 050003 6 STA REAS X 06570 024000 6 IRS 0 /INCREMENT ADDRESS 06571 025616 6 IRS NPKTS /INCREMENT PKT COUNT 06572 003556 6 JMP T2H81 /CHAIN NEXT PACKET 06573 066003 6 T2H82: IMA REAS X /CLEAR REAS PNTR 06574 011615 6 STA READYE /AND SAVE LAST PKT PNTR 06575 073614 6 LDX READY /LOAD FIRST PKT PNTR 06576 005611 6 LDA ORB /LOAD REASSY BLOCK PNTR 06577 001001 6 INH T.O 06600 026330 6 5 IMA RASF /FREE REAS BLOCK AND LINK TO TOP 06601 110330 6 5 STA RASF I /OF FREE LIST 06602 024570 6 5 IRS NRAS /FIX BLOCK COUNT 06603 003510 6 5 JMP T2HL1 LEV VAR 06604 V MESTAB: BSS 1 /PNTR TO MESS TAB ENTRY 06605 V MESNUM: BSS 1 /MESSNO OF THIS PKT 06606 V MESBIT: BSS 1 /BIT CORRESPONDING TO OUR MESSAGE 06607 V PKTN: BSS 1 /NUMBER OF THIS PACKET 06610 V MESSID: BSS 1 /MESSAGE ID (MESS NO+SRCE IMP) 06611 V ORB: BSS 1 /OUR REAS BLOCK 06612 V ORS: BSS 1 /OUR REAS SLOT 06613 V TEND: BSS 1 /TEMP END PNTR 06614 V READY: BSS 1 /PNTR TO PACKET TO GIVE TO HOST 06615 V READYE: BSS 1 /END PNTR FOR READY 06616 V NPKTS: BSS 1 /PKT COUNTER 06617 V SOURCE: BSS 1 /SOURCE IMP FOR THIS PACKET 06620 V HSTUPT: BSS 1 /TEMP HOST UP TIME DATA ^L PAGE 85 IMP,3147,IMP 4:35 PM 7/19/1974 06621 000077 C LEV CON CONSTANTS 06622 000004 C 06623 000100 C 06624 032405 C 06625 000014 C 06626 005565 C 06627 001535 C 06630 007011 C 06631 005563 C 06632 177437 C 06633 007217 C 06634 003122 C 06635 000060 C 06636 000200 C 06637 015420 C 06640 005622 C 06641 177761 C 06642 000400 C 06643 005416 C 06644 007461 C 06645 021530 C 06646 040003 C 06647 007477 C 06650 005570 C 06651 003204 C 06652 177760 C 06653 002000 C 06654 007413 C 06655 007442 C 06656 007375 C 06657 000300 C 06660 015465 C 06661 000331 C 06662 001400 C 06663 005446 C 06664 000010 C 06665 007236 C 06666 015477 C 06667 007173 C 02504 176677 C PAGEND 6,UNCON,-3 ^L PAGE 86 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 07011 044006 6 REPGOT: LDA HEAD1 X 07012 007536 6 ANA (RSTREQ 0 RSTREP) 07013 100040 6 SZE /IS THIS A RESET REQUEST OR A REPLY' 07014 003335 6 JMP RSTRGT /YES 07015 044005 6 LDA HEAD X /REPLY TO A TRANSMISSION OF OURS 07016 007537 6 ANA (ONEOR8) 07017 101040 6 SNZ /IS IT A REPLY TO A MULTI-PACKET? 07020 003071 6 JMP REPGT8 /YES 07021 105540 6 LDA (MESSID) I 07022 001001 6 INH [H2I,T.O] 07023 121541 6 4 JST (PPTGET) I /FIND OUR TRANS IN PPT 07024 003160 6 4 JMP GOTGVB /NOT THERE, MUST BE A GVB 07025 011066 6 4 STA PPTASK /SAVE PPT PNTR 07026 000401 6 4 ENB TSK 07027 072515 6 LDX THIS 07030 044005 6 LDA HEAD X 07031 007542 6 ANA (ALLOC) 07032 101040 6 SNZ /IS THIS REPLY AN ALLOCATE OF 1? 07033 003045 6 JMP NOALL1 /NO 07034 173066 6 LDX PPTASK I /YES, CHECK FOR DUPLICATE ALLOC 07035 044005 6 LDA HEAD X 07036 007543 6 ANA (REQALL) 07037 101040 6 SNZ /WAS REQUEST BIT SET? 07040 103544 6 JMP (FQOK) I /NO, SO ALLOC IS A DUPLICATE 07041 105066 6 LDA PPTASK I /YES, SO WE MARK PPT 07042 140500 6 SSM 0"A"RETRAN /FOR RETRANSMISSION FROM BACK 07043 111066 6 STA PPTASK I 07044 103544 6 JMP (FQOK) I /MESS NO NOT REPLIED TO YET 07045 021237 6 NOALL1: JST RFNM1 /SET UP TWDPA FOR RFNM OR INC 07046 003057 6 0 LCK FRE JMP DDEAD1 07047 173066 6 LEV TSK LDX PPTASK I 07050 044010 6 LDA HEAD3 X /PICK UP LINK WORD 07051 021270 6 JST RFNM2 LCK FRE 07052 044007 6 0 LDA HEAD2 X 07053 021217 6 0 JST HOSTNO /GET PHYSICAL LOCAL HOST NO 07054 044006 6 0 LDA HEAD1 X /GET SOURCE OF MESS 07055 007545 6 0 ANA (0 0 177777"X"LSTPKT"X"HICODE) 07056 013067 6 0 ERA TWDPA /PUT IN IH MESS TYPE 07057 011067 6 0 DDEAD1: STA TWDPA 07060 073236 6 0 LDX LOCHST 07061 120677 6 0 JST OWP I /DO A 2 WRD PUT 07062 003064 6 0 DEFSTAT JMP .+2, HS6 00602 031335 6 0 32105 007062 6 0 32125 003064 6 0 07063 103546 6 0 JMP (FQNG) I /NO ROOM FOR 2 WRD MESS 07064 021317 6 0 JST RFNM3 07065 003153 6 0 JMP PPTFRE LEV VAR 07066 V PPTASK: BSS 1 /POINTER TO OUR PPT OR PLT SLOT 07067 V TWDPA: BSS 1 /FIRST WORD OF 2 WRD PUT 07070 V LOCHNO: BSS 1 ^L PAGE 87 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 07071 105540 6 REPGT8: LDA (MESSID) I /REPLY TO A MULTI-PCKT TRANS 07072 001001 6 INH [H2I,T.O] 07073 121547 6 4 JST (PLTGET) I /FIND OUR TRANS IN PLT DEFHLT [CANT FIND MULTI-PKT MESS FOR THIS REPLY] 07074 121550 6 4 JST (THLTOK) I /NOT THERE, FOUL-UP 07075 033066 6 4 STX PPTASK /SAVE PLT PNTR 07076 044000 6 4 LDA PLT0 X 07077 006120 6 4 ANA SEVEN 0"A"PLTHST 07100 011070 6 4 STA LOCHNO /GET PHYSICAL LOCAL HOST NO 07101 072515 6 4 LDX THIS 07102 044005 6 4 LDA HEAD X 07103 007542 6 4 ANA (ALLOC) 07104 000401 6 4 ENB TSK 07105 101040 6 SNZ /IS THIS REPLY AN ALLOCATE OF 8? 07106 003123 6 JMP NOALL8 /NO 07107 001001 6 INH [SIN,H2I,T.O] 07110 105551 6 0 LDA (TALLYI) I /GET IN PNTR 07111 013552 6 0 ERA (TALLY+TALLYL) /COMPARE WITH END PNTR 07112 101040 6 0 SNZ /AT END? 07113 103546 6 0 JMP (FQNG) I /YES, NO ROOM FOR ALLOCATE SD NACK 07114 105553 6 0 LDA (SOURCE) I /GET SOURCE OF ALLOC 07115 111554 6 0 STA (TALLYI 0 I) I /STUFF THRU IN PNTR 07116 125551 6 0 IRS (TALLYI) I /BUMP IN PNTR 07117 044005 6 0 LDA HEAD X 07120 007543 6 0 ANA (RFNM) 07121 101040 6 0 SNZ /IS THIS REPLY AN ALLOCATED RFNM? 07122 003204 6 0 JMP GUDAL8 /NO, JUST AN ALLOCATE OF 8, POKE HO'+ RET TSK 07123 021237 6 NOALL8: JST RFNM1 /SET UP TWDPA FOR RFNM OR INC 07124 003133 6 0 LCK FRE JMP DDEAD8 07125 073066 6 LEV TSK LDX PPTASK 07126 044030 6 LDA PLT2 X /PICK UP LINK WORD 07127 021270 6 JST RFNM2 LCK FRE 07130 044014 6 0 LDA PLT1 X /GET SOURCE OF MESS 07131 007545 6 0 ANA (0 0 177777"X"LSTPKT"X"HICODE) 07132 013067 6 0 ERA TWDPA /PUT IN IH MESS TYPE 07133 011067 6 0 DDEAD8: STA TWDPA 07134 073070 6 0 LDX LOCHNO 07135 033236 6 0 STX LOCHST 07136 120677 6 0 JST OWP I /DO A 2 WRD PUT 07137 003151 6 0 DEFSTAT JMP DDEAD7, HS7 /AND POKE HOST 00603 031344 6 0 32106 007137 6 0 32126 003151 6 0 07140 072515 6 0 LDX THIS /NO ROOM FOR 2 WRD MESS 07141 044005 6 0 LDA HEAD X 07142 007542 6 0 ANA (ALLOC) 07143 101040 6 0 SNZ /WAS REPLY AN ALLOCATE OF 8? 07144 103546 6 0 JMP (FQNG) I /NO, SO QUIT 07145 105553 6 0 LDA (SOURCE) I /YES, GET SOURCE 07146 121555 6 0 JST (TALLYG) I /AND GET TALLY ENTRY BACK AGAIN 07147 103546 6 0 JMP (FQNG) I /NOT THERE, FOUL-UP 07150 103546 6 0 JMP (FQNG) I /AND QUIT 07151 021317 6 0 DDEAD7: JST RFNM3 07152 003155 6 0 JMP GUDRP0 ^L PAGE 88 IMP,3147,IMP 4:35 PM 7/19/1974 07153 173066 6 0 PPTFRE: LDX PPTASK I 07154 120700 6 0 JST FLUSHI I /FREE PPT ENTRY NOW THAT RFNM IS IN 07155 140040 6 0 GUDRP0: CRA 07156 111066 6 0 STA PPTASK I /CLEAR PPT OR PLT ENTRY 07157 021173 6 0 JST TASK2H /POKE HOST IF NECESSARY LEV TSK 07160 001001 6 GOTGVB: INH [H2I,T.O] /LOCK- HOSTS MAY BE USING TMESS 07161 105556 6 4 LDA (MESTAB 0 I) I 07162 141044 6 4 CAR 0"A"MESSNO 07163 117557 6 4 SUB (MESNUM) I 07164 141140 6 4 ICL 07165 010000 6 4 STA 0 /GET OFFSET IN TMESS 07166 105560 6 4 LDA (MBITS 0 X) I /TURN ON GOT.IT BIT IN TMESS 07167 113556 6 4 ERA (MESTAB 0 I) I 07170 007561 6 4 ANA (0 0 177777"X"MSTO1"X"MSTO2) /TURN OFF TIMER 07171 111556 6 4 STA (MESTAB 0 I) I 07172 103544 6 4 JMP (FQOK) I LCK SIN 07173 000000 6 0 TASK2H: 0 /GOT SOMETHING FOR HOST OUTPUT 07174 073236 6 0 LDX LOCHST 07175 104706 6 0 LDA IHXX I 07176 000013 6 0 EXA 07177 101040 6 0 SNZ /IS HOST IDLE? 07200 121562 6 0 JST (IHSB) I RET TSK /YES, SO POKE IT 07201 001001 6 INH ALL 07202 120672 6 0 JST DODXA I RET TSK 07203 103173 6 JMP TASK2H I LCK SIN 07204 073070 6 0 GUDAL8: LDX LOCHNO /GOT AN ALLOCATE OF 8 FOR HOST INPU] 07205 044457 6 0 LDA HILO X 07206 017563 6 0 SUB (HIALL) 07207 000013 6 0 EXA 07210 101040 6 0 SNZ /IS HOST HUNG ON ALLOCATE? 07211 121564 6 0 JST (HISB) I RET TSK /POKE HIM SINCE HE IS WAI+I 07212 001001 6 INH ALL 07213 120672 6 0 JST DODXA I RET TSK 07214 140040 6 CRA 07215 111066 6 STA PPTASK I /CLEAR PLT ENTRY 07216 003160 6 JMP GOTGVB LEV [T.O,TSK] 07217 000000 5 HOSTNO: 0 /COMPUTE HOST NO 07220 011236 5 STA LOCHST 07221 007565 5 ANA (DESTH) 07222 040672 5 ARR 6 07223 027236 5 IMA LOCHST /SAVE DEST HOST 07224 007566 5 ANA (FORIMP) 07225 100040 5 SZE /FAKE HOST? 07226 004130 5 LDA PLNH /YES 07227 015236 5 ADD LOCHST 07230 015567 5 ADD (HSTMAP) 07231 011236 5 STA LOCHST /GET PHYSICAL HOST NUMBER 07232 105236 5 LDA LOCHST I 07233 141050 5 CAL 07234 011236 5 STA LOCHST 07235 103217 5 JMP HOSTNO I LEV VAR 07236 V LOCHST: BSS 1 /WHICH HOST WE ARE FEEDING ^L PAGE 89 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 07237 000000 6 RFNM1: 0 /DISTINGUISH BETWEEN RFNM AND INC THN 07240 044006 6 LDA HEAD1 X 07241 007570 6 ANA (REPDED) 07242 100040 6 SZE /IS THIS A DESTINATION DEAD? 07243 003254 6 JMP RFNMD /YES 07244 044005 6 LDA HEAD X 07245 007571 6 ANA (INCTRN) 07246 100040 6 SZE /IS THIS REPLY MARKED INCOMPLETE? 07247 005572 6 LDA (0 0 CRFNM"X"CINCTR) /YES 07250 013573 6 ERA (CRFNM) /NO 07251 011067 6 STA TWDPA /SAVE IH MESS TYPE 07252 025237 6 IRS RFNM1 /SKIP RETURN 07253 103237 6 JMP RFNM1 I 07254 044011 6 RFNMD: LDA DATA X 0"A"CHSTD 07255 011316 6 STA RFNM1T /SAVE STATUS INFO 07256 044010 6 LDA HEAD3 X 07257 141206 6 AOA 07260 001001 6 INH FRE 07261 010516 6 0 STA TWDP /SAVE LINK 07262 044006 6 0 LDA HEAD1 X 07263 021217 6 0 JST HOSTNO 07264 044007 6 0 LDA HEAD2 X 07265 007545 6 0 ANA (0 0 177777"X"LSTPKT"X"HICODE) 07266 013574 6 0 ERA (CDESTD) /PUT IN CODE 07267 103237 6 0 JMP RFNM1 I /NOSKIP RETURN LEV TSK 07270 000000 6 RFNM2: 0 /TRANSLATE SOME INCOMPLETES INTO 07271 001001 6 INH FRE /ERROR IN DATA MESS 07272 010516 6 0 STA TWDP /SAVE LINK WORD 07273 007575 6 0 ANA (SUBCOD) 07274 013576 6 0 ERA (CERROR) 07275 100040 6 0 SZE /WAS THIS MARKED AS AN ERROR AT SOUKC; 07276 003301 6 0 JMP RFNM2A /NO 07277 005577 6 0 LDA (CERRDT) /YES, SO CHANGE IH MESS TYPE 07300 011067 6 0 STA TWDPA 07301 005067 6 0 RFNM2A: LDA TWDPA 07302 023600 6 0 CAS (CINCTR) 07303 100000 6 0 SKP 07304 103270 6 0 JMP RFNM2 I /KEEP SUBCODE - INC 07305 023574 6 0 CAS (CDESTD) 07306 100000 6 0 SKP 07307 003314 6 0 JMP RFNM2B /PUT IN SUBCODE - DEAD 07310 004516 6 0 LDA TWDP 07311 007601 6 0 ANA (LINKNO) 07312 010516 6 0 STA TWDP /CLEAR SUBCODE - RFNM / ERROR 07313 103270 6 0 JMP RFNM2 I 07314 024516 6 0 RFNM2B: IRS TWDP /HOST DEAD SUBCODE 07315 103270 6 0 JMP RFNM2 I LEV VAR 07316 V RFNM1T: BSS 1 /SAVE DEAD DATA ^L PAGE 90 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK FRE 07317 000000 6 0 RFNM3: 0 07320 005067 6 0 LDA TWDPA 07321 007602 6 0 ANA (HICODE) 07322 013574 6 0 ERA (CDESTD) 07323 100040 6 0 SZE /IS THIS A DEAD? 07324 103317 6 0 JMP RFNM3 I /NO.... DONE 07325 005316 6 0 LDA RFNM1T /YES, GENERATE A TYPE 6 STATUS MSG 07326 010516 6 0 STA TWDP 07327 005067 6 0 LDA TWDPA 07330 013570 6 0 ERA (0 0 CDESTD"X"CHSTST) /HOST STATUS 07331 073236 6 0 LDX LOCHST 07332 120677 6 0 JST OWP I /GIVE IT TO HOST 07333 103317 6 0 JMP RFNM3 I 07334 103317 6 0 JMP RFNM3 I /SCREW BAD RETURN FOR NOW LEV TSK 07335 173553 6 RSTRGT: LDX (SOURCE) I /GOT A RESET REQ OR REPLY 07336 007603 6 ANA (RSTREQ) 07337 101040 6 SNZ /WHICH ONE? 07340 003366 6 JMP RSTRG1 /GOT A RESET REPLY 07341 105604 6 LDA (AMESS 0 X) I /GOT A RESET REQUEST 07342 007565 6 ANA (MSRTO1 0 MSRTO2) 07343 100040 6 SZE /ARE WE RESETING ALREADY? 07344 103544 6 JMP (FQOK) I /YES, DISCARD THIS DUPLICATE 07345 004124 6 LDA MINUS4 /NO, DO A RESET NOW 07346 001001 6 INH MSK 07347 010134 6 0 STA PRIM /CHANGE MASK TO TIMEOUT 07350 170120 6 0 SMK INTM LEV T.O LCK MSK 07351 105553 5 0 LDA (SOURCE) I /RESET THIS IMP- TRANSMIT 07352 121605 5 0 JST (RESETT) I RET T.O 07353 001001 5 INH MSK 07354 004122 5 0 LDA MINUS2 07355 010134 5 0 STA PRIM /CHANGE MASK BACK TO TASK 07356 170120 5 0 SMK INTM LEV TSK LCK MSK 07357 173553 6 0 LDX (SOURCE) I 07360 005606 6 0 LDA (MSNRST) 07361 115604 6 0 ADD (AMESS 0 X) I 07362 111604 6 0 STA (AMESS 0 X) I 07363 005607 6 0 LDA (0 0 177777"X"10) /MESS NO= -1, T.O BITS ON 07364 111556 6 0 STA (MESTAB 0 I) I /AND MESS NO -1 OUTSTANDING 07365 103544 6 0 JMP (FQOK) I 07366 105604 6 0 RSTRG1: LDA (AMESS 0 X) I 07367 007610 6 0 ANA (0 0 177777"X"MSNRST) /TURN OFF RESET BIT 07370 013543 6 0 ERA (MSRTO1) /START T.O 07371 111604 6 0 STA (AMESS 0 X) I /BEGIN NORMAL OPERATIONS 07372 005561 6 0 LDA (0 0 177777"X"MSTO1"X"MSTO2) 07373 111556 6 0 STA (MESTAB 0 I) I 07374 103544 6 0 JMP (FQOK) I ^L PAGE 91 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK [H2I,T.O] /THIS CODE IS FOR SENDING BACK DUPLICATE REPLIES TO: /1. INC TRNS IN THE PREVIOUS WINDOW OF 4 /2. INC TRNS IN THE CURRENT WINDOW OF 4, AS YET UNFINISHED 07375 044005 6 4 INCREP: LDA HEAD X 07376 007611 6 4 ANA (0 0 177777"X"INCTRN"X"TRNREP"X"GVBALL"X"RFNM) 07377 013543 6 4 ERA (RFNM) /RFNM ON IN ALL RPLYS XCPT REQ8 07400 066005 6 4 IMA HEAD X 07401 007565 6 4 ANA (ONEOR8 0 REQALL) 07402 013543 6 4 ERA (REQALL) 07403 100040 6 4 SZE /REQ FOR 8? 07404 003410 6 4 JMP PUTREP /NO, MAKE A REPLY 07405 005612 6 4 LDA (ALLOC 0 RFNM) /Y, TURN OFF RFNM, TURN ON ALL'' 07406 052005 6 4 ERA HEAD X 07407 050005 6 4 STA HEAD X 07410 140040 6 4 PUTREP: CRA /SWAP DEST FOR SRC 07411 121613 6 4 JST (SWPCHK) I /AND CHECKSUM IT 07412 103614 6 4 JMP (GOODM) I /AND GIVE GOOD RETURN ^L PAGE 92 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK LCK [H2I,T.O] /THIS CODE IS FOR SENDING BACK REPLIES TO: /1. INC TRNS OUT OF RANGE- A RESET REQUEST IS RETURNED /2. INC TRNS WHICH ARE RESETS- A RESET REPLY IS RETURNED 07413 105556 6 4 INCRST: LDA (MESTAB 0 I) I /GOT A RESET 07414 007565 6 4 ANA (MSRTO1 0 MSRTO2) 07415 100040 6 4 SZE /ARE WE ALREADY RESET? 07416 003440 6 4 JMP INCRS1 /YES, SEND BACK DUPLICATE RESET REPLY 07417 004124 6 4 LDA MINUS4 /NO,WE NOW RESET 07420 010134 6 4 STA PRIM /CHANGE MASK TO TIMEOUT 07421 170120 6 4 SMK INTM LEV T.O LCK MSK 07422 105553 5 0 LDA (SOURCE) I /RESET THIS IMP- RECEIVE 07423 121615 5 0 JST (RESETR) I RET T.O 07424 001001 5 INH MSK 07425 004122 5 0 LDA MINUS2 07426 010134 5 0 STA PRIM /CHANGE MASK BACK TO TASK 07427 170120 5 0 SMK INTM LEV TSK LCK MSK 07430 005543 6 0 LDA (MSRTO1) /START 30 SEC TIMER 07431 115556 6 0 ADD (MESTAB 0 I) I 07432 111556 6 0 STA (MESTAB 0 I) I 07433 072515 6 0 LDX THIS 07434 044005 6 0 LDA HEAD X 07435 141050 6 0 CAL 0"A"MESSNO /SEND BACK WITH MESSNO 07436 013616 6 0 ERA (MESSNO) 07437 050005 6 0 STA HEAD X /EQUAL -1, IN RANGE AT SOURCE 07440 005617 6 0 INCRS1: LDA (RSTREP) /SEND BACK A RESET REPLY DEFHLT [DID A RESET-R, SENDING RESET REPLY TO IMP=X, MESSNO=A] 07441 021444 6 0 JST RSTBCK 07442 005603 6 0 INCREQ: LDA (RSTREQ) /SEND BACK A RESET REQUEST DEFHLT [SENDING RESET REQUEST TO IMP=X, MESSNO=A] 07443 021444 6 0 JST RSTBCK 07444 000000 6 0 RSTBCK: 0 /CALL WITH A=BIT FOR HEAD1 07445 066005 6 0 IMA HEAD X /SAVE A 07446 007620 6 0 ANA (0 0 177777"X"TRNREP) /MAKE A REPLY 07447 066005 6 0 IMA HEAD X /RESTORE A 07450 121613 6 0 JST (SWPCHK) I /SWAP SRC+DEST, CHKSM, AND PUT ON R=P 07451 005444 6 0 LDA RSTBCK 07452 011456 6 0 STA RSTBPC 07453 105557 6 0 LDA (MESNUM) I /TRAP A 07454 173553 6 0 LDX (SOURCE) I /TRAP X 07455 100000 6 0 SKP 07456 000000 6 0 RSTBPC: 0 /TRAP PC 07457 120745 6 0 JST HLTNCC I 07460 103614 6 0 JMP (GOODM) I ^L PAGE 93 IMP,3147,IMP 4:35 PM 7/19/1974 LEV TSK 07461 000000 6 REASGT: 0 /FIND A MATCH ON MESSID IN REAS STORE 07462 073621 6 LDX (SHRQ) 07463 001001 6 INH T.O /LOOK FOR THIS MESSAGE IN REAS 07464 044000 6 5 RELOOK: LDA 0 X /NEXT REAS BLOCK 07465 101040 6 5 SNZ /NO MORE REAS BLOCKS? 07466 103461 6 5 JMP REASGT I /YES, SO RETURN NO SKIP 07467 133622 6 5 STX (TEND) I /SAVE END PNTR 07470 010000 6 5 STA 0 07471 044001 6 5 LDA RID X /GET THIS MESS ID 07472 113540 6 5 ERA (MESSID) I /COMPARE WITH OURS 07473 100040 6 5 SZE /IS THIS OUR MESSAGE? 07474 003464 6 5 JMP RELOOK /NO 07475 025461 6 5 IRS REASGT /SKIP=SUCCESS 07476 103461 6 5 JMP REASGT I LEV TSK LCK FRE 07477 004330 6 0 NEWMES: LDA RASF /NEW MULTI-PACKET MESSAGE FOR US 07500 101040 6 0 SNZ /GET REAS BLOCK DEFHLT [NO REAS BLOCK FOR MULTI-PKT MESS] 07501 121623 6 0 JST (THLTNG) I 07502 004751 6 0 LDA 8PKTS 07503 014542 6 0 ADD NREA /CHECK REAS ROOM 07504 016567 6 0 SUB NRES 07505 022577 6 0 CAS MAXR 07506 101000 6 0 NOP /NO ROOM, FOUL-UP DEFHLT [MAXR EXCEEDED BY NON-REQUEST MULTI-PKT MESS] 07507 121623 6 0 JST (THLTNG) I 07510 004540 6 0 LDA NFA 07511 016565 6 0 SUB NFS 07512 016751 6 0 SUB 8PKTS 07513 016575 6 0 SUB MINF 07514 100400 6 0 SPL DEFHLT [MINF VIOLATED BY NON-REQUEST MULTI-PKT MESS] 07515 121623 6 0 JST (THLTNG) I 07516 104330 6 0 LDA RASF I 07517 026330 6 0 IMA RASF 07520 010000 6 0 STA 0 07521 026342 6 0 IMA SHRQ /PUT ON REAS QUEUE 07522 050000 6 0 STA 0 X 07523 004751 6 0 LDA 8PKTS 07524 014542 6 0 ADD NREA /NOW TAKE ROOM 07525 010542 6 0 STA NREA 07526 004751 6 0 LDA 8PKTS 07527 014571 6 0 ADD NALS 07530 010571 6 0 STA NALS 07531 004112 6 0 LDA SIGN /INIT RMAX 07532 050002 6 0 STA RMAX X 07533 105540 6 0 LDA (MESSID) I /ESTABLISH RID 07534 050001 6 0 STA RID X /RSF IS SET UP AT INIT AND AFTER USE TO BE ZERO /THE SAME IS TRUE OF REAS PNTRS 07535 103624 6 0 JMP (OLDMES) I ^L PAGE 94 IMP,3147,IMP 4:35 PM 7/19/1974 07536 003000 C LEV CON CONSTANTS 07537 000200 C 07540 006610 C 07541 015144 C 07542 000002 C 07543 000100 C 07544 005565 C 07545 070377 C 07546 005624 C 07547 015322 C 07550 005563 C 07551 015266 C 07552 032405 C 07553 006617 C 07554 115266 C 07555 015225 C 07556 106604 C 07557 006605 C 07560 041535 C 07561 177477 C 07562 016074 C 07563 014562 C 07564 013137 C 07565 000300 C 07566 040000 C 07567 014300 C 07570 000400 C 07571 000010 C 07572 006000 C 07573 002400 C 07574 003400 C 07575 000007 C 07576 000004 C 07577 004000 C 07600 004400 C 07601 177760 C 07602 007400 C 07603 002000 C 07604 072605 C 07605 021132 C 07606 000040 C 07607 177767 C 07610 177737 C 07611 177661 C 07612 000102 C 07613 005416 C 07614 005570 C 07615 021306 C 07616 177400 C 07617 001000 C 07620 177773 C 07621 000342 C 07622 006613 C 07623 005622 C 07624 006247 C 02505 175632 C PAGEND 7,UNCON,0 ^L PAGE 95 IMP,3147,IMP 4:35 PM 7/19/1974 / MODEM TO IMP (M2I) 10056 000000 0 M2I1: INT M2I /MODEM 1 ENTRANCE 10057 000011 0 DXA 10060 033222 0 STX TX /SAVE X REG 10061 072113 0 LDX ZERO /SET UP ACTIVE MODEM NO 10062 032702 0 STX MP 10063 0 M2I1A: BSS 1 /INITIALLY A JMP M2II UNTIL AN INPUT 10064 000043 0 INK 10065 011223 0 STA TK /SAVE KEYS 10066 070471 0 DEFSTAT M1ERR,MI1 00604 031236 0 32107 010066 0 32127 070471 0 10067 0 M1OK: BSS 1 /THIS IS A NOP WHEN THE LINE GOES D'1 10070 004021 0 DIS1: LDA M1INBP+1 10071 017613 0 SUB (BUFE-ACKH) 10072 010020 0 M2I1B: STA M1INBP 10073 030471 0 M1IN /ERROR- NEW "IN" INTO SAME BUFFER 10074 003373 0 JMP M2IDN1 10075 000000 0 M2I2: INT M2I /MODEM 2 ENTRANCE 10076 000011 0 DXA 10077 033222 0 STX TX 10100 072114 0 LDX ONE 10101 032702 0 STX MP 10102 0 M2I2A: BSS 1 10103 000043 0 INK 10104 011223 0 STA TK 10105 070472 0 DEFSTAT M2ERR,MI1A 00605 031257 0 32110 010105 0 32130 070472 0 10106 0 M2OK: BSS 1 10107 004023 0 DIS2: LDA M2INBP+1 10110 017613 0 SUB (BUFE-ACKH) 10111 010022 0 STA M2INBP 10112 030472 0 M2IN 10113 003373 0 JMP M2IDN1 ^L PAGE 96 IMP,3147,IMP 4:35 PM 7/19/1974 10114 000000 0 M2I3: INT M2I /MODEM 3 ENTRANCE 10115 000011 0 DXA 10116 033222 0 STX TX 10117 072115 0 LDX TWO 10120 032702 0 STX MP 10121 0 M2I3A: BSS 1 10122 000043 0 INK 10123 011223 0 STA TK 10124 070473 0 DEFSTAT M3ERR,MI1B 00606 031267 0 32111 010124 0 32131 070473 0 10125 0 M3OK: BSS 1 10126 004025 0 DIS3: LDA M3INBP+1 10127 017613 0 SUB (BUFE-ACKH) 10130 010024 0 STA M3INBP 10131 030473 0 M3IN 10132 003373 0 JMP M2IDN1 10133 000000 0 M2I4: INT M2I /MODEM 4 ENTRANCE 10134 000011 0 DXA 10135 033222 0 STX TX 10136 072116 0 LDX THREE 10137 032702 0 STX MP 10140 0 M2I4A: BSS 1 10141 000043 0 INK 10142 011223 0 STA TK 10143 070474 0 DEFSTAT M4ERR,MI1C 00607 031277 0 32112 010143 0 32132 070474 0 10144 0 M4OK: BSS 1 10145 004027 0 DIS4: LDA M4INBP+1 10146 017613 0 SUB (BUFE-ACKH) 10147 010026 0 STA M4INBP 10150 030474 0 M4IN 10151 003373 0 JMP M2IDN1 ^L PAGE 97 IMP,3147,IMP 4:35 PM 7/19/1974 10152 000000 0 M2I5: INT M2I /MODEM 5 ENTRANCE 10153 000011 0 DXA 10154 033222 0 STX TX 10155 072117 0 LDX FOUR 10156 032702 0 STX MP 10157 0 M2I5A: BSS 1 10160 000043 0 INK 10161 011223 0 STA TK 10162 070475 0 DEFSTAT M5ERR,MI1D 00610 031307 0 32113 010162 0 32133 070475 0 10163 0 M5OK: BSS 1 10164 004031 0 DIS5: LDA M5INBP+1 10165 017613 0 SUB (BUFE-ACKH) 10166 010030 0 STA M5INBP 10167 030475 0 M5IN 10170 003373 0 JMP M2IDN1 /SOME OFFSETS WE NEED FOR THE FIRST MODEM INPUT TO GRAB A BU DIS1O=DIS1-0-M2I1 M2I1AO=M2I1A-0-M2I1 M2I1BO=M2I1B-0-M2I1 10171 011221 0 M2II: STA TA 10172 000043 0 INK 10173 011223 0 STA TK 10174 044064 0 LDA M1INIL X 10175 010000 0 STA 0 /BASE REG FOR OUR INSTR MODIFICATIO. 10176 044012 0 LDA DIS1O X 10177 015614 0 ADD (STA-0-LDA) 10200 011204 0 STA M2II1 10201 021241 0 JST GFREE 10202 003210 0 JMP M2II2 10203 015615 0 ADD (BUFE 0 I) 10204 0 M2II1: BSS 1 /SET UP FIRST REAL INPUT BUFFER 10205 005171 0 LDA M2II 10206 050005 0 STA M2I1AO X 10207 042012 0 JMP DIS1O X 10210 005616 0 M2II2: LDA (I 0 1) 10211 042014 0 JMP M2I1BO X ^L PAGE 98 IMP,3147,IMP 4:35 PM 7/19/1974 10212 032702 0 M2I0: STX MP /SAVE ACTIVE MODEM NO 10213 045232 0 LDA LEND X /PICK UP END-OF-LINE BIT FOR THIS MUD 10214 011237 0 STA LENDT 10215 021241 0 JST GFREE 10216 143572 0 DEFSTAT [JMP DIS XI], MI3 00611 031253 0 32114 010216 0 32134 143572 0 10217 015617 0 ADD (ACKH 0 I) /SET UP DMC START INPUT PNTR 10220 143253 0 JMP DIP XI /DISPATCH TO SEPARATE CODE FOR EACH M LEV VAR 10221 V TA: BSS 1 /SAVE A REG 10222 V TX: BSS 1 /SAVE X REG 10223 V TK: BSS 1 /SAVE KEYS 10224 V TAR: BSS 1 /SAVE ADDRET 10225 010067 V M2IOK: M1OK 10226 010106 V M2OK 10227 010125 V M3OK 10230 010144 V M4OK 10231 010163 V M5OK 10232 V LEND: BSS CH /ENDBIT ON=HIGH NO IMP /SIGN BIT ON= DEAD LINE 10237 V LENDT: BSS 1 /TEMP BECAUSE OF ONLY ONE X REG /DOESN'T CHANGE X, MUST WORK IN EXA FOR SIMP 10240 V GFREET: BSS 1 /LAST BUFFER USED LEV FRE 10241 000000 0 GFREE: 0 /GET A FREE BUFFER 10242 140040 0 CRA 10243 126326 0 IMA FREE I /CLEAR CHAIN PTR 10244 101040 0 SNZ 10245 103241 0 JMP GFREE I /NO BUFFERS, NO SKIP 10246 024565 0 IRS NFS /KEEP COUNT 10247 026326 0 IMA FREE /UPDATE FREE LIST 10250 011240 0 STA GFREET /LEAVE A CLUE 10251 025241 0 IRS GFREE /SKIP=SUCCESS 10252 103241 0 JMP GFREE I ^L PAGE 99 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 10253 010310 C DIP: DP1 10254 010302 C DP2 10255 010274 C DP3 10256 010266 C DP4 10257 010260 C DP5 LEV M2I 10260 072030 0 DP5: LDX M5INBP 10261 010030 0 STA M5INBP 10262 015613 0 ADD (BUFE-ACKH) 10263 026031 0 IMA M5INBP+1 10264 030475 0 M5IN 10265 003315 0 JMP DIPE 10266 072026 0 DP4: LDX M4INBP 10267 010026 0 STA M4INBP 10270 015613 0 ADD (BUFE-ACKH) 10271 026027 0 IMA M4INBP+1 10272 030474 0 M4IN 10273 003315 0 JMP DIPE 10274 072024 0 DP3: LDX M3INBP 10275 010024 0 STA M3INBP 10276 015613 0 ADD (BUFE-ACKH) 10277 026025 0 IMA M3INBP+1 10300 030473 0 M3IN 10301 003315 0 JMP DIPE 10302 072022 0 DP2: LDX M2INBP 10303 010022 0 STA M2INBP 10304 015613 0 ADD (BUFE-ACKH) 10305 026023 0 IMA M2INBP+1 10306 030472 0 M2IN 10307 003315 0 JMP DIPE 10310 072020 0 DP1: LDX M1INBP /PICK UP OUR DMC INPUT PNTR 10311 010020 0 STA M1INBP /STORE NEW DMC INPUT PNTR 10312 015613 0 ADD (BUFE-ACKH) /COMPUTE NEW DMC END PNTR 10313 026021 0 IMA M1INBP+1 /SWAP FOR CURRENT END PNTR 10314 030471 0 M1IN /DO NEW INPUT OCP ^L PAGE 100 IMP,3147,IMP 4:35 PM 7/19/1974 10315 017615 0 DIPE: SUB (BUFE 0 I) /GET OLD PKT PNTR + SAVE IN X 10316 011577 0 STA M2ISP /SAVE FOR TASK ING OR FLUSHING 10317 026000 0 IMA 0 /SWAP IT FOR END PNTR 10320 017616 0 SUB (1 0 I) /ADJUST IT FOR ONE OFF 10321 050111 0 STA BUFE X 0"A"TWOQ /SAVE IT IN PKT END PNTR 10322 005620 0 LDA (M2IADR) 10323 026111 0 IMA ADDRET /SET UP ADD CHAIN RETURN FOR M2I 10324 011224 0 STA TAR /AND SAVE CURRENT OWNER OF ADDER 10325 004000 0 LDA 0 10326 056111 0 SUB BUFE X /COMPUTE BUFFER LENGTH 10327 015621 0 ADD (ADDBOT+ACKH) /ADD IN TABLE OFFSET 10330 011337 0 STA M2IADJ /AND SAVE AS ADD DISPATCH 10331 017622 0 SUB (ADDBOT) /GET -(NO OF WORDS) IN A 10332 022627 0 CAS ADDL /LENGTH WITHIN LIMITS? 10333 101000 0 NOP 10334 101400 0 SMI /AND NEGATIVE? 10335 003407 0 JMP PKTCH3 /NO...BITCH ABOUT IT 10336 103337 0 JMP M2IADJ I /AND JMP INTO ADD CHAIN 10337 0 M2IADJ: BSS 1 10340 100040 0 M2IADR: SZE /IS THE CHECKSUM GOOD? DEFPLC [NOP HERE TO ACCEPT BAD CHECKSUM PACKETS] 10341 003405 0 JMP PKTCH1 /NO, REPORT AS AN ERROR 10342 005224 0 LDA TAR 10343 010111 0 STA ADDRET /AND RESTORE PREVIOUS OWNER OF ADDER 10344 131040 0 RDCLOK 10345 003344 0 JMP .-1 10346 050001 0 STA IT X /SAVE INPUT TIME- 100 US CLOCK 10347 004702 0 LDA MP 0"A"INPCHN"A"HSTMOD 10350 050003 0 STA INCH X /SAVE INPUT MODEM NO 10351 044005 0 LDA HEAD X 10352 101100 0 SLN 0"A"LINETS /LT OR ROUTE? 10353 003425 0 JMP M2IPKT /NO 10354 100400 0 SPL 0"A"SNDCOR /CORE RELOAD REQUEST? 10355 103623 0 JMP (M2IRQC) I /YES, HONOR IT 10356 040677 0 ARR 1 10357 100100 0 SLZ 0"A"NULPKT /IS THIS A NULL PKT OF ACKS ONLY? 10360 003411 0 JMP M2INUL /YES 10361 040677 0 ARR 1 10362 100100 0 SLZ 0"A"GETCOR /A SPECIAL CORE THING? 10363 103624 0 JMP (M2IDMC) I /YES 10364 040674 0 ARR 4 10365 100100 0 SLZ 0"A"BLOCKF /A BLOCK? 10366 103625 0 JMP (M2IBLK) I /YES 10367 073577 0 M2T0: LDX M2ISP 10370 132404 0 M2T: STX ETQ I /PUT ON TASK QUEUE 10371 032404 0 STX ETQ 10372 030041 0 TASK /POKE TASK INTERRUPT 10373 072702 0 M2IDN1: LDX MP 10374 144064 0 M2IDUN: LDA M1INIL XI 10375 011224 0 STA TAR 10376 005223 0 LDA TK 10377 000013 0 EXA 10400 171020 0 OTK 10401 005221 0 LDA TA 10402 073222 0 LDX TX 10403 000401 0 ENB M2I 10404 103224 0 JMP TAR I ^L PAGE 101 IMP,3147,IMP 4:35 PM 7/19/1974 10405 072702 0 PKTCH1: LDX MP DEFHLT [SOFTWARE CHECKSUM ERROR IN PACKET] 10406 121626 0 JST (PKTCHK) I 10407 072702 0 PKTCH3: LDX MP /REPORT "DMC" ERROR DEFHLT [M2I BAD PACKET LENGTH FOR ADDER] 10410 121626 0 JST (PKTCHK) I 10411 044005 0 M2INUL: LDA HEAD X /GOT A NULL PACKET OF ACKS 10412 141140 0 ICL /PICK UP IMP NO 10413 012106 0 ERA MINE /COMPARE WITH MINE 10414 101040 0 SNZ /IS THIS LINE LOOPED? 10415 003370 0 JMP M2T /YES, GIVE NULL TO TASK, IGNORE ACKS 10416 004423 0 LDA THD /PICK UP CHAN TO LOWEST NO IMP 10417 012702 0 ERA MP /COMPARE WITH THIS LINE NO 10420 100040 0 SZE /IS IT THIS LINE? 10421 003433 0 JMP M2IACK /NO 10422 044006 0 LDA HEAD1 X /YES, SO COPY IN HIS VALUE FOR SYNC 10423 010422 0 STA SYNC /KEEPING GLOBAL TIME THROUGHOUT NET 10424 003433 0 JMP M2IACK /NO, PROCESS ACKS, THEN GIVE TO TAS- 10425 044007 0 M2IPKT: LDA HEAD2 X 10426 007627 0 ANA (ENDBIT) 10427 013237 0 ERA LENDT 10430 101400 0 SMI /IS THIS LINE DOWN? 10431 101040 0 SNZ /IS THIS PKT FROM US? 10432 103630 0 JMP (M2IFRE) I /YES, THROW AWAY PKT 10433 044004 0 M2IACK: LDA ACKH X 10434 140401 0 CMA 10435 141050 0 CAL 0"A"ACKTAB 10436 011600 0 STA ACKT /ACKS FROM PACKET 10437 072702 0 LDX MP 10440 052647 0 ERA TSEX X 10441 046661 0 ANA CHFREE X /SHOULD BE NO ACKS ON FREE SLOTS 10442 100040 0 SZE DEFHLT [SPURIOUS ACK] 10443 121631 0 JST (PKTCH2) I 10444 005600 0 LDA ACKT 10445 066647 0 IMA TSEX X /COMPARE WITH WHAT WE GOT 10446 052647 0 ERA TSEX X 10447 101040 0 SNZ 10450 003367 0 JMP M2T0 /NO ACKS, SO QUIT 10451 011600 0 STA ACKT /SAVE ACKS TO PROCESS 10452 052661 0 ERA CHFREE X /FREE UP ACKED CHANNELS 10453 050661 0 STA CHFREE X 10454 005600 0 LDA ACKT ^L PAGE 102 IMP,3147,IMP 4:35 PM 7/19/1974 10455 173632 0 ACKLOP: LDX (I2MTAB 0 X) I 10456 140407 0 TCA 10457 007600 0 ANA ACKT /GET LOWEST BIT THAT TRANSITIONED 10460 013600 0 ERA ACKT /TURN IT OFF 10461 027600 0 IMA ACKT /UPDATE SET OF ACKS TO PROCESS 10462 013600 0 ERA ACKT /AND GO PROCESS THIS ONE 10463 023633 0 CAS (20) 10464 003542 0 JMP ACK567 10465 003556 0 JMP ACK4 10466 022117 0 CAS FOUR 10467 003561 0 JMP ACK3 10470 003564 0 JMP ACK2 10471 101100 0 SLN 10472 003567 0 JMP ACK1 10473 140040 0 CRA 10474 066000 0 IMA 0 X 10475 072702 0 ACKS: LDX MP 10476 023634 0 CAS (1777) /IS THIS A TRUE PKT PNTR? 10477 003502 0 JMP ACKGUD /YES 10500 101000 0 NOP DEFHLT [QUASI-IMPOSSIBLE SPURIOUS ACK] 10501 121631 0 JST (PKTCH2) I /DEBUG SPURIOUS ACK 10502 062642 0 ACKGUD: CAS I2MNXT X /IS THIS TME PKT CURRENTLY ON THE L1N 10503 100000 0 SKP /NO 10504 003531 0 JMP ACKSYN /YES, WE CANT FREE IT YET 10505 010000 0 STA 0 10506 120700 0 JST FLUSHI I /FLUSH OR KILL TWOQ FLAG 10507 024566 0 IRS NSFS ^L PAGE 103 IMP,3147,IMP 4:35 PM 7/19/1974 10510 044002 0 ACKS1: LDA PTRT X /TRACING? 10511 100040 0 SZE 10512 003536 0 JMP ACTR2 /GO DO IT 10513 044111 0 ACTR1: LDA BUFE X /GET PACKET LENGTH 10514 140100 0 SSP 0"A"TWOQ 10515 016000 0 SUB 0 10516 016116 0 SUB THREE 0"A"[ACKH-1] 10517 072702 0 LDX MP 10520 055601 0 ADD THRUPW X 10521 100400 0 SPL 10522 004112 0 LDA SIGN /MARK OFLO 10523 065606 0 IRS THRUPT X 10524 051601 0 STA THRUPW X 10525 005600 0 LDA ACKT 10526 101040 0 SNZ /HAVE WE PROCESSED ALL THE ACKS? 10527 003367 0 JMP M2T0 /YES, SO QUIT 10530 003455 0 JMP ACKLOP 10531 140500 0 ACKSYN: SSM 10532 050642 0 STA I2MNXT X 10533 140100 0 SSP 10534 010000 0 STA 0 10535 003510 0 JMP ACKS1 /MARK THE BUFFER AS ACKED 10536 004702 0 ACTR2: LDA MP 10537 121635 0 JST (TRCDUN) I /TRACING PACKET 10540 073577 0 LDX M2ISP 10541 003513 0 JMP ACTR1 10542 022753 0 ACK567: CAS C100 10543 003553 0 JMP ACK7 10544 003550 0 JMP ACK6 10545 140040 0 ACK5: CRA 10546 066005 0 IMA 5 X 10547 003475 0 JMP ACKS 10550 140040 0 ACK6: CRA 10551 066006 0 IMA 6 X 10552 003475 0 JMP ACKS 10553 140040 0 ACK7: CRA 10554 066007 0 IMA 7 X 10555 003475 0 JMP ACKS 10556 140040 0 ACK4: CRA 10557 066004 0 IMA 4 X 10560 003475 0 JMP ACKS 10561 140040 0 ACK3: CRA 10562 066003 0 IMA 3 X 10563 003475 0 JMP ACKS 10564 140040 0 ACK2: CRA 10565 066002 0 IMA 2 X 10566 003475 0 JMP ACKS 10567 140040 0 ACK1: CRA 10570 066001 0 IMA 1 X 10571 003475 0 JMP ACKS ^L PAGE 104 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 10572 010070 C DIS: DIS1 10573 010107 C DIS2 10574 010126 C DIS3 10575 010145 C DIS4 10576 010164 C DIS5 LEV VAR 10577 V M2ISP: BSS 1 /SAVED PACKET POINTER 10600 V ACKT: BSS 1 10601 V THRUPW: BSS CH 10606 V THRUPT: BSS CH 10613 000105 C LEV CON CONSTANTS 10614 004000 C 10615 100111 C 10616 100001 C 10617 100004 C 10620 010340 C 10621 011610 C 10622 011604 C 10623 011104 C 10624 011224 C 10625 011144 C 10626 011067 C 10627 001000 C 10630 011117 C 10631 011121 C 10632 040630 C 10633 000020 C 10634 001777 C 10635 011201 C 02506 175643 C PAGEND 10,UNCON,3 ^L PAGE 105 IMP,3147,IMP 4:35 PM 7/19/1974 /MODEM TO IMP PACKET-ERROR STUFF LEV M2I 11067 000000 0 PKTCHK: 0 /ADDRESS OF PKT ERROR 11070 120745 0 JST HLTNCC I /REPORT TRAP TO NCC 11071 105606 0 PKTCHC: LDA (TAR) I 11072 010111 0 STA ADDRET /RESTORE PREVIOUS OWNER OF ADDER 11073 004540 0 LDA NFA 11074 016565 0 SUB NFS 11075 016751 0 SUB TEN /LEAVE MORE THAN MINF 11076 100400 0 SPL /ROOM TO SEND PKT TO DIAG? 11077 003116 0 JMP NODIAG /NO 11100 105607 0 M2IDMP: LDA (M2ISP) I /PICK UP PKT PNTR 11101 026344 0 IMA DIAGQ /PUT ON DIAG QUEUE 11102 111610 0 STA (M2ISP 0 I) I /AND SET UP CHAIN PNTR 11103 103611 0 JMP (M2IDUN) I /DISMISS 11104 072702 0 M2IRQC: LDX MP 11105 105612 0 LDA (RMFLG 0 X) I 11106 141140 0 ICL 11107 006116 0 ANA THREE 0"A"SPDTYP 11110 010000 0 STA 0 11111 045440 0 LDA REQWAT X /GET PROPER WAIT TIME FDR RELOAD 11112 072702 0 LDX MP 11113 050266 0 STA SLT X 11114 004112 0 LDA SIGN 0"A"SNDCOR 11115 050424 0 STA SIHY X /MARK TO SEND CORE 11116 173607 0 NODIAG: LDX (M2ISP) I /AND FREE BAD PKT 11117 120700 0 M2IFRE: JST FLUSHI I 11120 103613 0 JMP (M2IDN1) I 11121 000000 0 PKTCH2: 0 11122 120745 0 JST HLTNCC I 11123 021125 0 JST KILLIN /KILL LINES FOR SPURIOUS ACKS 11124 003071 0 JMP PKTCHC /CONTINUE LEV [M2I,T.O,TSK,BCK] 11125 000000 0 KILLIN: 0 /SUBR TO STOP INPUT AND OUTPUT ON LIN 11126 005614 0 LDA (NOP) /KILL THE LINE INSTANTLY 11127 111615 0 STA (M2IOK 0 XI) I 11130 105616 0 LDA (LINUT 0 X) I /OTHER IMP WILL SEE THE LINE GO 11131 014125 0 ADD MINUS5 11132 050266 0 STA SLT X 11133 066436 0 IMA LINE X /FOR NCC AND RTGO 11134 100040 0 SZE /WAS IT UP? 11135 003141 0 JMP KILL2 /NO 11136 004456 0 LDA LINSUP /FIX LINES UP COUNT 11137 016114 0 SUB ONE 11140 010456 0 STA LINSUP /ONE LESS LINE IS UP 11141 140040 0 KILL2: CRA 11142 050160 0 KILL3: STA NEIGHB X 11143 103125 0 KILL4: JMP KILLIN I ^L PAGE 106 IMP,3147,IMP 4:35 PM 7/19/1974 LEV M2I /BLOCK INPUT, QUEUE FOR FAKE HOST PROCESSING 11144 072702 0 M2IBLK: LDX MP /***REMOVE DEFHLT [M2I RCVD BLK] /***WHEN 11145 021067 0 JST PKTCHK /***OPERATIONAL 11146 044012 0 LDA BLPASW X /CHECK PASSWORD 11147 113617 0 ERA (BLSAPP) I 11150 100040 0 SZE 11151 003237 0 JMP M2IDM1 /BAD PASSWORD 11152 044011 0 LDA BLTYPE X /GET DISPATCH WORD 11153 013620 0 ERA (-10+BLSPEC+BLGDNM) /IS IT A "GO DOWN" MESSAGE. 11154 100040 0 SZE 11155 003160 0 JMP M2IBL1 /NO, CONTINUE 11156 044013 0 LDA BLPECE X /YES, GET DEMAND 11157 003231 0 JMP M2IDM0 /JOIN OLD CODE 11160 004540 0 M2IBL1: LDA NFA 11161 016565 0 SUB NFS 11162 016751 0 SUB TEN 0"A"MINF / EAVE MORE ROOM THAN MINF FREE ! 11163 100400 0 SPL /ANY ROOM? 11164 003117 0 JMP M2IFRE /NO, FLUSH 11165 004574 0 LDA NBA /GET BLOCK QUEUE COUNT 11166 016117 0 SUB FOUR /MUST NOT EXCEED MAX 11167 101400 0 SMI /ROOM ON QUEUE? 11170 003117 0 JMP M2IFRE /NO, FLUSH 11171 024574 0 IRS NBA /INCREMENT COUNT 11172 004702 0 LDA MP /SAVE INPUT MODEM # 11173 141206 0 AOA /AS LINE # FOR FAKE HOST 11174 040671 0 ARR 7 0"A"LINKNO"A"BLLINO 11175 050010 0 STA HEAD3 X 11176 132417 0 STX EBQ I /ADD BLOCK TO BLOCK QUEUE 11177 032417 0 STX EBQ 11200 103613 0 JMP (M2IDN1) I /DISMISS INTERRUPT ^L PAGE 107 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [M2I,I2H] 11201 000000 0 TRCDUN: 0 /FINISH TRACE BLOCK 11202 011223 0 STA TRCC /SAVE CHAN # 11203 044002 0 LDA PTRT X /GET TRACE BLOCK PTR 11204 011222 0 STA TRCD 11205 044001 0 LDA ST X 11206 073222 0 LDX TRCD 11207 050003 0 STA TST X /SAVE OUTPUT TIME 11210 131040 0 RDCLOK 11211 003210 0 JMP .-1 11212 050004 0 STA TAT X /SAVE ACKNOWLEDGE TIME 11213 004112 0 LDA SIGN 11214 052012 0 ERA TDONE X 11215 050012 0 STA TDONE X /INDICATE TRACE BLOCK COMPLETE 11216 005223 0 LDA TRCC /GET OUTPUT CHAN # 11217 052011 0 ERA TQUE X 11220 050011 0 STA TQUE X /SAVE IN RH OF TQUE 11221 103201 0 JMP TRCDUN I LEV VAR 11222 V TRCD: BSS 1 /TRACE BLOCK POINTER 11223 V TRCC: BSS 1 /OUTPUT CHANNEL # LEV M2I 11224 044007 0 M2IDMC: LDA HEAD2 X /RELOAD DEMAND 11225 013241 0 ERA PASWRD /CHECK PASSWORD 11226 100040 0 SZE /KOSHER? 11227 003237 0 JMP M2IDM1 /NO 11230 044004 0 LDA ACKH X /LOOK AT DEMAND 11231 101400 0 M2IDM0: SMI /PANIC DEMAND? 11232 103621 0 JMP (1004) I /YES. INSTANT RELOAD, A=MODEM NUMBER. 11233 004702 0 LDA MP /NO, USE OUR MODEM NO. 11234 141206 0 AOA /(COUNTING 1-4) 11235 010137 0 STA SW3FG /AND NICE-STOP/RELOAD 11236 003117 0 JMP M2IFRE 11237 072702 0 M2IDM1: LDX MP DEFHLT [RELOAD DEMAND WITH BAD PASSWORD] 11240 021067 0 JST PKTCHK DEFPLC [DEMAND RELOAD PASSWORD] 11241 051664 0 PASWRD: 51664 /KEEP NEXT LOCATIONS IN ORDER 11242 177777 0 DMNDCR: -1 /ACKH, USED FOR RELOAD CODE 11243 000005 0 GETCOR 0 LINETS /HEADER 11244 000000 0 0 /UNUSED 11245 000000 0 0 /PASSWORD PUT HERE MANUALLY 11246 0 BSS 1 /CHECKSUM ^L PAGE 108 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2M LCK ALL /ROUTING MESSAGE OR BLOCK OUTPUT COMPLETION 11247 105612 2 0 I2MBL: LDA (RMFLG 0 X) I /GET FLAGS AGAIN 11250 100100 2 0 SLZ 0"A"RM /ROUTING? 11251 003262 2 0 JMP I2MRM /YES 11252 013622 2 0 ERA (BLRMFF) /NO, CLEAR BLOCK FLAG 11253 111612 2 0 STA (RMFLG 0 X) I 11254 173623 2 0 LDX (BLBUFR) I /GET BUF PTR 11255 120700 2 0 JST FLUSHI I /FREE BUFFER 11256 140040 2 0 CRA 11257 111624 2 0 STA (BLBUFF) I /CLEAR BUFFER BUSY FLAG 11260 173625 2 0 LDX (OCHN) I /RESTORE CHAN # IN X 11261 103626 2 0 JMP (I2MS) I /RETURN TO INTERRUPT HANDLER /LINE SPEED COMPUTATIONS 11262 012114 2 0 I2MRM: ERA ONE 0"A"RM /THIS IS RM CLEAR FLAG 11263 111612 2 0 STA (RMFLG 0 X) I /NOW CHK TO SEE IF TIME IS NOMIN 11264 100400 2 0 SPL 0"A"RMINIT /SIGN MINUS IF FIRST TIME THROUGH 11265 003372 2 0 JMP I2MRMI /INITIALIZATION 11266 141140 2 0 ICL /SPD TYPE FROM L. HALF INTO RT. 11267 010000 2 0 STA 0 /USED AS INDEX INTO MARGIN TABLE 11270 045430 2 0 LDA DELSPD X /GET PERMISSABLE VARIANCE 11271 011463 2 0 STA DELTA 11272 173625 2 0 LDX (OCHN) I /RESTORE CHAN # IN X 11273 055451 2 0 ADD RMLAST X /MAXIMUM ACCEPTABLE TIME FOR THIS M . 11274 123627 2 0 CAS (THIST) I /COMP W/ACTUAL TIME FOR THIS MSG '' 11275 003307 2 0 JMP I2MRMA /MAX>THIS, SO FAR SO GOOD 11276 003314 2 0 JMP I2MRMB /MAX=THIS, ALL OK, IN SPEC DEFHLT [LINE SPEED DECREASED] 11277 021300 2 0 I2MRMD: JST I2MSCG 11300 000000 2 0 I2MSCG: 0 11301 120745 2 0 JST HLTNCC I /SEND MSG TO NCC 11302 105612 2 0 LDA (RMFLG 0 X) I /DO HOLD DOWN 11303 007630 2 0 ANA (0 0 177777"X"SHD) 11304 013631 2 0 ERA (SHD) /(6) SPEED HOLD DOWN 11305 111612 2 0 STA (RMFLG 0 X) I /STORED IN RMFLG 11306 003327 2 0 JMP I2MRMC /PUT THIST INTO LAST AND QUIT /TIME WAS MIN? 11307 017463 2 0 I2MRMA: SUB DELTA 11310 017463 2 0 SUB DELTA /MIN ACCEPTABLE TIME 11311 123627 2 0 CAS (THIST) I /COMP W/ACTUAL TIME DEFHLT [LINE SPEED INCREASED] 11312 021300 2 0 JST I2MSCG /MIN>THIS, TOO SLOW 11313 101000 2 0 NOP /MIN=THIS, ALL OK 11314 105612 2 0 I2MRMB: LDA (RMFLG 0 X) I /MINTHIS) 11344 003347 2 0 JMP I2MRMH / " " " " = " 11345 024000 2 0 IRS 0 /NOPE, TRY NEXT SLOWER TYPE 11346 003341 2 0 JMP I2MRMG 11347 045437 2 0 I2MRMH: LDA LINDTT+NSPD-1 X /GET LINE DEAD TIME FOR THIS SPE 11350 011463 2 0 STA DELTA /AND SAVE IN TEMP 11351 004000 2 0 LDA 0 /INDEX= -TYPE 11352 140407 2 0 TCA /COMPLIMENT 11353 141340 2 0 ICA /INTO LEFT HALF 11354 173625 2 0 LDX (OCHN) I /RESTORE CHAN IN X 11355 111612 2 0 STA (RMFLG 0 X) I 0"A"SHD"A"RM /BACK INTO RMFLG 11356 141340 2 0 ICA /GET SPEED TYPE 11357 015634 2 0 ADD (RMCLKS) /ADD TABLE ADDRESS 11360 051456 2 0 STA RMCLKP X /SAVE FOR USE IN RSTOUT 11361 005463 2 0 LDA DELTA /PICK UP TEMP 11362 051464 2 0 STA LINDT X /AND SAVE AS THIS LINE'S DEAD TIME 11363 044436 2 0 LDA LINE X 11364 100040 2 0 SZE /IS LINE UP? 11365 021125 2 0 JST KILLIN /NO, RESET TIME IN CASE JUST RELOADED 11366 105627 2 0 LDA (THIST) I /PUT (THIS+LAST)/2 INTO ACTUAL 11367 055451 2 0 ADD RMLAST X 11370 040477 2 0 LGR 1 11371 003326 2 0 JMP I2MRMF 11372 140100 2 0 I2MRMI: SSP 0"A"RMINIT /INITIALIZE FIRST TIME THROUGH 11373 111612 2 0 STA (RMFLG 0 X) I /CLEAR INIT BIT TOO, 11374 003327 2 0 JMP I2MRMC /PUT THIS INTO LAST AND QUIT /SEND DEMAND CORE OR OUTPUT BLOCK 11375 023622 2 0 I2MDMC: CAS (BLRMFF) /WHICH ONE? 11376 100000 2 0 SKP /IMPOSSIBLE 11377 003407 2 0 JMP I2MBLO /OUTPUT BLOCK 11400 005635 2 0 LDA (DMNDCR) /SEND 'DEMAND CORE' 11401 111636 2 0 STA (MOPX 0 XI) I 11402 014117 2 0 ADD FOUR 0"A"[MINPL-ACKH] 11403 111637 2 0 STA (MOP1 0 XI) I 11404 016117 2 0 SUB FOUR 0"A"[MINPL-ACKH] 11405 010000 2 0 STA 0 11406 103640 2 0 JMP (I2MNLC) I /GET CHECKSUMS AND SEND IT ^L PAGE 110 IMP,3147,IMP 4:35 PM 7/19/1974 /OUTPUT BLOCK DEFHLT [I2M SEND BLK] /***REMOVE WHEN 11407 021300 2 0 I2MBLO: JST I2MSCG /***OPERATIONAL 11410 113612 2 0 ERA (RMFLG 0 X) I /SET RMFLG FOR OUTPUT DONE CHE K 11411 111612 2 0 STA (RMFLG 0 X) I 11412 140040 2 0 CRA /CLEAR SLT 11413 050266 2 0 STA SLT X 11414 105624 2 0 LDA (BLBUFF) I /GET POINTER TO START OF DATA 11415 111636 2 0 STA (MOPX 0 XI) I /FIRST DMC WORD 11416 173623 2 0 LDX (BLBUFR) I /BUF PTR 11417 044004 2 0 LDA BLSCNT X /SIZE OF CONTENTS - 2 11420 173625 2 0 LDX (OCHN) I /RESTORE CHAN # 11421 115636 2 0 ADD (MOPX 0 XI) I /+ POINTER TO START OF DATA 11422 141206 2 0 AOA /+1=PTR TO LAST WORD OF DATA 11423 111637 2 0 STA (MOP1 0 XI) I /SECOND DMC WORD 11424 103641 2 0 JMP (I2MDUN) I /RETURN TO DO OUTPUT, NO ACKS LEV CON /NSPD-1 ENTRIES 11425 000161 C TIMSPC: 161 /(125K)MAX TIME A RM TAKES IN TYPE A 11426 001066 C 1066 /(25K) TYPE 2 11427 004202 C 4202 /(6.5K) TYPE 1 (ALL SLOWER TYPE 0) /NSPD ENTRIES 11430 000377 C DELSPD: 377 /00 10% OF EXPECTED TIME FOR RM (+8- 11431 000177 C 177 /01 L 11432 000060 C 60 /10 11433 000060 C 60 /11 /NSPD ENTRIES 11434 177704 C LINDTT: 0 0-PTCK /FOR 250KBS 11435 177704 C 0 0-PTCK /FOR 50KBS 11436 177764 C 0 0-PTCK"Q"5 /FOR 10KBS 11437 177771 C 0 0-PTCK"Q"10 /LINE DEAD TIME FOR 5KBS /NSPD ENTRIES 11440 177776 C REQWAT: -2. /5 KB 11441 177776 C -2. /10 KB 11442 177774 C -4. /50 KB 11443 177754 C -20. /250 KB -HOLD TIME BEFORE CORE LOAD LEV VAR 11444 V RMTACT: BSS CH /ACTUAL TIME FOR RM (AVERAGED) 11451 V RMLAST: BSS CH /TIME FOR LAST RM IN 100 MU SEC'S 11456 V RMCLKP: BSS CH /PTR TO ENTRY IN RMCLKS 11463 V DELTA: BSS 1 /DELSPD ENTRY FOR THIS LINE 11464 V LINDT: BSS CH /LINE HELD DEAD TIMES ^L PAGE 111 IMP,3147,IMP 4:35 PM 7/19/1974 /THIS CODE IS THE ADD CHAIN WHICH COMPUTES PACKET CHECKSUMS /IT IS RE-ENTRANT AND IS CALLED BY DIFFERENT INTERRUPTS LEV ALL 11471 054117 0 ADDTOP: ADD BUFE+6 X 11472 054116 0 ADD BUFE+5 X 11473 054115 0 ADD BUFE+4 X 11474 054114 0 ADD BUFE+3 X 11475 054113 0 ADD BUFE+2 X 11476 054112 0 ADD BUFE+1 X 11477 054111 0 ADD BUFE X 11500 054110 0 ADD BUFE-1 X 11501 054107 0 ADD DATA+76 X 11502 054106 0 ADD DATA+75 X 11503 054105 0 ADD DATA+74 X 11504 054104 0 ADD DATA+73 X 11505 054103 0 ADD DATA+72 X 11506 054102 0 ADD DATA+71 X 11507 054101 0 ADD DATA+70 X 11510 054100 0 ADD DATA+67 X 11511 054077 0 ADD DATA+66 X 11512 054076 0 ADD DATA+65 X 11513 054075 0 ADD DATA+64 X 11514 054074 0 ADD DATA+63 X 11515 054073 0 ADD DATA+62 X 11516 054072 0 ADD DATA+61 X 11517 054071 0 ADD DATA+60 X 11520 054070 0 ADD DATA+57 X 11521 054067 0 ADD DATA+56 X 11522 054066 0 ADD DATA+55 X 11523 054065 0 ADD DATA+54 X 11524 054064 0 ADD DATA+53 X 11525 054063 0 ADD DATA+52 X 11526 054062 0 ADD DATA+51 X 11527 054061 0 ADD DATA+50 X 11530 054060 0 ADD DATA+47 X 11531 054057 0 ADD DATA+46 X 11532 054056 0 ADD DATA+45 X 11533 054055 0 ADD DATA+44 X 11534 054054 0 ADD DATA+43 X 11535 054053 0 ADD DATA+42 X 11536 054052 0 ADD DATA+41 X 11537 054051 0 ADD DATA+40 X ^L PAGE 112 IMP,3147,IMP 4:35 PM 7/19/1974 11540 054050 0 ADD DATA+37 X 11541 054047 0 ADD DATA+36 X 11542 054046 0 ADD DATA+35 X 11543 054045 0 ADD DATA+34 X 11544 054044 0 ADD DATA+33 X 11545 054043 0 ADD DATA+32 X 11546 054042 0 ADD DATA+31 X 11547 054041 0 ADD DATA+30 X 11550 054040 0 ADD DATA+27 X 11551 054037 0 ADD DATA+26 X 11552 054036 0 ADD DATA+25 X 11553 054035 0 ADD DATA+24 X 11554 054034 0 ADD DATA+23 X 11555 054033 0 ADD DATA+22 X 11556 054032 0 ADD DATA+21 X 11557 054031 0 ADD DATA+20 X 11560 054030 0 ADD DATA+17 X 11561 054027 0 ADD DATA+16 X 11562 054026 0 ADD DATA+15 X 11563 054025 0 ADD DATA+14 X 11564 054024 0 ADD DATA+13 X 11565 054023 0 ADD DATA+12 X 11566 054022 0 ADD DATA+11 X 11567 054021 0 ADD DATA+10 X 11570 054020 0 ADD DATA+7 X 11571 054017 0 ADD DATA+6 X 11572 054016 0 ADD DATA+5 X 11573 054015 0 ADD DATA+4 X 11574 054014 0 ADD DATA+3 X 11575 054013 0 ADD DATA+2 X 11576 054012 0 ADD DATA+1 X 11577 054011 0 ADD DATA X 11600 054010 0 ADD HEAD3 X 11601 054007 0 ADD HEAD2 X 11602 054006 0 ADD HEAD1 X 11603 054005 0 ADD HEAD X 11604 054004 0 ADDBOT: ADD ACKH X 11605 102111 0 JMP ADDRET I /RETURN TO CALLING INTERRUPT ROUTIN= ^L PAGE 113 IMP,3147,IMP 4:35 PM 7/19/1974 11606 010224 C LEV CON CONSTANTS 11607 010577 C 11610 110577 C 11611 010374 C 11612 052640 C 11613 010373 C 11614 101000 C 11615 150225 C 11616 060663 C 11617 034263 C 11620 177773 C 11621 001004 C 11622 000010 C 11623 027221 C 11624 027220 C 11625 012674 C 11626 012163 C 11627 012664 C 11630 177771 C 11631 000006 C 11632 000002 C 11633 177775 C 11634 020377 C 11635 011242 C 11636 152712 C 11637 152717 C 11640 012265 C 11641 012501 C 02507 175663 C PAGEND 11,UNCON,-14 ^L PAGE 114 IMP,3147,IMP 4:35 PM 7/19/1974 /IMP TO MODEM (I2M) LEV VAR 12107 V TATA: BSS 1 /I2M TEMPS 12110 V TXTX: BSS 1 12111 V TCTC: BSS 1 12112 V IRET: BSS 1 /IMP TO MODEM INTERRUPTS COME TO THIS PAGE. 12113 000000 2 0 I2M5: INT I2M 12114 033110 2 0 STX TXTX 12115 072117 2 0 LDX FOUR 12116 003136 2 0 JMP I2M0 12117 000000 2 0 I2M4: INT I2M 12120 033110 2 0 STX TXTX 12121 072116 2 0 LDX THREE 12122 003136 2 0 JMP I2M0 12123 000000 2 0 I2M3: INT I2M 12124 033110 2 0 STX TXTX 12125 072115 2 0 LDX TWO 12126 003136 2 0 JMP I2M0 12127 000000 2 0 I2M2: INT I2M 12130 033110 2 0 STX TXTX 12131 072114 2 0 LDX ONE 12132 003136 2 0 JMP I2M0 12133 000000 2 0 I2M1: INT I2M 12134 033110 2 0 STX TXTX 12135 072113 2 0 LDX ZERO ^L PAGE 115 IMP,3147,IMP 4:35 PM 7/19/1974 12136 033674 2 0 I2M0: STX OCHN /SAVE MODEM NUMBER 12137 011107 2 0 STA TATA 12140 000011 2 0 DXA 12141 003142 2 0 JMP .+1 12142 000043 2 0 INK 12143 011111 2 0 STA TCTC 12144 004421 2 0 LDA TIMES /CURRENT 640 MS CLOCK 12145 057652 2 0 SUB TIM640 X /INITIAL READING FOR THIS MSG 12146 017737 2 0 SUB (10.) /10.24 TICKS/WRAP OF 100 MUS CLK 12147 101400 2 0 SMI /<10 TICKS? 12150 003530 2 0 JMP RAPT /NO, MSG TOOK TOO LONG, CLOCK WRAPPED 12151 131040 2 0 RDCLOK /100 MU SEC CLOCK 12152 003151 2 0 JMP .-1 12153 057657 2 0 SUB TIM100 X /MINUS START TIMER 12154 011664 2 0 STA THIST /TIME FOR THIS MESSAGE 12155 055645 2 0 ADD CUMTIM X /ADD TO TOTAL 12156 051645 2 0 STA CUMTIM X /AND SAVE 12157 045640 2 0 LDA RMFLG X /ROUTING MSG OR BLOCK? 12160 007740 2 0 ANA (RM 0 BLRMFF) 12161 100040 2 0 SZE 12162 103741 2 0 JMP (I2MBL) I /YES, SEE WHICH ONE 12163 004503 2 0 I2MS: LDA MOM /LOAD MODEM OUTPUT MASK 12164 170120 2 0 SMK INTM /SET PRI INTERRUPT 12165 026134 2 0 IMA PRIM 12166 011672 2 0 STA TMTM 12167 140040 2 0 CRA 12170 066642 2 0 IMA I2MNXT X /PKT PNTR FOR NEXT OUTPUT FOR CHL 12171 101400 2 0 SMI /WAS THERE AN ACK FOR THE PKT WE JU'+ 12172 003200 2 0 JMP I2MALL /NO, DO NOT RELEASE PKT 12173 140100 2 0 SSP 12174 010000 2 0 STA 0 12175 120700 2 0 JST FLUSHI I /YES, SO WE CAN FREE IT NOW 12176 024566 2 0 IRS NSFS 12177 073674 2 0 LDX OCHN ^L PAGE 116 IMP,3147,IMP 4:35 PM 7/19/1974 12200 000401 2 0 I2MALL: ENB I2M 12201 044266 2 LDA SLT X 12202 100040 2 SZE /TIME TO SEND A ROUTING MESSAGE? 12203 003302 2 JMP I2MLT /YES 12204 045700 2 LDA I2MLST X /PICK UP RING PNTR 12205 141206 2 AOA /ADVANCE IT 12206 062635 2 CAS I2MEND X 12207 101000 2 NOP 12210 044630 2 LDA I2MTAB X /WRAP AROUND 12211 051700 2 STA I2MLST X 12212 001001 2 INH M2I /PREVENT M2I FROM ACKING 12213 145700 2 0 LDA I2MLST XI /WHILE WE LOOK AT THIS SLOT 12214 023742 2 0 CAS (1777) /IS THERE A PKT HERE? 12215 003567 2 0 JMP I2MRET /YES, SEE IF IT IS TOO OLD 12216 073674 2 0 I2MNEW: LDX OCHN /NO, NOTHING TO RETRANSMIT 12217 000401 2 0 ENB I2M 12220 044321 2 LDA SMPQ X 12221 100040 2 SZE /A NEW PRIORITY PACKET TO SEND? 12222 003367 2 JMP I2MPRI /YES 12223 044314 2 LDA SMQ X 12224 100040 2 SZE /A NEW REGULAR PACKET TO SEND? 12225 003401 2 JMP I2MREG /YES 12226 044450 2 LDA SNULL X 12227 101040 2 SNZ /SHOULD WE SEND A NULL PKT? 12230 003512 2 JMP I2MQUT /NO, SO QUIT ^L PAGE 117 IMP,3147,IMP 4:35 PM 7/19/1974 12231 140040 2 I2MNUL: CRA /SEND A NULL PKT WITH IHY 12232 066424 2 IMA SIHY X 12233 100400 2 SPL 0"A"SNDCOR /DID WE GET A REQUEST TO SEND CORE? 12234 003275 2 JMP I2MCOR /YES, SO SERVICE IT 12235 100040 2 SZE /DID WE GET IN ANY ROUTING MESSAGES? 12236 005743 2 LDA (IHERDU) /YES, SEND AN I HEARD YOU 12237 013744 2 ERA (LINETS 0 NULPKT) /IN A NULL PKT 12240 141340 2 ICA 12241 012106 2 ERA MINE 12242 141340 2 ICA 12243 151731 2 STA NULPTR XI /SET UP HEADER OF NULL PKT 12244 004456 2 LDA LINSUP 12245 100040 2 SZE /ARE WE A STUB? 12246 003252 2 JMP I2MNLB /NO 12247 005745 2 LDA (STUBIT) /YES, TELL OUR NEEIGHBOR 12250 153731 2 ERA NULPTR XI 12251 151731 2 STA NULPTR XI 12252 045731 2 I2MNLB: LDA NULPTR X /PICK UP PNTR TO NULL AREA 12253 016114 2 SUB ONE 12254 151712 2 STA MOPX XI /SET UP OUR OUTPUT AREA 12255 011675 2 STA ACKWRD 12256 014117 2 ADD FOUR 0"A"[MINPL-ACKH] /MIN PACKET LENGTH 12257 151717 2 STA MOP1 XI 12260 044654 2 LDA RSEX X /PUT IN ACKS 12261 073675 2 LDX ACKWRD 12262 050000 2 STA ACKH-ACKH X 12263 004422 2 LDA SYNC /PUTTING SYNC TIME INTO NULLS 12264 050002 2 STA HEAD1-ACKH X 12265 004117 2 I2MNLC: LDA FOUR 0"A"[MINPL-ACKH] 12266 056000 2 SUB ACKH-ACKH X /BUILD CKSUM 12267 056001 2 SUB HEAD-ACKH X 12270 056002 2 SUB HEAD1-ACKH X 12271 056003 2 SUB HEAD2-ACKH X 12272 050004 2 STA HEAD3-ACKH X /AND STORE IT 12273 073674 2 LDX OCHN 12274 003477 2 JMP I2MDN1 12275 005746 2 I2MCOR: LDA (CORELO) 12276 151712 2 STA MOPX XI 12277 005747 2 LDA (COREHI-1) 12300 151717 2 STA MOP1 XI 12301 003501 2 JMP I2MDUN /RETURN TO DO OUTPUT, NO ACKS /VALUES FOR SLT /SLT=1 ==> ROUTING /SLT=2 ==> NULL PACKET /SLT=3,...,10 ==> DEMAND CORE /SLT=11 ==> OUTPUT BLOCK BUFFER 12302 100400 2 I2MLT: SPL /ARE WE HOLDING LINE DEAD? 12303 003512 2 JMP I2MQUT /YES, GO NO FURTHER 12304 016114 2 I2ML2: SUB ONE 12305 050266 2 I2ML3: STA SLT X 12306 022114 2 I2ML4: CAS ONE /RELOAD DEMAND TO SEND? 12307 103750 2 JMP (I2MDMC) I /YES 12310 003231 2 JMP I2MNUL /NULL TO SEND /---FALL THROUGH TO SEND ROUTING ^L PAGE 118 IMP,3147,IMP 4:35 PM 7/19/1974 /THE WORDS FROM I2MCK1 TO I2MCK2 ARE CHECKSUMMED 12311 073365 2 I2MCK1: LDX I2MCKX /PICK UP [# OF WDS IN CODE TO CKSUM] 12312 055367 2 ADD I2MCK2+1 X /ADD THEM (NOTE 0 IN AN INIT) 12313 024000 2 IRS 0 12314 003312 2 JMP .-2 12315 100040 2 SZE /DIFFERENT? RELOAD [I2M ROUTING CODE BROKEN] 12316 120061 2 JST SWDTIL I /SOFTWARE WDT, DO A RELOAD 12317 073674 2 LDX OCHN 12320 125357 2 IRS IMHSI I /KEEP STAT COUNTER 12321 101000 2 NOP 12322 004666 2 LDA RST.O /GET OUTPUT PTR 12323 015361 2 ADD I2MRC1 12324 151712 2 STA MOPX XI /BEG POINTER 12325 017362 2 SUB I2MRC2 12326 151717 2 STA MOP1 XI 12327 015363 2 ADD I2MRC3 12330 010000 2 STA 0 12331 005360 2 LDA I2MRAP /(RUTADR) 12332 026111 2 IMA ADDRET /SAVE CURRENT OWNER OF ADDER 12333 011673 2 STA TARTAR 12334 005362 2 LDA I2MRC2 /(-NIMP - HEAD1 + ACKH 1) 12335 103336 2 JMP .+1 I /JUMP INTO RIGHT PLACE IN ADD CHAIN 12336 011502 2 ADDBOT+0-NIMP-HEAD1+ACKH 12337 140407 2 RUTADR: TCA 12340 072113 2 LDX ZERO /USE TO FIND CKSUM POST INDEXED 12341 112666 2 ERA RST.O I /COMPARE CKSUM W/ THAT GENERATED BY R 12342 027673 2 IMA TARTAR 12343 010111 2 STA ADDRET 12344 005673 2 LDA TARTAR 12345 073674 2 LDX OCHN 12346 001001 2 INH ALL 12347 100040 2 0 SZE /DIFFERENT? DEFHLT [ROUTING MESSAGE CHECKSUM ERROR - INTRA IMP] 12350 021610 2 0 JST I2MHLT 12351 141206 2 0 AOA /1 12352 053640 2 0 ERA RMFLG X /SAYS ROUTING MSG GOING OUT 12353 051640 2 0 STA RMFLG X 12354 105364 2 0 LDA I2MRP I /(RSTSN) 12355 051665 2 0 STA RSTSNO X /SAVE SER # OF LAST OUTPUT 12356 003501 2 0 JMP I2MDUN LEV CON 12357 071651 C IMHSI: IMHS 0 X 12360 012337 C I2MRAP: RUTADR 12361 137675 C I2MRC1: -X 0-NIMP-HEAD1+ACKH-1 12362 177675 C I2MRC2: -NIMP-HEAD1+ACKH-1 12363 177671 C I2MRC3: -NIMP-HEAD1-1 12364 026674 C I2MRP: RSTSN 12365 177722 C I2MCKX: I2MCK1-0-I2MCK2-1 /CHECKSUM COUNTER 12366 C I2MCK2: BSS 1 /CHECKSUM ON CODE GOES HERE ^L PAGE 119 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2M 12367 050642 2 I2MPRI: STA I2MNXT X 12370 140040 2 CRA 12371 166642 2 IMA I2MNXT XI 12372 050321 2 STA SMPQ X 12373 100040 2 SZE 12374 003412 2 JMP I2MGNU 12375 005751 2 LDA (SMPQ) 12376 015674 2 ADD OCHN 12377 050373 2 STA EMPQ X 12400 003412 2 JMP I2MGNU 12401 050642 2 I2MREG: STA I2MNXT X /LOAD WITH TOP OF Q ADDR 12402 140040 2 CRA 12403 166642 2 IMA I2MNXT XI /GET CHAIN PNTR OF NEW REQ 12404 050314 2 STA SMQ X /LINK TO TOP OF Q 12405 100040 2 SZE /WAS THIS LAST? 12406 003412 2 JMP I2MGNU /NO 12407 005752 2 LDA (SMQ) /YES, FIX UP Q PNTRS 12410 015674 2 ADD OCHN 12411 050366 2 STA EMQ X 12412 173753 2 I2MGNU: LDX (I2MNXT 0 X) I /GOT A NEW PKT 12413 133754 2 STX (INCH 0 XI) I /SET UP SLOT PNTR 12414 005755 2 LDA (-200.) /GIVE A PKT 200 TRIES 12415 050003 2 STA INCH X /TO BE ACCEPTED 12416 011677 2 STA I2MREF /MARK AS NEW PKT, DON'T CHECKSUM 12417 073674 2 LDX OCHN 12420 044642 2 LDA I2MNXT X ^L PAGE 120 IMP,3147,IMP 4:35 PM 7/19/1974 12421 140100 2 I2MGOT: SSP 12422 015756 2 ADD (ACKH) 12423 151712 2 STA MOPX XI 12424 011675 2 DEFSTAT STA ACKWRD, IM1 00612 031211 2 32115 012424 2 32135 011675 2 12425 173753 2 LDX (I2MNXT 0 X) I 12426 131040 2 RDCLOK 12427 003426 2 JMP .-1 12430 050001 2 STA ST X 12431 044111 2 LDA BUFE X 12432 140100 2 SSP 0"A"TWOQ 12433 073674 2 LDX OCHN 12434 151717 2 STA MOP1 XI 12435 011676 2 STA ENDWRD 12436 005677 2 LDA I2MREF /RETRANSMISSION OR NEW? DEFPLC [NOP HERE TO STOP CHECKSUM VERIFY IN I2M] 12437 100040 2 SZE 12440 003470 2 JMP I2MCHF /NO CKSUM 12441 005757 2 LDA (I2MADR) /CAPTURE ADDER 12442 026111 2 IMA ADDRET 12443 011673 2 STA TARTAR 12444 005675 2 LDA ACKWRD 12445 016117 2 SUB FOUR 0"A"ACKH 12446 010000 2 STA 0 /PACKET POINTER 12447 017676 2 SUB ENDWRD /LENGTH OF PACKET 12450 015760 2 ADD (ADDBOT+ACKH) 12451 011462 2 STA I2MADJ 12452 017761 2 SUB (ADDBOT) 12453 001001 2 INH ALL 12454 022627 2 0 CAS ADDL /PACKET LENGTH OK? 12455 101000 2 0 NOP 12456 101400 2 0 SMI DEFHLT [I2M BAD LENGTH PACKET FOR ADDER] 12457 021540 2 0 JST I2MCH1 /NO 12460 000401 2 0 ENB I2M 12461 103462 2 JMP I2MADJ I 12462 2 I2MADJ: BSS 1 12463 100040 2 I2MADR: SZE 12464 003536 2 JMP I2MCHE /CHECKSUM ERROR! 12465 005673 2 LDA TARTAR 12466 010111 2 STA ADDRET /RESTORE ADDER OWNER 12467 073674 2 LDX OCHN 12470 105675 2 I2MCHF: LDA ACKWRD I 12471 141044 2 CAR 0"A"ACKBTS /PUT IN ACKS 12472 052654 2 ERA RSEX X 12473 127675 2 IMA ACKWRD I /AND CORRECT CHECKSUM 12474 117675 2 SUB ACKWRD I 12475 115676 2 ADD ENDWRD I 12476 111676 2 STA ENDWRD I 12477 140040 2 I2MDN1: CRA 12500 050450 2 STA SNULL X /ACKS MARKED AS SENT ^L PAGE 121 IMP,3147,IMP 4:35 PM 7/19/1974 12501 004421 2 I2MDUN: LDA TIMES /640 MS COUNTER 12502 051652 2 STA TIM640 X /TABLE OF MODEM OUT START TIMES 12503 131040 2 RDCLOK /100 MICRO SEC CLOCK 12504 003503 2 JMP .-1 12505 051657 2 STA TIM100 X /SAVE THIS CLOCK TOO 12506 045724 2 LDA MXOUT X 12507 011510 2 STA . 1 12510 2 BSS 1 12511 005736 2 LDA M30SCF /SET TO WAIT FOR HARDWARE COMPLETE 12512 050443 2 I2MQUT: STA NONE X /OR SET FLAG TO INDICATE IDLE 12513 001001 2 INH MSK 12514 005672 2 0 LDA TMTM 12515 010134 2 0 STA PRIM 12516 170120 2 0 SMK INTM 12517 144071 2 0 LDA M1OTIL XI 12520 011112 2 0 STA IRET 12521 005111 2 0 LDA TCTC 12522 000013 2 0 EXA 12523 171020 2 0 OTK 12524 005107 2 0 LDA TATA 12525 073110 2 0 LDX TXTX 12526 000401 2 0 ENB I2M 12527 103112 2 JMP IRET I LEV I2M LCK ALL 12530 005762 2 0 RAPT: LDA (14400) /6400MS, 1 SLOW T.O IN 100MUS UNITS 12531 051645 2 0 STA CUMTIM X /RM TOOK TOO LONG, MAX-TIMER 12532 045640 2 0 LDA RMFLG X /CLEAR RM FLAG BIT 12533 006122 2 0 ANA MINUS2 0"A"RM /177776 12534 051640 2 0 STA RMFLG X 12535 003163 2 0 JMP I2MS /AND RETURN LEV I2M 12536 001001 2 I2MCHE: INH ALL DEFHLT [MODEM OUT DETECTED INTRA-IMP CHECKSUM ERROR] 12537 021540 2 0 JST I2MCH1 12540 000000 2 0 I2MCH1: 0 12541 120745 2 0 JST HLTNCC I /REPORT IT 12542 004000 2 0 LDA 0 12543 026344 2 0 IMA DIAGQ /AND TO DIAG TTY 12544 050000 2 0 STA 0 X 12545 005673 2 0 LDA TARTAR 12546 010111 2 0 STA ADDRET 12547 024566 2 0 IRS NSFS 12550 044004 2 0 LDA ACKH X /FREE UP UN-ACKED CHANNEL 12551 007763 2 0 ANA (CHANUM) 12552 141140 2 0 ICL 12553 073674 2 0 LDX OCHN 12554 054630 2 0 ADD I2MTAB X /GET SLOT POINTER 12555 011673 2 0 STA TARTAR /(TEMP) 12556 056630 2 0 SUB I2MTAB X 12557 015764 2 0 ADD (BITTAB) 12560 011675 2 0 STA ACKWRD /GET CHANNEL BIT 12561 105675 2 0 LDA ACKWRD I 12562 052661 2 0 ERA CHFREE X /TURN OF CHANNEL-BUSY BIT 12563 050661 2 0 STA CHFREE X 12564 140040 2 0 CRA 12565 111673 2 0 STA TARTAR I /CLEAR SLOT PTR 12566 003512 2 0 JMP I2MQUT /LEAVE MODEM OUTPUT IDLE FOR A BIT ^L PAGE 122 IMP,3147,IMP 4:35 PM 7/19/1974 12567 010000 2 0 I2MRET: STA 0 /SAVE PKT PNTR 12570 131040 2 0 RDCLOK 12571 003570 2 0 JMP .-1 12572 056001 2 0 SUB ST X /COMPARE TIME NOW WITH SENT TIME 12573 100400 2 0 SPL 12574 140407 2 0 TCA /MAKE DIFF A POSITIVE NUMBER 12575 017765 2 0 SUB (1250.) /COMPARE WITH 125 MS /THIS CONSTANT VARIES WITH LINE LENGTH AND SPEED /IT SHOULD BE TABLED WHEN WE GET FAST LINES+SATELLITES 12576 100400 2 0 SPL /TOO OLD? 12577 003216 2 0 JMP I2MNEW /NOT YET 12600 064003 2 0 IRS INCH X /COUNT ANOTHER RETRANSMIT 12601 003614 2 0 JMP I2MRTR /NOT OVER THE LIMIT 12602 120700 2 0 JST FLUSHI I /KILL PKT AFTER 200 TRIES 12603 024566 2 0 IRS NSFS /AND COUNT IT OUT 12604 073674 2 0 LDX OCHN 12605 140040 2 0 CRA 12606 151700 2 0 STA I2MLST XI /SO IT WON'T BE FLUSHED TWICE DEFHLT [200 RETRANSMISSIONS - SERIOUS MALFUNCTION] 12607 021610 2 0 JST I2MHLT 12610 000000 2 0 I2MHLT: 0 12611 120745 2 0 JST HLTNCC I /REPORT TROUBLE TO NCC 12612 121766 2 0 JST (KILLIN) I /KILL LINE INSTANTLY 12613 003512 2 0 JMP I2MQUT /DISMISS INTERRUPT 12614 073674 2 0 I2MRTR: LDX OCHN 12615 140040 2 0 CRA /MARK PACKET AS A RETRANSMISSION 12616 011677 2 0 STA I2MREF /SO CHECKSUM IS VERIFIED 12617 145700 2 0 LDA I2MLST XI /PACKET SENT >125MS AGO 12620 050642 2 0 STA I2MNXT X /SO RETRANSMIT IT 12621 000401 2 0 ENB I2M 12622 003421 2 JMP I2MGOT LEV [T.O,TSK] LCK SIN 12623 000000 5 0 I2MSB: 0 /SOFTWARE WAKEUP OF MODEM OUTPUT 12624 033110 5 0 STX TXTX /ALWAYS CALLED FROM LOW CORE AND DXA 12625 011107 5 0 STA TATA 12626 033674 5 0 STX OCHN 12627 005623 5 0 LDA I2MSB 12630 150071 5 0 STA M1OTIL XI DEFHLT [MODEM RESTART IN EXA MODE] 12631 121767 5 0 JST (CHKDXA) I 12632 045705 5 0 LDA IMPMOD X 12633 101040 5 0 SNZ /IS THIS AN IMP MODEM? 12634 003163 5 0 JMP I2MS /YES, CLEAR X BIT IN ADDR AND LEAP IN 12635 004112 5 0 LDA SIGN /NO, GO AWAY FOR AGES 12636 050443 5 0 STA NONE X 12637 103623 5 0 JMP I2MSB I ^L PAGE 123 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN RMFLG RMINIT=100000 /SET IF FIRST TIME THROUGH (IN INIT) SPDTYP=77400 /TYPE 0 = 5KBS /TYPE 1 = 10KBS /TYPE 2 = 50KBS /TYPE 3 = 250 KBS BLRMFF=10 /IF SET, BLOCK OUTPUT PENDING SHD=6 /SPEED HOLD-DOWN COUNTER SHD1=2 /BOTTOM BIT OF SHD RM=1 /IF SET, SAYS ROUTING MESSAGE PENDING BLSLTF=BLRMFF+1 /EFFECT ON SLT OF BLOCK OUTPUT LEV VAR 12640 V RMFLG: BSS CH /INIT TO 1006(HD ON 50KB LINE) 12645 V CUMTIM: BSS CH /CUMULATIVE BUSY TIME OVER INTERVAL 12652 V TIM640: BSS CH /'TIMES' AT START OF OUTPUT 12657 V TIM100: BSS CH /100 MUS CLOCK AT START OF OUTPUT 12664 V THIST: BSS 1 /ELAPSED TIME FOR THIS TRANSMISSION 12665 V RSTSNO: BSS CH /SERIAL NO. OF LAST RM OUTPUT 12672 V TMTM: BSS 1 /TEMP M 12673 V TARTAR: BSS 1 /TEMP ADDER RETURN 12674 V OCHN: BSS 1 /ACTIVE MODEM NUMBER 12675 V ACKWRD: BSS 1 /PNTR TO WORD IN PKT WHERE ACKS GO 12676 V ENDWRD: BSS 1 /PNTR TO LAST WORD IN PKT 12677 V I2MREF: BSS 1 /RETRANSMIT FLAQ: CHECKSUM IF FLAG ZE 12700 V I2MLST: BSS CH /PNTR TO LAST SLOT SENT 12705 V IMPMOD: BSS CH /0=IMP MODEM, 1=SIMP, 2=VDH, 3=HOST LEV CON 12712 000032 C MOPX: M1OTBP /DMC OUTPUT PNTRS 12713 000034 C M2OTBP 12714 000036 C M3OTBP 12715 000040 C M4OTBP 12716 000042 C M5OTBP 12717 000033 C MOP1: M1OTBP+1 /DMC OUTPUT END PNTRS 12720 000035 C M2OTBP+1 12721 000037 C M3OTBP+1 12722 000041 C M4OTBP+1 12723 000043 C M5OTBP+1 12724 030071 C MXOUT: M1OUT /OUTPUT INSTRUCTIONS 12725 030072 C M2OUT 12726 030073 C M3OUT 12727 030074 C M4OUT 12730 030075 C M5OUT 12731 032215 C NULPTR: NULS1+1 /PNTRS TO NULL PKT AREAS 12732 032222 C NULS2+1 12733 032227 C NULS3+1 12734 032234 C NULS4+1 12735 032241 C NULS5+1 12736 175551 C M30SCF: -[0 0 30SEC"T"25.] ^L PAGE 124 IMP,3147,IMP 4:35 PM 7/19/1974 12737 000012 C LEV CON CONSTANTS 12740 000011 C 12741 011247 C 12742 001777 C 12743 000020 C 12744 000003 C 12745 000040 C 12746 000060 C 12747 036777 C 12750 011375 C 12751 000321 C 12752 000314 C 12753 040642 C 12754 140003 C 12755 177470 C 12756 000004 C 12757 012463 C 12760 011610 C 12761 011604 C 12762 014400 C 12763 017400 C 12764 001525 C 12765 002342 C 12766 011125 C 12767 015507 C 02510 176775 C PAGEND 12,UNCON,5 ^L PAGE 125 IMP,3147,IMP 4:35 PM 7/19/1974 /HOST TO IMP (HI) PAGH2I: LEV H2I 00100 013131 4 H1INIL/ HI0E 00101 4 H2INIL/ TIPDEF HI1E, TINT 02370 000101 4 02420 013123 4 02450 025111 4 PAGH2I/ /HOST 3 INTERRUPT ROUTINE 13107 000000 4 0 HI3E: INT H2I 13110 033166 4 0 STX HIX 13111 073107 4 0 LDX HI3E 13112 033137 4 0 STX HISB 13113 072116 4 0 LDX THREE 13114 003200 4 0 JMP HISB2 /HOST 2 INTERRUPT ROUTINE 13115 000000 4 0 HI2E: INT H2I 13116 033166 4 0 STX HIX 13117 073115 4 0 LDX HI2E 13120 033137 4 0 STX HISB 13121 072115 4 0 LDX TWO 13122 003200 4 0 JMP HISB2 /HOST 1 INTERRUPT ROUTINE 13123 000000 4 0 HI1E: INT H2I 13124 033166 4 0 STX HIX 13125 073123 4 0 LDX HI1E 13126 033137 4 0 STX HISB 13127 072114 4 0 LDX ONE 13130 003200 4 0 JMP HISB2 /HOST 0 INTERRUPT ROUTINE 13131 000000 4 0 HI0E: INT H2I 13132 033166 4 0 STX HIX /SAVE INDEX REGISTER 13133 073131 4 0 LDX HI0E 13134 033137 4 0 STX HISB /SET UP RETURN ADDRESS 13135 072113 4 0 LDX ZERO /INTERRUPT FROM HOST 0 13136 003200 4 0 JMP HISB2 ^L PAGE 126 IMP,3147,IMP 4:35 PM 7/19/1974 / FROM HERE ON IS COMMON TO ALL HOST INTERRUPT ROUTINES 13137 000000 4 0 HISB: 0 13140 033166 4 0 STX HIX 13141 032703 4 0 STX HIP /SAVE CURRENT HOST 13142 011164 4 0 STA HIA /SAVE AC 13143 000011 4 0 HISB1: DXA 13144 003145 4 0 JMP .+1 13145 000043 4 0 INK 13146 011165 4 0 STA HIK 13147 004502 4 0 LDA HIM /SET UP NEW INTERRUPT MASK (177760) 13150 170120 4 0 SMK INTM /OUTPUT IT 13151 026134 4 0 IMA PRIM /SAVE IT IN PRIM 13152 011167 4 0 STA HIMS /SAVE OLD PRIM 13153 000401 4 0 ENB H2I 13154 142457 4 JMP HILO XI /RESTART WHERE LAST LEFT OFF 13155 000000 4 HIWM: 0 /DEBREAK AND WAKE UP 25MS LATER 13156 072703 4 LDX HIP 13157 005155 4 LDA HIWM 13160 050457 4 HIWM1: STA HILO X 13161 004121 4 LDA MINUS1 13162 051170 4 STA HITT X /SET TIMEOUT TO WAIT 1 PERIOD 13163 003570 4 JMP HIDONE LEV VAR 13164 V HIA: BSS 1 /AC SAVE 13165 V HIK: BSS 1 /K SAVE 13166 V HIX: BSS 1 /IR SAVE 13167 V HIMS: BSS 1 /PRIM SAVE DEFPLC [HI INTERFACE TIMER - HITT] 13170 V HITT: BSS TH /HOST-TD-IMP INTERFACE TIMER LEV H2I LCK ALL 13200 032703 4 0 HISB2: STX HIP 13201 011164 4 0 STA HIA 13202 045170 4 0 LDA HITT X 13203 140401 4 0 CMA 13204 101040 4 0 SNZ DEFHLT [GOT HARDWARE H2I INT WITH HITT=-1] 13205 021207 4 0 JST HITTRP 13206 003143 4 0 JMP HISB1 13207 000000 4 0 HITTRP: 0 13210 120745 4 0 JST HLTNCC I 13211 003143 4 0 JMP HISB1 ^L PAGE 127 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 13212 C HIB1: BSS 1 /DMC INPUT PNTRS 13213 C TIPDEF H2INBP,VDHP1 02371 013213 C 02421 000052 C 02451 013253 C 13214 C TIPDEF H3INBP,TIPLNK+2 02372 013214 C 02422 000056 C 02452 000772 C 13215 C BSS 1 /SET UP BY INIT 13216 013370 C HIBB 13217 013371 C HIBB+1 13220 013372 C HIBB+2 13221 013373 C HIBB+3 13222 C HIB2: BSS 1 /DMC INPUT END PNTRS 13223 C TIPDEF H2INBP+1,VDHP2 02373 013223 C 02423 000053 C 02453 013254 C 13224 C TIPDEF H3INBP+1,TIPLNK+3 02374 013224 C 02424 000057 C 02454 000773 C 13225 C BSS 1 13226 013374 C HIBC 13227 013375 C HIBC+1 13230 013376 C HIBC+2 13231 013377 C HIBC+3 13232 102707 C HER0: JMP HITSTP I /NEEDED FOR HOST TEST /MUST PRECEDE HER! 13233 C HER: BSS 1 /SKIP ON ERROR FROM HOST 13234 C BSS 1 /SET UP BY INIT 13235 C TIPDEF H3ERR,NOP 02375 013235 C 02425 070050 C 02455 101000 C 13236 C BSS 1 13237 101000 C NOP 13240 101000 C NOP 13241 101000 C NOP 13242 101000 C NOP 13243 C HIN: BSS 1 /INPUT INSTRUCTIONS 13244 C BSS 1 /SET UP BY INIT 13245 C TIPDEF H3IN,JMP+0+1000+HIFAKE"A"777 02376 013245 C 02426 030150 C 02456 003603 C 13246 C BSS 1 13247 003603 C JMP HIFAKE 13250 003603 C JMP HIFAKE 13251 003603 C JMP HIFAKE 13252 003603 C JMP HIFAKE LEV VAR 13253 V VDHP1: BSS 1 /VDH IN PTR WHEN TIP PRESENT 13254 V VDHP2: BSS 1 / " ^L PAGE 128 IMP,3147,IMP 4:35 PM 7/19/1974 /FAKE HOST TO IMP (JAM) /SIMULATE HOST-TO-IMP INTERFACE HARDWARE FOR FAKE HOSTS: /1- RECEIVE A WORD FROM HOST /2- STORE THE WORD THROUGH THE DMC INPUT POINTER /3- INCREMENT THE DMC INPUT POINTER /4- IF LAST BIT INDICATOR IS SET, OR / IF THE DMC INPUT AND INPUT END POINTERS CROSS / GIVE INPUT COMPLETED INTERRUPT /5- GO TO 1 /HIBB SERVES AS THE DMC INPUT POINTER /HIBC SERVES AS THE DMC INPUT END POINTER /CALLING SEQUENCE /FAKE HOST NUMBER IN X REG - 0=TTY,1=DDT,2=TRACE,3=STATIST'' /SIGN BIT OF X REG IS LAST BIT INDICATOR - BIT ON=LAST BIT /THE WORD TO GIVE TO THE IMP IN A REG /JST JAM - SEND THIS WORD TO IMP FROM THIS FAKE HOST / - IMPLICIT BACKGROUND WAIT UNTIL THIS WORD IS TAKEN / - AND ANOTHER WORD MAY BE SENT LEV BCK 13255 000000 7 GAM: 0 13256 151370 7 STA HIBB XI /STORE NEXT WORD THROUGH INPUT PNTR 13257 065370 7 IRS HIBB X /INCREMENT INPUT PNTR 13260 004000 7 LDA 0 13261 100400 7 SPL /IS LAST BIT FLAG SET? 13262 003314 7 JMP GAM2 /YES 13263 045374 7 LDA HIBC X 13264 057370 7 SUB HIBB X 13265 101400 7 SMI /HAVE PNTRS CROSSED? 13266 103255 7 JMP GAM I /NO, RETURN 13267 005242 7 LDA HER+NH+3 /(NOP) 13270 051364 7 GAM1: STA EMFH+NH X /SET UP LAST BIT INSTRUCTION FOR HO-T 13271 005255 7 LDA GAM 13272 051316 7 STA GAMT X /SAVE RETURN ADDRESS 13273 004000 7 LDA 0 13274 140100 7 SSP 13275 011322 7 STA GAMX 13276 014130 7 ADD PLNH 13277 010000 7 STA 0 /SET UP X REG FOR THIS FAKE HOST 13300 001001 7 INH SIN /SOFTWARE INTERRUPT HOST-TO-IMP 13301 000013 7 0 EXA 13302 021137 7 0 JST HISB RET BCK 13303 001001 7 INH ALL 13304 120672 7 0 JST DODXA I RET BCK 13305 073322 7 LDX GAMX 13306 045174 7 GAM3: LDA HITT+NH X /TIMER HAS THREE POSSIBLE STATES 13307 140401 7 CMA /0 - WAITING FOR LEADER INPUT 13310 100040 7 SZE /-1 - WAITING FOR SOFTWARE INTERRU>T 13311 143316 7 JMP GAMT XI /IF NOT -1, INPUT CAN GO, SO RETURN 13312 120674 7 JST DOZE I /-N - WAITING FOR DATA INPUT DEFPLC [JAM CALL TO DOZE] 13313 003306 7 JMP GAM3 /WAIT UNTIL INPUT IS ALLOWED 13314 004112 7 GAM2: LDA SIGN /(SKP) 13315 003270 7 JMP GAM1 LEV VAR DEFPLC [GAMT] 13316 V GAMT: BSS FH /TABLE OF RETURN ADDRESSES 13322 V GAMX: BSS 1 PAGE 129 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI 13323 000000 7 0 HIST: 0 /RESTART HOST TO IMP 13324 140040 7 0 CRA 13325 051400 7 0 STA HISP X 13326 011137 7 0 STA HISB /IN CASE NON-DXA IMP RELOADED FROM DX! 13327 111734 7 0 STA (HIDEST 0 X) I 13330 045340 7 0 LDA HISTAB X 13331 050457 7 0 STA HILO X /SET UP INITIAL ADDRESS TO GO TO 13332 045350 7 0 LDA EMIT X 13333 051360 7 0 STA EMFH X /SET UP EOM INSTRUCTION 13334 000013 7 0 EXA 13335 021137 7 0 JST HISB /CALL HOST 13336 120672 7 0 JST DODXA I RET BCK 13337 103323 7 JMP HIST I LEV CON 13340 013420 C HISTAB: HISTRH /INITIAL COROUTINE ENTRANCES 13341 013420 C HISTRH 13342 C TIPDEF HISTRH, HISTFH 02377 013342 C 02427 013420 C 02457 013473 C 13343 013420 C HISTRH 13344 013473 C HISTFH 13345 013473 C HISTFH 13346 013473 C HISTFH 13347 013473 C HISTFH 13350 C EMIT: BSS 1 /SKIP ON LAST BIT INSTRUCTIONS 13351 C BSS 1 /SET UP BY INIT 13352 C TIPDEF H3EOM, SKP 02400 013352 C 02430 070250 C 02460 100000 C 13353 C BSS 1 13354 100000 C SKP 13355 100000 C SKP 13356 100000 C SKP 13357 100000 C SKP LEV VAR 13360 V EMFH: BSS TH /SKIP ON END OF MESSAGE FROM HOST 13370 V HIBB: BSS FH /DMC INPUT PNTRS FOR FAKE HOSTS 13374 V HIBC: BSS FH /DMC INPUT END PNTRS FOR FAKE HOSTS 13400 V HISP: BSS TH /POINTER TO CURRENT BUFFER 13410 V HINWAT: BSS TH /HOLD UP HOST INPUT LEV H2I 13420 005735 4 HISTRH: LDA (HIFRST) /DISCARD FIRST INPUT OF REAL HOST 13421 003474 4 JMP HISTLO ^L PAGE 130 IMP,3147,IMP 4:35 PM 7/19/1974 13422 004000 4 HIDOWN: LDA 0 13423 041577 4 ALS 1 13424 010000 4 STA 0 13425 045510 4 LDA HICWS+1 X /GET HOST-GOING-DOWN INFO 13426 072703 4 LDX HIP 13427 050730 4 STA HDOWN X /AND SAVE IT DEFPLC [HI - WAITING FOR A PKT TO THROW AWAY] 13430 140040 4 HIDISC: CRA 13431 127734 4 IMA (HIDEST 0 X) I 13432 101400 4 SMI /DID THIS GUY JUST TAKE TOO LONG? 13433 003441 4 JMP HIDSC1 /NO 13434 005736 4 LDA (HIDISC) 13435 050457 4 STA HILO X 13436 140040 4 CRA /DDNT'T SET ALARM CLOCK AGAIN 13437 051170 4 STA HITT X 13440 003570 4 JMP HIDONE 13441 045400 4 HIDSC1: LDA HISP X /FLUSH HISP 13442 101040 4 SNZ 13443 003452 4 JMP HIFRST 13444 010000 4 STA 0 13445 050111 4 STA BUFE X 0"A"TWOQ 13446 001001 4 INH FRE 13447 120700 4 0 JST FLUSHI I 13450 000401 4 0 ENB H2I 13451 072703 4 LDX HIP ^L PAGE 131 IMP,3147,IMP 4:35 PM 7/19/1974 DEFPLC [HI - WAITING FOR INITIAL INPUT] 13452 045360 4 HIFRST: LDA EMFH X /IS EOM SET? 13453 011455 4 STA .+2 13454 005736 4 LDA (HIDISC) 13455 4 BSS 1 13456 003543 4 JMP HINLO /NO 13457 105734 4 HIDB: LDA (HIDEST 0 X) I 13460 100400 4 SPL /HOST SLOW? 13461 003430 4 JMP HIDISC /YES 13462 140040 4 CRA 13463 051400 4 STA HISP X 13464 045360 4 LDA EMFH X /IS EOM SET? 13465 011466 4 STA .+1 13466 4 BSS 1 13467 003534 4 JMP HINBUF /NO 13470 045410 4 HIWAIT: LDA HINWAT X /INPUT TO BE BLOCKED? 13471 100040 4 SZE 13472 003505 4 JMP HIBLKD /YES 13473 005737 4 HISTFH: LDA (HILEAD) 13474 050457 4 HISTLO: STA HILO X 13475 140040 4 CRA 13476 051170 4 STA HITT X /GIVE HIM FOREVER TO INPUT NEXT MES'A 13477 004000 4 LDA 0 13500 041577 4 ALS 1 13501 015740 4 ADD (I 0 HICWS) 13502 151212 4 STA HIB1 XI 13503 141206 4 AOA 13504 003563 4 JMP HINB2 13505 021155 4 HIBLKD: JST HIWM DEFPLC [HI - INPUT BEING BLOCKED BY OUTPUT] 13506 003470 4 JMP HIWAIT LEV VAR DEFPLC [HI - 2 WORD INPUT AREA] 13507 V HICWS: BSS TH+TH ^L PAGE 132 IMP,3147,IMP 4:35 PM 7/19/1974 LEV H2I 13527 044457 4 HIWBUF: LDA HILO X 13530 051400 4 STA HISP X /SAVE RETURN ADDRESS 13531 021155 4 JST HIWM DEFPLC [HI - NO FREE SPACE] 13532 045400 4 LDA HISP X 13533 003543 4 JMP HINLO /RESTORE RETURN ADDRESS 13534 005741 4 HINBUF: LDA (PKTN1) 13535 115742 4 ADD (HIH1 0 X) I 13536 111742 4 STA (HIH1 0 X) I 13537 007743 4 ANA (PKTNO) 13540 101040 4 SNZ /WILL NEXT PKT BE NO 10? 13541 003430 4 JMP HIDISC /YES 13542 005744 4 LDA (HI25) 13543 050457 4 HINLO: STA HILO X 13544 005745 4 LDA (0 0 -15000."Q"25.) 13545 051170 4 STA HITT X /GIVE HOST 15 SECS TO INPUT PKT 13546 001001 4 INH FRE 13547 004540 4 0 LDA NFA 13550 016565 4 0 SUB NFS 13551 016575 4 0 SUB MINF 13552 100400 4 0 SPL 13553 003527 4 0 JMP HIWBUF /NOT ENOUGH BUFFERS FOR MODEM INPUT 13554 121746 4 0 JST (GFREE) I 13555 003527 4 0 JMP HIWBUF 13556 000401 4 0 ENB H2I 13557 051400 4 STA HISP X /SAVE POINTER TO BUFFER 13560 015747 4 ADD (I 0 DATA) 13561 151212 4 STA HIB1 XI /THIS CONSTANT DETERMINES PACKET LENGTH FOR THE WHOLE IMPSYS 13562 015750 4 ADD (BUFE-2-DATA) /ALLOW FOR CHKSM 13563 140100 4 HINB2: SSP /FOR FAKE HOSTS 13564 151222 4 STA HIB2 XI 13565 045243 4 LDA HIN X 13566 011567 4 STA .+1 13567 4 BSS 1 13570 005167 4 HIDONE: LDA HIMS /RESTORE MASK 13571 001001 4 INH MSK 13572 170120 4 0 SMK INTM 13573 010134 4 0 STA PRIM 13574 005165 4 0 LDA HIK 13575 000013 4 0 EXA 13576 171020 4 0 OTK 13577 073166 4 0 LDX HIX /RESTORE IR 13600 005164 4 0 LDA HIA /RESTORE AC 13601 000401 4 0 ENB H2I 13602 103137 4 JMP HISB I 13603 145212 4 HIFAKE: LDA HIB1 XI 13604 140100 4 SSP 13605 151212 4 STA HIB1 XI 13606 003570 4 JMP HIDONE ^L PAGE 133 IMP,3147,IMP 4:35 PM 7/19/1974 /GENERATE H-I CHECKSUM ON PACKET IN X LEV H2I 13607 000000 4 HICKSM: 0 13610 005751 4 LDA (HICKAD) /GRAB ADDER 13611 026111 4 IMA ADDRET /AND SAVE OLD OWNER 13612 011704 4 STA HIAR 13613 044111 4 LDA BUFE X 13614 140100 4 SSP 0"A"TWOQ 13615 011703 4 STA HICKT 13616 140407 4 TCA 13617 014000 4 ADD 0 13620 015752 4 ADD (ADDBOT+ACKH+1) 13621 011631 4 STA HICKAJ 13622 017753 4 SUB (ADDBOT+1) /- NO OF WORDS 13623 022627 4 CAS ADDL /PACKET LENGTH OK? 13624 101000 4 NOP 13625 101400 4 SMI 13626 003637 4 JMP HICBDL /NO 13627 025607 4 IRS HICKSM /OK, GIVE R2 13630 103631 4 JMP HICKAJ I 13631 4 HICKAJ: BSS 1 13632 140407 4 HICKAD: TCA DEFPLC [NOP HERE TO TURN OFF H2I CHECKSUM GENERATION] 13633 111703 4 STA HICKT I /STORE CKSM 13634 005704 4 HICKRT: LDA HIAR /PUT BACK OLD ADDER OWNER 13635 010111 4 STA ADDRET 13636 103607 4 JMP HICKSM I 13637 072703 4 HICBDL: LDX HIP /REPORT BAD PACKET LENGTH 13640 001001 4 INH ALL DEFHLT [HI BAD BACKET LENGTH FOR ADDER] 13641 021642 4 0 JST .+1 13642 000000 4 0 0 13643 120745 4 0 JST HLTNCC I 13644 000401 4 0 ENB H2I 13645 172705 4 LDX HIXX I 13646 004000 4 LDA 0 /NOW FIX LENGTH SO NEXT TIME WILL BE 13647 014751 4 ADD CMINPL 13650 066111 4 IMA BUFE X 13651 006112 4 ANA SIGN 0"A"TWOQ /KEEP SIGN BIT 13652 052111 4 ERA BUFE X 13653 050111 4 STA BUFE X 13654 003634 4 JMP HICKRT ^L PAGE 134 IMP,3147,IMP 4:35 PM 7/19/1974 13655 000000 4 HILOOP: 0 13656 105754 4 LDA (HSTMAP 0 X) I /GET LOGICAL HBTS 13657 141140 4 ICL 13660 010000 4 STA 0 13661 045724 4 LDA HBTS X 13662 012106 4 ERA MINE 13663 072703 4 LDX HIP 13664 111742 4 STA (HIH1 0 X) I 13665 004143 4 LDA HL2WD 13666 111755 4 STA (HIH3 0 X) I 13667 103655 4 JMP HILOOP I 13670 021655 4 HIEXER: JST HILOOP 13671 105742 4 HITEST: LDA (HIH1 0 X) I /MSG A NOP? 13672 007756 4 ANA (HICODE) 13673 013757 4 ERA (CNOP) 13674 100040 4 SZE 13675 003430 4 JMP HIDISC /NO, FLUSH MESSAGE 13676 105755 4 LDA (HIH3 0 X) I /DATA WORD MATCH? 13677 012143 4 ERA HL2WD 13700 101040 4 SNZ 13701 125760 4 IRS (HLRCVD) I /YES, COUNT A GOOD ONE 13702 003430 4 JMP HIDISC /AND FLUSH MSG LEV VAR 13703 V HICKT: BSS 1 13704 V HIAR: BSS 1 LEV H2I /USE TO CLEAN UP UNTIL IMPDIE LOGIC TAKES OVER 13705 000000 4 HIWMD: 0 /HIWM WITH DEAD TEST 13706 072703 4 LDX HIP 13707 173734 4 LDX (HIDEST 0 X) I 13710 044165 4 LDA RUT X 13711 072703 4 LDX HIP 13712 100400 4 SPL 0"A"RUTDED /IS DEST IMP DEAD? 13713 103761 4 JMP (HI19) I /YES 13714 044505 4 LDA HIHD X 0"A"HSTUP 13715 100040 4 SZE /IS SOURCE HOST DEAD? 13716 103762 4 JMP (HIERR) I /YES 13717 105763 4 LDA (HIRST 0 X) I 13720 101040 4 SNZ /DID A RESET HAPPEN? 13721 103764 4 JMP (HIBLK) I /YES 13722 005705 4 LDA HIWMD 13723 003160 4 JMP HIWM1 /NO, WAIT ONE TICK LEV CON 13724 000000 C HBTS: 0 /FROM IMP AND HOST BITS 13725 000100 C 100 13726 000200 C 200 13727 000300 C 300 13730 040000 C 40000 13731 040100 C 40100 13732 040200 C 40200 13733 040300 C 40300 ^L PAGE 135 IMP,3147,IMP 4:35 PM 7/19/1974 13734 054250 C LEV CON CONSTANTS 13735 013452 C 13736 013430 C 13737 014116 C 13740 113507 C 13741 000400 C 13742 054220 C 13743 003400 C 13744 014601 C 13745 176650 C 13746 010241 C 13747 100011 C 13750 000076 C 13751 013632 C 13752 011611 C 13753 011605 C 13754 054300 C 13755 054240 C 13756 007400 C 13757 002000 C 13760 021565 C 13761 014361 C 13762 014312 C 13763 054105 C 13764 014316 C 02511 176772 C PAGEND 13,UNCON,-2 ^L PAGE 136 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 14104 000000 V HICW1: 0 /TEMP USED TO RETRIEVE CONTROL WORDS 14105 V HIRST: BSS TH /ZERO => GIVE UP THIS MESSAGE, A RESE LEV H2I 14115 121710 4 HIHDN: JST (HIWM) I DEFPLC [HI - WAITING FOR LEADER] VD.1P: 14116 004114 4 HILEAD: LDA ONE /TURN OFF 14117 051105 4 STA HIRST X /FLAG 14120 044505 4 LDA HIHD X 14121 022116 4 CAS THREE 14122 003115 4 JMP HIHDN 0"A"HSTNIN 14123 101000 4 NOP 14124 101040 4 SNZ /WERE WE DEAD BEFORE? 14125 003130 4 JMP .+3 /NO 14126 140040 4 CRA /YES, ERASE OLD DOWN DATA 14127 050730 4 STA HDOWN X 14130 004000 4 LDA 0 /SET UP HIH1, HIH3 FROM CONTROL INP + 14131 041577 4 ALS 1 14132 010000 4 STA 0 14133 105711 4 LDA (HICWS 0 X) I 14134 011104 4 STA HICW1 14135 105712 4 LDA (HICWS+1 X) I 14136 072703 4 LDX HIP 14137 007713 4 ANA (LINKNO) 14140 051240 4 STA HIH3 X 14141 005104 4 LDA HICW1 0"A"[PRIBIT 0 FORIMP TRACE FOROCT DESTHI] 14142 051220 4 STA HIH1 X 0"A"PKTNO 14143 007714 4 ANA (HICODE) 14144 141140 4 ICL 14145 015715 4 ADD (HI2 0 I) 14146 051210 4 STA HIH0 X 14147 017205 4 SUB HIDE 14150 101400 4 SMI 14151 103203 4 JMP HI2+7 I /ASSUMES NO TYPE 7 MESSAGE 14152 105716 4 LDA (HER 0 X) I 14153 011154 4 STA .+1 14154 4 BSS 1 /ERROR?, LOOP JST, OR EXER OR TEST JM 14155 100000 4 SKP /NO 14156 003312 4 JMP HIERR /ERROR BIT SET IN LEADER 14157 140040 4 CRA 0"A"HSTUP 14160 066505 4 IMA HIHD X 14161 100040 4 SZE /WAS HOST DOWN? 14162 104706 4 LDA IHXX I /YES, IS OUTPUT IN PROGRESS? 14163 101040 4 SNZ 14164 003167 4 JMP .+3 /NOT BOTH 14165 004107 4 LDA M30SEC /WAS DOWN, GIVE OUTPUT FULL 30 SECS 14166 111717 4 STA (IHTT 0 X) I 14167 105720 4 LDA (EMFH 0 X) I /YES 14170 011171 4 STA .+1 14171 4 BSS 1 /EOM? 14172 143210 4 DEFSTAT JMP HIH0 XI, HS2 /N0,DISPATCH ON TYPE 00613 031123 4 32116 014172 4 32136 143210 4 14173 003311 4 JMP HISHRT /YES, LESS THAN 32 BIT MESSAGE ^L PAGE 137 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 14174 014332 C HI2: HI20 /0 - REG 14175 013430 C HIDISC /1 - IMP FORMAT ERROR 14176 013422 C HIDOWN /2 - HOST GOING DOWN 14177 014310 C HIBADC /3 14200 013430 C HIDISC /4 - NOP 14201 014310 C HIBADC /5 14202 014310 C HIBADC /6 14203 014310 C HIBADC /7 - USED IN CODE FOR HIBADC REFERENC 14204 013430 C HIDISC /8 - IMP FORMAT ERROR WITH ID 14205 114205 C HIDE: . 0 I LEV VAR /MORE OF HOST-TO-IMP, INCLUDING PACKET PROCESSING 14206 V HIT1: BSS 1 /TEMP 14207 V HITF: BSS 1 14210 V HIH0: BSS TH /SAVED HEAD,HEAD1,HEAD2,HEAD3 14220 V HIH1: BSS TH 14230 V HIH2: BSS TH 14240 V HIH3: BSS TH 14250 V HIDEST: BSS TH /DESTINATION OF CURRENT MESS /SIGN BIT ON MEANS HOST TOOK TOO LO . 14260 V HILINK: BSS TH /PNTR TO SAVED LINK+SUB-CODE WORD 14270 V HIBLKT: BSS TH /TIME TO WAIT FOR MESS NO 14300 V HSTMAP: BSS TH /PHYSICAL TO LOGICAL IN LEFT HALF /LOGICAL TO PHYSICAL IN RIGHT HALF LEV H2I 14310 065240 4 HIBADC: IRS HIH3 X 0"A"CILLGL 14311 065240 4 HISHRT: IRS HIH3 X 0"A"CSHORT 14312 140040 4 HIERR: CRA 0"A"CERR32 14313 051220 4 STA HIH1 X 14314 005721 4 LDA (CERRLD) 14315 003362 4 JMP HI16 14316 005722 4 HIBLK: LDA (CBLOCK) 14317 053240 4 HIBLK1: ERA HIH3 X 14320 051240 4 STA HIH3 X 14321 005723 4 LDA (CINCTR) 14322 003362 4 JMP HI16 LEV H2I LCK ALL 14323 000000 4 0 HIPK1S: 0 14324 120745 4 0 JST HLTNCC I 14325 000401 4 0 ENB H2I 14326 140500 4 SSM 14327 051250 4 STA HIDEST X 14330 004115 4 LDA TWO 0"A"CSLOWS 14331 003317 4 JMP HIBLK1 ^L PAGE 138 IMP,3147,IMP 4:35 PM 7/19/1974 14332 004703 4 HI20: LDA HIP /FIGURE OUT HOW LONG TO WAIT FOR ME'3 14333 012130 4 ERA PLNH 0"A"FHPTTY /IS THIS FROM TTY? 14334 100040 4 SZE /GIVE IT 150 MS OR 15 SECS IF NOT 14335 005724 4 LDA (0 0 -6"X"-450.) 14336 012126 4 ERA MINUS6 /15 SECS FOR ALL OTHER HOST 14337 051270 4 STA HIBLKT X 14340 045220 4 LDA HIH1 X 14341 007725 4 ANA (DESTI) 14342 051250 4 STA HIDEST X 14343 010000 4 STA 0 14344 044165 4 LDA RUT X 14345 072703 4 LDX HIP 14346 101400 4 SMI 0"A"CIMPD 0"A"RUTDED 14347 007726 4 ANA (RUTCMU) /HOSTS AT DEAD IMPS ARE DEAD 14350 100040 4 SZE /IS THERE A DELAY IN BRINGING THIS IM 14351 003361 4 JMP HI19 /YES, IMP IS STILL DEAD 14352 045220 4 LDA HIH1 X 14353 007727 4 ANA (FORIMP 0 DESTH) 14354 013730 4 ERA (FHLPRM) 14355 101010 4 SS2 /ALL HOSTS ARE UP IF SS2 IS UP 14356 100040 4 SZE /PARAM CHANGE IS DOWN IF IT'S NOT 14357 003374 4 JMP HI23 /HOST IS UP 14360 065240 4 HI18: IRS HIH3 X 0"A"CHSTD 14361 005731 4 HI19: LDA (CDESTD) 14362 051210 4 HI16: STA HIH0 X 14363 001001 4 HI17: INH FRE 14364 045240 4 0 LDA HIH3 X 14365 010516 4 0 STA TWDP 14366 045220 4 0 LDA HIH1 X 14367 053210 4 0 ERA HIH0 X 14370 120677 4 0 JST OWP I 14371 103732 4 0 JMP (HIDISC) I 14372 121710 4 0 JST (HIWM) I RET H2I DEFPLC [HI - WAITING FOR TWO-WORD STORE] 14373 003363 4 JMP HI17 ^L PAGE 139 IMP,3147,IMP 4:35 PM 7/19/1974 14374 045300 4 HI23: LDA HSTMAP X /PUT IN LOGICAL HOST SOURCE 14375 141140 4 ICL 14376 010000 4 STA 0 14377 105733 4 LDA (HBTS 0 X) I 14400 011206 4 STA HIT1 /TEMP FOR LATER 14401 072703 4 LDX HIP 14402 045220 4 LDA HIH1 X 14403 007734 4 ANA (FOROCT) 0"A"LSTPKT 14404 012106 4 ERA MINE /CONSTRUCT SOURCE 14405 013206 4 ERA HIT1 0"A"SRCEH 14406 051230 4 STA HIH2 X 14407 004703 4 LDA HIP 14410 013735 4 ERA (FHPTRC) 14411 100040 4 SZE /DO NOT AUTO-TRACE TRACE 14412 105736 4 LDA (TF) I 14413 100040 4 SZE /IS AUTO TRACE ON? 14414 003445 4 JMP HITRCE /SEE IF IT'S TIME TO TRACE 14415 005737 4 HI24: LDA (HIPKT1) 14416 103740 4 JMP (HINLO) I DEFPLC [HI - WAITING FOR FIRST PKT] 14417 001001 4 HIPKT1: INH ALL 14420 105741 4 0 LDA (HITT 0 X) I 14421 101040 4 0 SNZ /DID ALARM CLOCK GO OFF? DEFHLT [HI FIRST PKT TIMED OUT] 14422 021323 4 0 JST HIPK1S /YES 14423 000401 4 0 ENB H2I 14424 105720 4 LDA (EMFH 0 X) I 14425 011426 4 STA .+1 14426 4 BSS 1 14427 003507 4 JMP HI22A8 /MULTI-PACKET INPUT 14430 003435 4 JMP HI22A1 14431 065270 4 HI221: IRS HIBLKT X /HAVE WE WAITED TOO LONG? 14432 100000 4 SKP /NO 14433 003316 4 JMP HIBLK /YES, SEND BACK BLOCKED 14434 121742 4 JST (HIWMD) I DEFPLC [HI - WAITING FOR MESS NO FOR 1 PKT MESS] 14435 045220 4 HI22A1: LDA HIH1 X 14436 007743 4 ANA (PRIBIT 0 DESTI) 14437 121744 4 JST (MESGET) I 14440 003431 4 JMP HI221 /MESSNO IN USE, WAIT 14441 013745 4 ERA (ONEOR8 0 REQALL) /1PKT 14442 051210 4 STA HIH0 X /SET UP HIH0, HIH2 14443 121746 4 JST (HIPKT) I 14444 003475 4 JMP HIPPT ^L PAGE 140 IMP,3147,IMP 4:35 PM 7/19/1974 14445 105747 4 HITRCE: LDA (ATDEST) I /GET AUTOTRACE DEST 14446 100040 4 SZE /TRACE ALL DESTS? 14447 053220 4 ERA HIH1 X /OR... 14450 007750 4 ANA (FORIMP 0 DESTHI) 14451 100040 4 SZE /TRACE THIS DEST? 14452 003415 4 JMP HI24 /NO ON BOTH, DO NOT TRACE 14453 105751 4 LDA (ATSRCE) I /GET AUTO TRACE SOURCE 14454 100040 4 SZE /TRACE ALL SOURCES? 14455 053230 4 ERA HIH2 X /OR... 14456 007750 4 ANA (FRMIMP 0 SRCEHI) 14457 100040 4 SZE /TRACE THIS SOURCE? 14460 003415 4 JMP HI24 /NO FOR BOTH, DON'T 14461 025207 4 IRS HITF /TRACE IF IT'S TIME 14462 003415 4 JMP HI24 /NOT YET 14463 045220 4 LDA HIH1 X /YES 14464 007752 4 ANA (0 0 177777"X"TRACE) 14465 013753 4 ERA (TRACE) /TURN ON TRACE BIT 14466 051220 4 STA HIH1 X 14467 105736 4 LDA (TF) I 14470 140407 4 TCA 14471 011207 4 STA HITF /RESET AUTO TRACE INTERVAL 14472 003415 4 JMP HI24 14473 121742 4 HIPPT0: JST (HIWMD) I DEFPLC [HI - WAITING FOR PPT SLOT FOR REQ1] 14474 172705 4 LDX HIXX I 14475 121754 4 HIPPT: JST (PPTPUT) I 14476 003473 4 JMP HIPPT0 /NO ROOM IN PPT, WAIT 14477 051260 4 HIMESS: STA HILINK X /SAVE PNTR INTO PPT OR PLT 14500 045250 4 LDA HIDEST X 14501 121755 4 JST (HTPMT) I /COUNT A MESSAGE OF THROUGHPUT 14502 003610 4 JMP HI26 14503 065270 4 HI228: IRS HIBLKT X /HAVE WE WAITED TOO LONG? 14504 100000 4 SKP /NO 14505 003316 4 JMP HIBLK /YES, SEND BACK BLOCKED 14506 121742 4 JST (HIWMD) I DEFPLC [HI - WAITING FOR MESS NO FOR 8 PKT MESS] 14507 045220 4 HI22A8: LDA HIH1 X 14510 007743 4 ANA (PRIBIT 0 DESTI) 14511 121744 4 JST (MESGET) I 14512 003503 4 JMP HI228 /MESSNO IN USE, WAIT 14513 051210 4 STA HIH0 X /SET UP HIH0, HIH2 14514 045250 4 LDA HIDEST X 14515 121756 4 JST (TALLYG) I /ANY ALLOC FROM OUR DEST? 14516 003526 4 JMP HIPLT2 /NO 14517 121746 4 HIPLTA: JST (HIPKT) I 14520 072703 4 LDX HIP 14521 003523 4 JMP HIPLT1 14522 121742 4 JST (HIWMD) I DEFPLC [HI - WAITING FOR PLT SLOT FOR MESS8] 14523 121757 4 HIPLT1: JST (PLTPUT) I 14524 003522 4 JMP .-2 /NO PLT ROOM, WAIT 14525 003477 4 JMP HIMESS ^L PAGE 141 IMP,3147,IMP 4:35 PM 7/19/1974 14526 005760 4 HIPLT2: LDA (REQALL) /MARK AS REQUEST FOR 8 14527 053210 4 ERA HIH0 X 14530 051210 4 STA HIH0 X 14531 121746 4 JST (HIPKT) I /COPY HEADER 14532 072703 4 LDX HIP 14533 100000 4 SKP 14534 121742 4 JST (HIWMD) I DEFPLC [HI - WAITING FOR PLT SLOT FOR REQ8] 14535 121757 4 JST (PLTPUT) I 14536 003534 4 JMP .-2 /NO PLT ROOM, WAIT 14537 051260 4 STA HILINK X /SAVE PNTR INTO PLT 14540 172705 4 HIPLT3: LDX HIXX I 14541 004000 4 LDA 0 14542 015761 4 ADD (TWOQ MINPL) /MARK AS ON TWO QUEUES, SINCE ME 14543 050111 4 STA BUFE X /FROM SAME BUFFER 14544 121762 4 JST (HICKSM) I /MAKE A CHECKSUM 14545 003544 4 JMP .-1 /R1 CANT HAPPEN TWICE HERE...SHOULD B 14546 001001 4 INH M2I 14547 132404 4 0 STX ETQ I 14550 032404 4 0 STX ETQ 14551 030041 4 0 TASK 14552 121710 4 0 HIPLT4: JST (HIWM) I RET H2I DEFPLC [HI - WAITING FOR TASK TO TAKE A REQ8] 14553 003552 4 JMP HIPLT4 14554 003540 4 JMP HIPLT3 /TASK REFUSED IT 14555 045250 4 HIPLT5: LDA HIDEST X 14556 121756 4 JST (TALLYG) I /ANY ALLOC FROM OUR DEST? 14557 003561 4 JMP HIPLT6 /NO 14560 003564 4 JMP HIPLT8 14561 121742 4 HIPLT6: JST (HIWMD) I DEFPLC [HI - WAITING FOR ALL8] 14562 003555 4 HIALL: JMP HIPLT5 14563 121710 4 HIPLT7: JST (HIWM) I 14564 172705 4 HIPLT8: LDX HIXX I 14565 044111 4 LDA BUFE X 14566 100400 4 SPL 0"A"TWOQ /HAS THE ACK FOR THIS PKT BEEN PROC=S 14567 003563 4 JMP HIPLT7 /NOT YET, PKT STILL ON LINE, SO WAIT 14570 072703 4 LDX HIP 14571 003573 4 JMP HIPLT0 14572 121742 4 HIPLT9: JST (HIWMD) I DEFPLC [HI - WAITING FOR MESS NO FOR MESS8] 14573 045250 4 HIPLT0: LDA HIDEST X /KEEP SAME ORDNO AS REQ8 14574 121744 4 JST (MESGET) I /GET NEW MESS NO FOR MESS8 14575 003572 4 JMP HIPLT9 /MESS NO IN USE, WAIT 14576 051210 4 STA HIH0 X 0"A"REQALL /SAVE IN HEADER 14577 111741 4 STA (HITT 0 X) I /DEFEAT INC TRN LOGIC 14600 003517 4 JMP HIPLTA ^L PAGE 142 IMP,3147,IMP 4:35 PM 7/19/1974 /TOP OF PACKET LOOP LEV H2I DEFPLC [HI - WAITING FOR MIDDLE PACKET] 14601 121746 4 HI25: JST (HIPKT) I /SET UP HEADER AND BUFFER CONTROL W'9 14602 072703 4 LDX HIP 14603 105741 4 LDA (HITT 0 X) I 14604 001001 4 INH ALL 14605 101040 4 0 SNZ /DID ALARM CLOCK GO OFF? DEFHLT [HI MIDDLE OR LAST PACKET TIMED OUT] 14606 021655 4 0 JST HIPSLO /YES 14607 000401 4 0 ENB H2I 14610 105716 4 HI26: LDA (HER 0 X) I 14611 011612 4 STA .+1 14612 4 BSS 1 /ERROR? 14613 003635 4 JMP HI84 /NO 14614 005722 4 LDA (CERROR) /YES, MARK MESS AS ERROR IN DATA 14615 072703 4 HISUBC: LDX HIP 14616 153260 4 ERA HILINK XI /PUT IN NEW SUB CODE 14617 006120 4 ANA SEVEN 0"A"SUBCOD 14620 153260 4 ERA HILINK XI /INTO PNTR TO LINK AND SUB CODE WORD 14621 151260 4 STA HILINK XI 14622 172705 4 LDX HIXX I 14623 044005 4 LDA HEAD X 14624 007763 4 ANA (0 0 177777"X"INCTRN) 14625 013764 4 ERA (INCTRN) /SET INC TRN BIT 14626 050005 4 STA HEAD X 14627 044006 4 LDA HEAD1 X 0"A"RSTREP 14630 007765 4 ANA (0 0 177777"X"PKTNO) 14631 050006 4 STA HEAD1 X /AVOID LOOKING LIKE RESET REPLY 14632 121762 4 JST (HICKSM) I /CHECKSUM PACKET 14633 003632 4 JMP .-1 /R1 HAPPENS HERE ONLY FOR ERROR OR ,O 14634 003700 4 JMP H2TASK 14635 045250 4 HI84: LDA HIDEST X /COUNT A PACKET OF THROUGHPUT 14636 121766 4 JST (HTPPT) I 14637 105720 4 LDA (EMFH 0 X) I 14640 011641 4 STA HIEM1 14641 4 HIEM1: BSS 1 /IS EOM SET? 14642 003644 4 JMP .+2 /NO 14643 003672 4 JMP HI87 /YES 14644 045220 4 LDA HIH1 X /GET PACKET # 14645 007731 4 ANA (PKTNO) 14646 013731 4 ERA (PKTNO) 14647 101040 4 SNZ /IS PKT NO-7 ? 14650 003653 4 JMP HIPLNG /YES 14651 172705 4 HI85: LDX HIXX I 14652 003676 4 JMP HI86 /NO ^L PAGE 143 IMP,3147,IMP 4:35 PM 7/19/1974 14653 004114 4 HIPLNG: LDA ONE 0"A"CLONG 14654 003615 4 JMP HISUBC /MARK MESS AS TOO LONG LEV H2I LCK ALL 14655 000000 4 0 HIPSLO: 0 14656 120745 4 0 JST HLTNCC I /REPORT TRAP 14657 000401 4 0 ENB H2I 14660 140500 4 SSM 14661 051250 4 STA HIDEST X /MARK HOST AS SLOW 14662 172705 4 LDX HIXX I 14663 004000 4 LDA 0 /PUT PACKET ON 2 QUEUES 14664 015761 4 ADD (MINPL 0 TWOQ) /SO THAT SAME BUFFER 14665 050111 4 STA BUFE X /STAYS IN INTERFACE 14666 004115 4 LDA TWO 0"A"CSLOWS 14667 003615 4 JMP HISUBC /MARK MESS AS TOO SLOW 14670 005767 4 HIDMCX: LDA (CDMCER) /"DMC" ERROR CODE 14671 003615 4 JMP HISUBC /TREAT AS INCTRN 14672 172705 4 HI87: LDX HIXX I 14673 044007 4 DEFSTAT LDA HEAD2 X, HS0 00614 031106 4 32117 014673 4 32137 044007 4 14674 140500 4 SSM 0"A"LSTPKT 14675 050007 4 STA HEAD2 X 14676 121762 4 HI86: JST (HICKSM) I /CHECKSUM PACKET 14677 003670 4 JMP HIDMCX /PACKET LENGTH WRONG 14700 001001 4 H2TASK: INH M2I 14701 132404 4 0 STX ETQ I /PUT PACKET ON TASK QUEUE 14702 032404 4 0 STX ETQ 14703 030041 4 0 TASK /POKE TASK INTERRUPT 14704 121710 4 0 H2TSKS: JST (HIWM) I RET H2I DEFPLC [HI - WAITING FOR TASK TO TAKE A PKT] 14705 003704 4 JMP H2TSKS /NO ACTION YET 14706 003651 4 JMP HI85 /TASK REFUSED IT 14707 103770 4 JMP (HIDB) I /TASK TOOK IT ^L PAGE 144 IMP,3147,IMP 4:35 PM 7/19/1974 14710 013155 C LEV CON CONSTANTS 14711 053507 C 14712 053510 C 14713 177760 C 14714 007400 C 14715 114174 C 14716 053233 C 14717 056370 C 14720 053360 C 14721 000400 C 14722 000004 C 14723 004400 C 14724 000704 C 14725 000077 C 14726 000340 C 14727 040300 C 14730 040200 C 14731 003400 C 14732 013430 C 14733 053724 C 14734 010000 C 14735 000006 C 14736 030444 C 14737 014417 C 14740 013543 C 14741 053170 C 14742 013705 C 14743 100077 C 14744 015272 C 14745 000300 C 14746 015111 C 14747 030455 C 14750 040377 C 14751 030456 C 14752 157777 C 14753 020000 C 14754 015175 C 14755 022562 C 14756 015225 C 14757 015350 C 14760 000100 C 14761 100010 C 14762 013607 C 14763 177767 C 14764 000010 C 14765 174377 C 14766 022573 C 14767 000005 C 14770 013457 C 02512 176777 C PAGEND 14,UNCON,-2 ^L PAGE 145 IMP,3147,IMP 4:35 PM 7/19/1974 LEV H2I 15111 000000 4 HIPKT: 0 15112 104705 4 LDA HIXX I /COPY HEADER 15113 015663 4 ADD (HEAD) 15114 011143 4 STA HIT2 15115 105664 4 LDA (HIH0 0 X) I 15116 111143 4 STA HIT2 I 15117 025143 4 IRS HIT2 15120 105665 4 LDA (HIH1 0 X) I 15121 111143 4 STA HIT2 I 15122 025143 4 IRS HIT2 15123 105666 4 LDA (HIH2 0 X) I 15124 111143 4 STA HIT2 I 15125 025143 4 IRS HIT2 15126 105667 4 LDA (HIH3 0 X) I 15127 111143 4 STA HIT2 I 15130 105670 4 LDA (HIB1 0 XI) I /SAVE LENGTH 15131 140100 4 SSP 0"A"TWOQ 15132 172705 4 LDX HIXX I /LEAVE ROOM FOR CKSUM WRD 15133 050111 4 STA BUFE X /SET UP TWOQ BIT AFTER CALL TO HIPK! 15134 131040 4 RDCLOK /SAVE TIME 15135 003134 4 JMP .-1 15136 050001 4 STA IT X 15137 004703 4 LDA HIP /USE PHYSICAL HOST NO 15140 140500 4 SSM 0"A"HSTMOD /FOR INPUT CHANNEL 15141 050003 4 STA INCH X 15142 103111 4 JMP HIPKT I LEV VAR 15143 V HIT2: BSS 1 ^L PAGE 146 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [T.O,TSK,BCK] LCK H2I /PENDING PACKET TABLE SUBROUTINES - LOCK INTERRUPTS 15144 000000 5 4 PPTGET: 0 /GET AN ENTRY FROM PPT 15145 011271 5 4 STA PPWANT /MATCH ON MESSNO AND IMPNO IN A 15146 005671 5 4 LDA (-PPTL) 15147 011270 5 4 STA PPTRY 15150 005672 5 4 LDA (PPT) 15151 011267 5 4 STA PPSLT 15152 105267 5 4 PPTL1: LDA PPSLT I /LOOK AT NEXT SLOT 15153 101040 5 4 SNZ /IS THIS SLOT OCCUPIED? 15154 003171 5 4 JMP PPTN1 /NO 15155 010000 5 4 STA 0 /YES. SO LOOK FOR MATCH 15156 044005 5 4 LDA HEAD X 15157 141044 5 4 CAR 0"A"MESSNO 15160 052006 5 4 ERA HEAD1 X 15161 007673 5 4 ANA (0 0 177777"X"DESTI) 15162 052006 5 4 ERA HEAD1 X 15163 013271 5 4 ERA PPWANT 15164 100040 5 4 SZE /MATCH ON MESSNO+IMPNO? 15165 003171 5 4 JMP PPTN1 /NO 15166 005267 5 4 LDA PPSLT /RETURN PNTR TO PPT PNTR IN AC 15167 025144 5 4 IRS PPTGET /SKIP=SUCCESS 15170 103144 5 4 JMP PPTGET I 15171 025267 5 4 PPTN1: IRS PPSLT /GET NEXT SLOT 15172 025270 5 4 IRS PPTRY 15173 003152 5 4 JMP PPTL1 /LOOP BACK 15174 103144 5 4 JMP PPTGET I /NO MATCH, NO SKIP LEV H2I 15175 000000 4 PPTPUT: 0 /PUT AN ENTRY INTO PPT - PNTR IN X 15176 004703 4 LDA HIP /TABLE IS PPTL DEEP FOR FAKE HOSTS 15177 040576 4 ARS 2 15200 140407 4 TCA 0"A"NH /AND PPTL-1 DEEP FOR REAL HOSTS 15201 015674 4 ADD (0 1-PPTL) 15202 011270 4 STA PPTRY 15203 005672 4 LDA (PPT) 15204 011267 4 STA PPSLT 15205 105267 4 PPTL2: LDA PPSLT I 15206 100040 4 SZE /IS THIS SLOT FREE? 15207 003221 4 JMP PPTN2 /NO 15210 133267 4 STX PPSLT I /YES, SO PUT IN OUR PNTR 15211 044111 4 LDA BUFE X 15212 140500 4 SSM 0"A"TWOQ /MARK PACKET AS ON 2 QUEUES 15213 050111 4 DEFSTAT STA BUFE X, HS4 00615 031317 4 32120 015213 4 32140 050111 4 15214 004000 4 LDA 0 15215 015675 4 ADD (HEAD3) 15216 072703 4 LDX HIP 15217 025175 4 IRS PPTPUT /SKIP=SUCCESS 15220 103175 4 JMP PPTPUT I 15221 025267 4 PPTN2: IRS PPSLT /GET NEXT SLOT 15222 025270 4 IRS PPTRY 15223 003205 4 JMP PPTL2 /LOOP BACK 15224 103175 4 JMP PPTPUT I /NO ROOM, NO SKIP PAGE 147 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [H2I,T.O,BCK] /TALLY TABLE SUBROUTINES - LOCK INTERRUPTS /ARG PASSED IN A, AND X PRESERVED 15225 000000 4 TALLYG: 0 /GET AN ENTRY FROM TALLY 15226 011264 4 STA TALLYT /IMPNO TO MATCH IN A 15227 033265 4 STX TALLYX 15230 073676 4 LDX (TALLY-1) 15231 024000 4 TALLYK: IRS 0 15232 004000 4 LDA 0 15233 023266 4 CAS TALLYI /COMPARE WITH IN PNTR 15234 003261 4 JMP TALLYR 15235 003261 4 JMP TALLYR /NO MATCH, NO SKIP 15236 044000 4 LDA 0 X 15237 013264 4 ERA TALLYT 15240 100040 4 SZE /IS THIS ENTRY ONE WE WANT? 15241 003231 4 JMP TALLYK /NO, LOOP BACK 15242 004000 4 LDA 0 15243 013677 4 ERA (TALLY) 15244 101040 4 SNZ /DID WE JUST GRAB THE OLDEST ALLOCA'-] 15245 111700 4 STA (TALLYC) I /YES, SO RESET TALLY CLOCK 15246 044001 4 TALLYM: LDA 1 X 15247 050000 4 STA 0 X /MOVE REST OF TABLE UP BY ONE SLOT 15250 024000 4 IRS 0 15251 004000 4 LDA 0 15252 013266 4 ERA TALLYI 15253 100040 4 SZE /DONE YET? 15254 003246 4 JMP TALLYM /NO, LOOP BACK 15255 005266 4 LDA TALLYI /YES, NOW ADJUST IN PNTR 15256 016114 4 SUB ONE 15257 011266 4 STA TALLYI 15260 025225 4 IRS TALLYG /SKIP=SUCCESS 15261 073265 4 TALLYR: LDX TALLYX /RESTORE X 15262 005264 4 LDA TALLYT /RESTORE A 15263 103225 4 JMP TALLYG I LEV VAR 15264 V TALLYT: BSS 1 /TEMP A 15265 V TALLYX: BSS 1 /TEMP X 15266 V TALLYI: BSS 1 /IN PNTR 15267 V PPSLT: BSS 1 /PNTR TO PPT ENTRY 15270 V PPTRY: BSS 1 /NO OF TIMES TO LOOK 15271 V PPWANT: BSS 1 /MESSNO + IMPNO WE WANT ^L PAGE 148 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [H2I,BCK] 15272 000000 4 MESGET: 0 /GET MESSNO, DEST IMP IN A 15273 033321 4 STX MESGX 15274 011320 4 STA MESGT 15275 140100 4 SSP 0"A"PRIBIT 15276 015701 4 ADD (TMESS) 15277 010000 4 STA 0 15300 105702 4 LDA (AMESS-0-TMESS X) I 15301 007703 4 ANA (MSNRST) 15302 100040 4 SZE /ARE WE RESETING? 15303 003316 4 JMP MESGND /YES, REFUSE 15304 044000 4 LDA 0 X 15305 101100 4 SLN 0"A"MESBTS 15306 003316 4 JMP MESGND /MESS NO IN USE 15307 005320 4 LDA MESGT 15310 100400 4 SPL 0"A"PRIBIT /NEED A NEW ORD NO? 15311 021477 4 JST UPORD /YES 15312 021465 4 JST UPMESS 15313 007704 4 ANA (MESSNO 0 ORDNO) 15314 013705 4 ERA (TRNREP) /MARK AS TRANSMISSION 15315 025272 4 IRS MESGET /SKIP=SUCCESS 15316 073321 4 MESGND: LDX MESGX 15317 103272 4 JMP MESGET I LEV VAR 15320 V MESGT: BSS 1 15321 V MESGX: BSS 1 LEV [T.O,TSK,BCK] LCK H2I /PENDING LEADER TABLE SUBROUTINES - LOCK INTERRUPTS 15322 000000 5 4 PLTGET: 0 /GET AN ENTRY FROM PLT 15323 011411 5 4 STA PLWANT /MATCH ON MESSNO AND IMPNO IN A 15324 005706 5 4 LDA (-PLTL) 15325 011410 5 4 STA PLTRY 15326 073707 5 4 LDX (PLT) 15327 044000 5 4 PLTL1: LDA PLT0 X 15330 101040 5 4 SNZ /IS THIS ENTRY EMPTY? 15331 003343 5 4 JMP PLTN1 /YES 15332 141044 5 4 CAR 0"A"MESSNO 15333 052014 5 4 ERA PLT1 X 15334 007673 5 4 ANA (0 0 177777"X"DESTI) 15335 052014 5 4 ERA PLT1 X 15336 013411 5 4 ERA PLWANT 15337 100040 5 4 SZE /MATCH ON MESSNO+IMPNO? 15340 003343 5 4 JMP PLTN1 /NO 15341 025322 5 4 IRS PLTGET /SKIP=SUCCESS 15342 103322 5 4 JMP PLTGET I /RETURN PNTR TO PLT ENTRY IN X 15343 024000 5 4 PLTN1: IRS 0 /GET NEXT ENTRY 15344 025410 5 4 IRS PLTRY 15345 003327 5 4 JMP PLTL1 /LOOP BACK 15346 005411 5 4 LDA PLWANT /RESTORE A 15347 103322 5 4 JMP PLTGET I /NO MATCH, NO SKIP ^L PAGE 149 IMP,3147,IMP 4:35 PM 7/19/1974 LEV H2I 15350 000000 4 PLTPUT: 0 /PUT AN ENTRY INTO PLT 15351 004000 4 LDA 0 /PHYSICAL HOST NO IN A 15352 113664 4 ERA (HIH0 0 X) I 15353 007710 4 ANA (0 0 177777"X"MESSNO"X"REQALL) 15354 113664 4 ERA (HIH0 0 X) I 15355 013711 4 ERA (PLTUSE) /MARK PLT0 ENTRY IN USE 15356 011412 4 STA PLTH /SAVE PLT0 ENTRY 15357 105665 4 LDA (HIH1 0 X) I 15360 011413 4 STA PLTH1 /SAVE PLT1 ENTRY 15361 105667 4 LDA (HIH3 0 X) I 15362 011414 4 STA PLTH3 /SAVE PLT2 ENTRY 15363 005706 4 LDA (-PLTL) 15364 011410 4 STA PLTRY 15365 073707 4 LDX (PLT) 15366 044000 4 PLTL2: LDA PLT0 X 15367 100040 4 SZE /IS THIS ENTRY FREE? 15370 003404 4 JMP PLTN2 /NO 15371 005412 4 LDA PLTH /YES, SO PLANT PLT0,1,2 15372 050000 4 STA PLT0 X 15373 005413 4 LDA PLTH1 15374 050014 4 STA PLT1 X 15375 005414 4 LDA PLTH3 15376 050030 4 DEFSTAT STA PLT2 X, HS5 00616 031327 4 32121 015376 4 32141 050030 4 15377 025350 4 IRS PLTPUT /SKIP=SUCCESS 15400 004000 4 PLTPX: LDA 0 15401 015712 4 ADD (PLT2) 15402 072703 4 LDX HIP 15403 103350 4 JMP PLTPUT I 15404 024000 4 PLTN2: IRS 0 /GET NEXT ENTRY 15405 025410 4 IRS PLTRY 15406 003366 4 JMP PLTL2 /LOOP BACK 15407 003400 4 JMP PLTPX /NO ROOM, ND SKIP LEV VAR 15410 V PLTRY: BSS 1 15411 V PLWANT: BSS 1 15412 V PLTH: BSS 1 15413 V PLTH1: BSS 1 15414 V PLTH3: BSS 1 15415 V RALLYA: BSS 1 15416 V RALLYI: BSS 1 15417 V RALMRK: BSS 1 ^L PAGE 150 IMP,3147,IMP 4:35 PM 7/19/1974 /RALLY TABLE SUBROUTINES LEV [I2H,TSK] 15420 000000 3 RALLYP: 0 /PUT AN ENTRY IN RALLY TABLE 15421 011415 3 STA RALLYA /A = MESSNO, ONEOR8, RFNM, SRCEI 15422 007713 3 ANA (SRCEI) 15423 015714 3 ADD (RALLY) 15424 011416 3 STA RALLYI /SET UP INPUT PNTR 15425 004121 3 LDA MINUS1 15426 022000 3 CAS 0 /X = REGULAR, INCOMPLETE, OR DEAD 15427 141206 3 AOA /X=SIGN, DEAD 15430 141206 3 AOA /X=MINUS1. INCOMPLETE 15431 141206 3 AOA /X=0 OR X>0, REGULAR 15432 141206 3 AOA /MAKE INTO 11, 10, OR 01 15433 041576 3 ALS 2 /SHIFT INTO POSITION 15434 011417 3 STA RALMRK /AND SAVE AS MARK BITS 15435 005415 3 LDA RALLYA 15436 141140 3 ICL 0"A"MESSNO 15437 006116 3 ANA THREE 15440 041576 3 ALS 2 15441 140407 3 TCA 15442 015715 3 ADD (ALR 0 15443 011446 3 STA RALPS1 /SET UP SHIFT 15444 011460 3 STA RALPS2 15445 005716 3 LDA (17) 15446 3 RALPS1: BSS 1 15447 107416 3 ANA RALLYI I 15450 101040 3 SNZ /ALREADY THERE? 15451 025420 3 IRS RALLYP /NO, OK 15452 113416 3 ERA RALLYI I /TAKE OUT OLD BITS 15453 111416 3 STA RALLYI I 15454 005415 3 LDA RALLYA 15455 040672 3 ARR 6 0"A"[ONEOR8 0 RFNM] 15456 006116 3 ANA THREE /GET BITS 15457 013417 3 ERA RALMRK /MARK GOT-IT BIT 15460 3 RALPS2: BSS 1 /SHIFT THEM OVER 15461 113416 3 ERA RALLYI I /OR THE BITS IN 15462 111416 3 STA RALLYI I 15463 010500 3 STA RALLCF /COUNT AN ALLOCATE PENDING 15464 103420 3 RALPX: JMP RALLYP I /FORMAT OF EACH RALLY WORD IS 4 4-BIT BYTES: A,B,C,D /THIS TABLE RUNS IN PARALLEL WITH AMESS, THE NEXT MESSAGE /NUMBER FOR WHICH A REPLY SHOULD BE RETURNED /BYTE A IS FOR AMESS=3 MOD 4, B FOR AMESS=2 MOD 4 /C= 1 MOD 4, D= 0 MOD 4 /FORMAT OF EACH 4 -BIT BYTE IS TTMM: /TT=00 NO ENTRY /TT=01 RFNM OR RFNM/ALLOCATE /TT=10 INCOMPLETE TRANSMISSION /TT=11 DESTINATION DEAD /FOR TT=10 OR TT=01: /MM=00 8 PKT ALLOCATE /MM=01 8 PKT RFNM/ALLOCATE /MM=10 1 PKT ALLOCATE /MM=11 1 PKT RFNM PAGE 151 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [H2I,T.O,TSK,BCK] 15465 000000 4 UPMESS: 0 /ADD ONE TO MESS NO 15466 044000 4 LDA 0 X /PNTR TO MESS TAB IN X 15467 007716 4 ANA (MESBTS) 15470 040477 4 LGR 1 /SHIFT BITS 15471 052000 4 ERA 0 X 15472 007716 4 ANA (MESBTS) 15473 052000 4 ERA 0 X 15474 015717 4 ADD (MESS1) 0"A"MESSNO 15475 050000 4 STA 0 X /INCREMENT MESS NO 15476 103465 4 JMP UPMESS I 15477 000000 4 UPORD: 0 /ADD ONE TO ORDER NO 15500 044000 4 LDA 0 X /PNTR TO MESS TAB IN X 15501 015720 4 ADD (20) 0"A"ORDNO 15502 052000 4 ERA 0 X /INCREMENT ORDER NO 15503 007721 4 ANA (ORDNO) 15504 052000 4 ERA 0 X 15505 050000 4 STA 0 X 15506 103477 4 JMP UPORD I /CHECK DXA, TRAP, AND FIX IF EXA MODE. /A REG OF TRAP CONTAINS CALL /CALLS ARE INCLUDED IN CRASH LIST LCK ALL 15507 000000 4 0 CHKDXA: 0 15510 033524 4 0 STX DXAX 15511 073507 4 0 LDX CHKDXA 15512 033520 4 0 STX DXABUG 15513 072114 4 0 LDX ONE 15514 143525 4 0 DXATS1: JMP DXATST XI 15515 003521 4 0 JMP DXABUG+1 15516 073524 4 0 DXATS2: LDX DXAX 15517 103507 4 0 JMP CHKDXA I 15520 000000 4 0 DXABUG: 0 15521 120745 4 0 JST HLTNCC I 15522 000011 4 0 DXA /MAKE SURE 15523 103520 4 0 JMP DXABUG I LEV VAR 15524 V DXAX: BSS 1 LEV CON 15525 015514 C DXATST: DXATS1 15526 015516 C DXATS2 ^L PAGE 152 IMP,3147,IMP 4:35 PM 7/19/1974 LEV FRE /PUT A TWO-WORD MESSAGE - LOCK INTERRUPTS /CALLED BY I2H,H2I,T.O,TSK,BCK 15527 000000 0 OWPE: 0 15530 033637 0 STX HNUM 15531 011640 0 STA ONEW 15532 005637 0 LDA HNUM 15533 022130 0 CAS PLNH /REAL HOST? 15534 003600 0 JMP OWPF /NO 15535 101000 0 NOP 0"A"FHPTTY /TTY LIKE REAL HOST 15536 073722 0 LDX (SHBQ) 15537 004124 0 LDA MINUS4 15540 011636 0 STA TPEE 15541 003547 0 JMP OWP4 15542 010000 0 OWP0: STA 0 15543 064003 0 IRS 3 X 15544 003620 0 JMP OWP3 15545 004121 0 LDA MINUS1 15546 050003 0 STA 3 X 15547 025636 0 OWP4: IRS TPEE /ALLOWED TO HAVE ANOTHER BUFFER? 15550 003553 0 JMP OWP8 /YES 15551 025527 0 OWP7: IRS OWPE /NO 15552 003634 0 JMP OWP5 15553 044000 0 OWP8: LDA 0 X 15554 100040 0 SZE 15555 003542 0 JMP OWP0 15556 104326 0 LDA FREE I 15557 101040 0 SNZ 15560 003551 0 JMP OWP7 15561 026326 0 IMA FREE 15562 024565 0 IRS NFS 15563 050000 0 STA 0 X 15564 011636 0 STA TPEE 15565 026000 0 IMA 0 15566 050001 0 STA 1 X 15567 005723 0 LDA (-17.) /(DECIMAL) 15570 011641 0 STA OWT3 15571 050003 0 STA 3 X 15572 140040 0 CRA 15573 050000 0 STA 0 X 15574 005636 0 LDA TPEE 15575 014117 0 ADD FOUR 15576 050002 0 STA 2 X 15577 003610 0 JMP OWP1 15600 012120 0 OWPF: ERA SEVEN 0"A"FHPSTS /REPLY FOR STATISTICS? 15601 100040 0 SZE 15602 103527 0 JMP OWPE I /NO. 15603 005724 0 LDA (-300.) /YES, RESET SOFTWARE WDT. TO 3 MIN. 15604 010504 0 STA WDTIME 15605 030026 0 WDT /AND POKE THE HARDWARE 15606 103527 0 JMP OWPE I ^L PAGE 153 IMP,3147,IMP 4:35 PM 7/19/1974 15607 044000 0 OWP2: LDA 0 X 15610 010000 0 OWP1: STA 0 15611 014117 0 ADD FOUR 15612 050000 0 STA 0 X 15613 005636 0 LDA TPEE 15614 050003 0 STA 3 X 15615 025641 0 IRS OWT3 15616 003607 0 JMP OWP2 15617 073636 0 LDX TPEE 15620 144002 0 OWP3: LDA 2 XI 15621 066002 0 IMA 2 X 15622 073637 0 LDX HNUM 15623 150406 0 STA EHWQ XI 15624 050406 0 STA EHWQ X 15625 010000 0 STA 0 15626 140040 0 CRA 15627 050000 0 STA 0 X 15630 005640 0 LDA ONEW 15631 050001 0 STA 1 X 15632 004516 0 LDA TWDP 15633 050002 0 STA 2 X 15634 073637 0 OWP5: LDX HNUM 15635 103527 0 JMP OWPE I LEV VAR 15636 V TPEE: BSS 1 15637 V HNUM: BSS 1 15640 V ONEW: BSS 1 15641 V OWT3: BSS 1 LEV ALL 15642 000000 0 .DODXA: 0 /GENERAL DXA ROUTINE 15643 000011 0 DXA /IS TRANSPARENT TO REGISTERS 15644 000401 0 ENB ALL /ENABLES 15645 103642 0 JMP .DODXA I ^L PAGE 154 IMP,3147,IMP 4:35 PM 7/19/1974 /SUBROUTINE TO GET FROM A QUEUE - LOCK INTERRUPTS LEV [I2H,T.O,BCK] 15646 000000 3 GETQ: 0 15647 044000 3 LDA 0 X 15650 101040 3 SNZ 15651 103646 3 JMP GETQ I /NOTHING ON QUEUE 15652 144000 3 LDA 0 XI 15653 101040 3 SNZ /IS THIS THE ONLY THING ON QUEUE? 15654 133725 3 STX (QUEUEE-QUEUEB X) I /YES, MAKE END POINT TO STAF 15655 066000 3 IMA 0 X /REMOVE FROM QUEUE 15656 010000 3 STA 0 15657 140040 3 CRA 15660 050000 3 STA 0 X /CLEAR CHAIN POINTER 15661 025646 3 IRS GETQ 15662 103646 3 JMP GETQ I 15663 000005 C LEV CON CONSTANTS 15664 054210 C 15665 054220 C 15666 054230 C 15667 054240 C 15670 153212 C 15671 177770 C 15672 033335 C 15673 177700 C 15674 177771 C 15675 000010 C 15676 032374 C 15677 032375 C 15700 020310 C 15701 032405 C 15702 040200 C 15703 000040 C 15704 177460 C 15705 000004 C 15706 177764 C 15707 033355 C 15710 000277 C 15711 000200 C 15712 000030 C 15713 000077 C 15714 032705 C 15715 041700 C 15716 000017 C 15717 000400 C 15720 000020 C 15721 000060 C 15722 000341 C 15723 177757 C 15724 177324 C 15725 040052 C 02513 176732 C PAGEND 15,UNCON,1 ^L PAGE 155 IMP,3147,IMP 4:35 PM 7/19/1974 /IMP TO HOST (IH) PAGI2H: LEV I2H 00076 016066 3 H1OTIL/ IH0E 00077 3 H2OTIL/ TIPDEF IH1E,TINT 02401 000077 3 02431 016060 3 02461 025111 3 PAGI2H/ /HOST 3 INTERRUPT ROUTINE 16044 000000 3 0 IH3E: INT I2H 16045 033153 3 0 STX IHX 16046 073044 3 0 LDX IH3E 16047 033074 3 0 STX IHSB 16050 072116 3 0 LDX THREE 16051 003076 3 0 JMP IHSB2 /HOST 2 INTERRUPT ROUTINE 16052 000000 3 0 IH2E: INT I2H 16053 033153 3 0 STX IHX 16054 073052 3 0 LDX IH2E 16055 033074 3 0 STX IHSB 16056 072115 3 0 LDX TWO 16057 003076 3 0 JMP IHSB2 /HOST 1 INTERRUPT ROUTINE 16060 000000 3 0 IH1E: INT I2H 16061 033153 3 0 STX IHX 16062 073060 3 0 LDX IH1E 16063 033074 3 0 STX IHSB 16064 072114 3 0 LDX ONE 16065 003076 3 0 JMP IHSB2 /HOST 0 INTERRUPT ROUTINE 16066 000000 3 0 IH0E: INT I2H 16067 033153 3 0 STX IHX /SAVE INDEX REGISTER 16070 073066 3 0 LDX IH0E 16071 033074 3 0 STX IHSB 16072 072113 3 0 LDX ZERO /NOTE HOST WHICH CAUSED INTERRUPT 16073 003076 3 0 JMP IHSB2 ^L PAGE 156 IMP,3147,IMP 4:35 PM 7/19/1974 /FROM HERE ON IS COMMON TO ALL IMP-HOST INTERRUPT ROUTINES 16074 000000 3 0 IHSB: 0 16075 033153 3 0 STX IHX 16076 011151 3 0 IHSB2: STA IHA /SAVE AC 16077 000011 3 0 DXA 16100 003101 3 0 JMP .+1 16101 000043 3 0 INK 16102 011152 3 0 STA IHK /SAVE EX-MODE 16103 032704 3 0 STX IHP /SAVE CURRENT HOST 16104 004501 3 0 LDA IHM /SET UP NEW INTERRUPT MASK (177700) 16105 170120 3 0 SMK INTM /OUTPUT IT 16106 026134 3 0 IMA PRIM /SAVE IT IN PRIM 16107 011154 3 0 STA IHMS /SAVE OLD PRIM 16110 000401 3 0 ENB I2H 16111 143141 3 JMP IHLO XI /RESTART WHERE LAST LEFT OFF 16112 000000 3 IHDB: 0 /DEBREAK 16113 004000 3 LDA 0 16114 016130 3 SUB PLNH 16115 100400 3 SPL 16116 003123 3 JMP IHDO /REAL HOST - DO THE OCP 16117 004107 3 LDA M30SEC /FAKE HOSTS ALWAYS GET 2 MINUTES 16120 041576 3 ALS 2 16121 051370 3 STA IHTT X 16122 100000 3 SKP /DON'T DO OCP FOR FAKE GUYS 16123 3 IHDO: BSS 1 16124 005112 3 LDA IHDB 16125 051141 3 IHDONE: STA IHLO X 16126 005154 3 LDA IHMS /RESTORE INTERRUPT MASK 16127 001001 3 INH MSK 16130 170120 3 0 SMK INTM 16131 010134 3 0 STA PRIM 16132 005152 3 0 LDA IHK 16133 000013 3 0 EXA 16134 171020 3 0 OTK /RESTORE EX-MODE 16135 073153 3 0 LDX IHX /RESTORE IR 16136 005151 3 0 LDA IHA /RESTORE AC 16137 000401 3 0 ENB I2H 16140 103074 3 JMP IHSB I LEV VAR / IHLO INDICATES WHAT ROUTINES DID LAST DEFPLC [IHLO] 16141 V IHLO: BSS TH /RETURN ADDRESSES WHERE IH LEFT OFF 16151 V IHA: BSS 1 /AC SAVE 16152 V IHK: BSS 1 /K SAVE 16153 V IHX: BSS 1 /IR SAVE 16154 V IHMS: BSS 1 /OLD PRIM SAVE 16155 V IHAR: BSS 1 /ADD RET SAVE ^L PAGE 157 IMP,3147,IMP 4:35 PM 7/19/1974 /IMP-TO-HOST ROUTINES LOCAL STORAGE 16156 V VD.OT: BSS NH /VDH TYPE OF OUTPUT FLAG LEV CON 16162 C IHED: BSS 1 /FINAL OUTPUT INSTRUCTIONS 16163 C BSS 1 /SET UP BY INIT 16164 C TIPDEF H3FOUT, NOP 02402 016164 C 02432 030250 C 02462 101000 C 16165 C BSS 1 16166 030470 C HUNXPT: H1UNXP /HOST UNPATCH INSTRUCTIONS 16167 030460 C H2UNXP 16170 030450 C H3UNXP 16171 030451 C H4UNXP 16172 016247 C OWOP: OWO /PNTRS TO TWO WORD OUTPUT AREAS 16173 016251 C OWO+2 16174 016253 C OWO+4 16175 016255 C OWO+6 16176 016257 C OWO+10 16177 000044 C IHB1: H1OTBP /DMC OUTPUT PNTRS 16200 000046 C H2OTBP 16201 C TIPDEF H3OTBP, TIPLNK 02403 016201 C 02433 000054 C 02463 000770 C 16202 000030 C H4OTBP 16203 017402 C IHBB 16204 017403 C IHBB+1 16205 017404 C IHBB+2 16206 017405 C IHBB+3 16207 000045 C IHB2: H1OTBP+1 /DMC OUTPUT END PNTRS 16210 000047 C H2OTBP+1 16211 C TIPDEF H3OTBP+1, TIPLNK+1 02404 016211 C 02434 000055 C 02464 000771 C 16212 000031 C H4OTBP+1 16213 017406 C IHBC 16214 017407 C IHBC+1 16215 017410 C IHBC+2 16216 017411 C IHBC+3 LEV VAR /IN IHSP: /0 ==> NOTHING IS GOING OUT /100000 ==> LEADER ONLY (2-WRD MSG) GOING /2000-37777 ==> PACKET IS GOING OUT /102000-137777 ==> PACKET WITH BAD CKSUM IS GOING OUT 16217 V IHSP: BSS TH /SAVED BUFFER POINTERS 16227 V IHWQ: BSS TH /SAVED QUEUE POINTERS 16237 V IHLSTP: BSS TH /MINUS IF LAST PKT DEFPLC [IH - 2 WORD OUTPUT AREA] 16247 V OWO: BSS [[NH+1]"T"2] /TWO WORD OUTPUT AREA ^L PAGE 158 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI /INITIALIZATION ROUTINE 16261 000000 7 0 IHIN: 0 16262 140040 7 0 CRA 16263 051217 7 0 STA IHSP X 16264 151177 7 0 STA IHB1 XI /FOR FAKE HOSTS 16265 011074 7 0 STA IHSB /IN CASE NON-DXA IMP RELOADS FROM DXA 16266 140500 7 0 SSM /BLOCK INPUT! 16267 111703 7 0 STA (HINWAT 0 X) I 16270 005704 7 0 LDA (IHBEG) 16271 021355 7 0 JST IHST 16272 103261 7 0 JMP IHIN I LEV T.O 16273 000000 5 IHTC: 0 /TIME OUT CHECK ROUTINE 16274 004131 5 LDA MITH 16275 011312 5 STA IHTK 16276 072113 5 LDX ZERO /ATTEMPT TO WAKE UP ALL IMP TO-HOSTS 16277 065370 5 IHTY: IRS IHTT X /TIME TO WAKE HIM YET? 16300 003306 5 JMP IHTZ /NO 16301 001001 5 INH SIN /YES, SOFTWARE INTERRUPT IMP-TO-HOST 16302 000013 5 0 EXA 16303 021074 5 0 JST IHSB RET T.O 16304 001001 5 INH ALL 16305 120672 5 0 JST DODXA I RET T.O 16306 024000 5 IHTZ: IRS 0 16307 025312 5 IRS IHTK 16310 003277 5 JMP IHTY 16311 103273 5 JMP IHTC I LEV VAR 16312 V IHTK: BSS 1 ^L PAGE 159 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2H 16313 000000 3 IHS1: 0 /DISCARD BUFFERS FROM QUEUE 16314 014704 3 ADD IHP 16315 011365 3 STA IHT2 16316 015705 3 ADD (NHS+0-SHQ) 16317 011366 3 STA IHT3 16320 004704 3 LDA IHP 16321 012120 3 ERA SEVEN 0"A"FHPDIS 16322 101040 3 SNZ /DISCARD? 16323 103313 3 JMP IHS1 I /YES, DO NOT DISCARD DISCARD 16324 105365 3 IHS1A: LDA IHT2 I 16325 101040 3 SNZ /ANYTHING ON THIS QUEUE? 16326 103313 3 JMP IHS1 I /NO, QUIT 16327 010000 3 STA 0 16330 005367 3 LDA IHS1F /=0, FLUSH ALL, ELSE, FLUSH TIMEOUTS 16331 101040 3 SNZ /DISCARD ALL? 16332 003343 3 JMP IHS1B /YES 16333 004421 3 LDA TIMES /GET TIME IN SLOW TICKS 16334 056003 3 SUB INCH X /NO, CHECK TIME 16335 100400 3 SPL /TOO OLD? 16336 003351 3 JMP IHS1C /NO, SO SAVE TIME LEFT 16337 004704 3 LDA IHP 16340 016130 3 SUB PLNH 16341 101400 3 SMI /FAKE HOST? 16342 103313 3 JMP IHS1 I /YES, HAVE MERCY 16343 073365 3 IHS1B: LDX IHT2 16344 121706 3 JST (GETQ) I 16345 103313 3 JMP IHS1 I /SHOULDNT HAPPEN 16346 121707 3 JST (IHS5) I 16347 125366 3 IRS IHT3 I 16350 003324 3 JMP IHS1A 16351 023367 3 IHS1C: CAS IHS1F /PICK MIN TIME LEFT 16352 011367 3 STA IHS1F /FOR OLDEST PKT ON PRI OR REG QUEUE 16353 101000 3 NOP /IF NOTHING THERE, USE 30 SECS 16354 103313 3 JMP IHS1 I ^L PAGE 160 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O /RESTART ROUTINE 16355 000000 5 IHST: 0 /HERE AT INIT AND WHEN HOST READY DROF 16356 051141 5 STA IHLO X /THROW AWAY ALL MESSAGES 16357 001001 5 INH SIN 16360 000013 5 0 EXA /BUT DO NOT FLAP IMP'S READY LINE 16361 021074 5 0 JST IHSB RET T.O 16362 001001 5 INH ALL 16363 120672 5 0 JST DODXA I RET T.O 16364 103355 5 JMP IHST I LEV VAR 16365 V IHT2: BSS 1 /TEMP 16366 V IHT3: BSS 1 /TEMP 16367 V IHS1F: BSS 1 /0=FLUSH ALL, ELSE=FLUSH TIMEOUTS /ALSO KEEPS ALARM CLOCK TIME FOR 2 WOR 16370 V IHTT: BSS TH /TIME OUT CHECK FLAGS 16400 V VD.RDY: BSS NH /NON-ZERO=VDH RDY LINE FLAPPED LEV CON 16404 C HENABT: BSS 4 /SET UP BY INIT LEV I2H 16410 000000 3 IHW640: 0 /SUBR TO WAIT 640 MS 16411 011412 3 STA .+1 /SET UP READY LINE OCP 16412 3 BSS 1 /DO IT 16413 004121 3 LDA MINUS1 /AND WAIT 640 MS FOR RELAY TO SETTLE 16414 051370 3 STA IHTT X 16415 005410 3 LDA IHW640 16416 003125 3 JMP IHDONE 16417 004110 3 IHBEG: LDA PTICKS /A LITTLE MORE THAN TWICE PTICKS 16420 016120 3 SUB SEVEN 16421 041577 3 ALS 1 /WAIT FOR LINES TO COME UP AND ROUTING 16422 051370 3 STA IHTT X 16423 005710 3 LDA (IHWAIT) 16424 003125 3 JMP IHDONE 16425 005711 3 IHWT1: LDA (NOP) 16426 021410 3 JST IHW640 DEFPLC [IH - WAITING FOR INITIALIZATION DELAY] 16427 004235 3 IHWAIT: LDA RUT+BBNIMP 16430 100400 3 SPL 0"A"RUTDED /IS NCC UP YET? 16431 003435 3 JMP IHWT2 /NEVER COMING UP...GO AHEAD 16432 007712 3 ANA (RUTCMU) /COMING UP? 16433 100040 3 SZE 16434 003425 3 JMP IHWT1 /YES, WAIT SOME MORE 16435 004114 3 IHWT2: LDA ONE 0"A"HSTOFF /OK, START UP HOSTS 16436 003445 3 JMP IHR11 /HOLD DOWN RDY FOR 60 SECS AT INIT ^L PAGE 161 IMP,3147,IMP 4:35 PM 7/19/1974 16437 004000 3 IHR2: LDA 0 16440 016120 3 SUB SEVEN 0"A"FHPDIS /DON'T FLUSH STUFF ON DISLA; 16441 101040 3 SNZ 16442 103713 3 JMP (IH62) I 16443 111703 3 STA (HINWAT 0 X) I /DISCARD STUFF ON OTHER QUEUES 16444 004115 3 LDA TWO 0"A"HSTTRD 16445 050505 3 IHR11: STA HIHD X /MARK HOST AS TARDY (DEAD) 16446 121714 3 IHR1: JST (OWGE) I /HERE TO FLUSH ALL/NO READY LINE FLAP 16447 100000 3 SKP /THROW AWAY ALL 2 WORD MESSAGES 16450 003446 3 JMP IHR1 16451 140040 3 CRA /FLUSH BUFFER CURRENTLY IN INTERFAC% 16452 151207 3 STA IHB2 XI 16453 151177 3 STA IHB1 XI 16454 067217 3 IMA IHSP X 16455 140100 3 SSP /IF 0, NOTHING GOING 16456 101040 3 SNZ /IF SIGN BIT ON Y, TWO WORD GOING 16457 003466 3 JMP IS40 /IN EITHER CASE, NOTHING TO FLUSH 16460 024542 3 IRS NREA 16461 011367 3 STA IHS1F /SAVE PKT PNTR IN TEMP 16462 045237 3 LDA IHLSTP X /PICK UP LST PKT BIT 16463 073367 3 LDX IHS1F /GET PKT PNTR 16464 050007 3 STA HEAD2 X /AND RESTORE LST PKT BIT TO PKT 16465 121707 3 JST (IHS5) I ^L PAGE 162 IMP,3147,IMP 4:35 PM 7/19/1974 16466 140040 3 IS40: CRA /SET TO DISCARD ALL BUFFERS ON QUEU'3 16467 011367 3 STA IHS1F 16470 005715 3 LDA (SHQ) /GET REGULAR QUEUE 16471 021313 3 JST IHS1 16472 005716 3 LDA (SHPQ) /GET PRIORITY QUEUE 16473 021313 3 JST IHS1 16474 072704 3 LDX IHP 16475 004000 3 LDA 0 16476 016130 3 SUB PLNH 16477 101400 3 SMI /FAKE HOST? 16500 003513 3 JMP IS30 /YES, DO NOT DROP READY LINE 16501 004142 3 LDA HLNM /IS THIS HOST UNDER TEST? 16502 012000 3 ERA 0 16503 100040 3 SZE /IF YES, DON'T UNXP OR ENAB 16504 105703 3 LDA (HINWAT 0 X) I /WE BLOCKING INPUT? 16505 101040 3 SNZ 16506 003513 3 JMP IS30 /NO, DON'T DROP READY LINE 16507 045166 3 LDA HUNXPT X 16510 021410 3 JST IHW640 /WAIT FOR 640 MS DEFPLC [IH - WAITING FOR READY LINE TO DROP] 16511 045404 3 LDA HENABT X /INDEX REGISTER MUST HAVE IHP, FOR VD 16512 021410 3 JST IHW640 /WAIT FOR 640 MS DEFPLC [IH - WAITING FOR READY LINE TO GO UP] 16513 004123 3 IS30: LDA MINUS3 16514 011365 3 STA IHT2 ^L PAGE 163 IMP,3147,IMP 4:35 PM 7/19/1974 16515 000401 3 IS10: ENB I2H 16516 005717 3 LDA (CNOP) 16517 001001 3 INH FRE 16520 120677 3 0 JST OWP I /PUT 3 NOPS ON HOST TWO WORD QUEUE 16521 101000 3 0 NOP 16522 025365 3 0 IRS IHT2 16523 003515 3 0 JMP IS10 16524 005720 3 0 LDA (CRESET) 16525 120677 3 0 JST OWP I /PUT AN IMP-TD-HOST RESET MESS ON QUE 16526 101000 3 0 NOP 16527 000401 3 0 ENB I2H 16530 140040 3 CRA /RELEASE INPUT 16531 111703 3 STA (HINWAT 0 X) I 16532 005711 3 IH00: LDA (NOP) 16533 021410 3 JST IHW640 RET I2H DEFPLC [IH - NOTHING TO DO] 16534 004107 3 IH1: LDA M30SEC /SET TO DISCARD TIMED-OUT BUFFERS 16535 011367 3 STA IHS1F /AND SAVE TIME LEFT ON OLDEST 16536 005715 3 LDA (SHQ) 16537 021313 3 JST IHS1 /CHECK REG QUEUE FOR OLD MESS 16540 005716 3 LDA (SHPQ) 16541 021313 3 JST IHS1 /AND PRI QUEUE ALSO 16542 072704 3 LDX IHP 16543 121714 3 JST (OWGE) I /IS THERE ENTRY ON ONE WORD QUEUE 16544 003602 3 JMP IH2 /NO 16545 151172 3 STA OWOP XI /(OWO+2*IR) PUT WORD IN OUTPUT AREA 16546 045172 3 LDA OWOP X /GET POINTER TO FRONT OF AREA 16547 151177 3 STA IHB1 XI /BUILD FIRST BUFFER CONTROL WORD 16550 141206 3 DEFSTAT AOA,HS3 00617 031144 3 32122 016550 3 32142 141206 3 16551 151207 3 STA IHB2 XI /BUILD SECOND BUFFER CONTROL WORD 16552 051217 3 STA IHSP X 16553 004517 3 LDA TWDG 16554 151217 3 STA IHSP XI /PUT OUT SECOND WORD 16555 045162 3 LDA IHED X /INDEX REGISTER MUST HAVE IHP, FOR VDH 16556 011123 3 STA IHDO /DO OUTPUT + END 16557 004112 3 LDA SIGN 16560 051217 3 STA IHSP X 16561 051237 3 STA IHLSTP X /SO SUCK AND TIP WILL WORK PROPERLY 16562 005367 3 LDA IHS1F /USE MIN TIME LEFT FOR PKTS ON QUEUES 16563 051370 3 STA IHTT X /OR 30 SECS IF BOTH QUEUES EMPTY 16564 021112 3 JST IHDB / WAITING FOR INTERRUPT AFTER OUTPUT OF 2 WORD MESSAGE DEFPLC [IH - SENDING 2 WORD MSG] 16565 140040 3 CRA 16566 151177 3 STA IHB1 XI 16567 051217 3 STA IHSP X 16570 045370 3 LDA IHTT X 16571 101040 3 SNZ /DID HARDWARE INTERRUPT? 16572 003437 3 JMP IHR2 /NO, ALARM CLOCK FIRED 16573 140040 3 CRA 16574 066505 3 IMA HIHD X /HOST MUST BE UP 16575 101040 3 SNZ /WAS IT DOWN BEFORE? 16576 003534 3 JMP IH1 /NO 16577 140040 3 CRA 16600 050730 3 STA HDOWN X /YES, ZERO STATUS 16601 003534 3 JMP IH1 ^L PAGE 164 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2H 16602 044304 3 IH2: LDA SHPQ X /IS THERE SOMETHING IN THE PRIORITY QL 16603 101040 3 SNZ 16604 003607 3 JMP .+3 /NO 16605 005716 3 LDA (SHPQ) 16606 003613 3 JMP IH19 16607 044274 3 LDA SHQ X /IS THERE SOMETHING IN THE REGULAR -!: 16610 101040 3 SNZ 16611 003532 3 JMP IH00 16612 005715 3 LDA (SHQ) 16613 014000 3 IH19: ADD 0 16614 051227 3 STA IHWQ X /SAVE POINTER TO QUEUE 16615 004115 3 LDA TWO 0"A"[DATA-HEAD2] 16616 111721 3 STA (FPSW 0 X) I 16617 145227 3 IH21: LDA IHWQ XI 16620 051217 3 STA IHSP X /SAVE POINTER TO BUFFER 16621 045227 3 LDA IHWQ X 16622 010000 3 STA 0 16623 144000 3 LDA 0 XI /UPDATE QUEUE START POINTER 16624 050000 3 STA 0 X 16625 101040 3 SNZ /IS THIS LAST ENTRY ON QUEUE 16626 133722 3 STX (EHQ-SHQ X) I /MAKE START PTR POINTED TO BY -ND 16627 064251 3 IRS NHS-SHQ X 16630 072704 3 LDX IHP 16631 172706 3 LDX IHXX I 16632 005723 3 LDA (IHCKAD) 16633 026111 3 IMA ADDRET 16634 011155 3 STA IHAR 16635 004000 3 LDA 0 16636 056111 3 SUB BUFE X 16637 015724 3 ADD (ADDBOT+ACKH) 16640 140100 3 SSP 0"A"TWOQ 16641 011650 3 STA IHCKAJ 16642 017725 3 SUB (ADDBOT) /-NO OF WORDS 16643 022627 3 CAS ADDL /PACKET LENGTH OK? 16644 101000 3 NOP 16645 101400 3 SMI DEFHLT [IH PACKET TOO LONG FOR ADDER] 16646 021656 3 JST IHBAD 16647 103650 3 JMP IHCKAJ I 16650 3 IHCKAJ: BSS 1 16651 100040 3 IHCKAD: SZE DEFHLT [HOST OUTPUT DETECTED INTRA-IMP CKSUM ERROR] 16652 021656 3 JST IHBAD 16653 005155 3 LDA IHAR 16654 010111 3 STA ADDRET 16655 103726 3 JMP (IHNOCK) I ^L PAGE 165 IMP,3147,IMP 4:35 PM 7/19/1974 16656 000000 3 IHBAD: 0 16657 027155 3 IMA IHAR /TEMP FDR CKSUM/LENGTH ERROR 16660 010111 3 STA ADDRET /AND RESTORE OWNER 16661 004704 3 LDA IHP 16662 012120 3 ERA SEVEN 0"A"FHPDIS DEFPLC [NOP HERE TO TURN OFF I2H CHECKSUM CHECK] 16663 101040 3 SNZ 16664 103726 3 JMP (IHNOCK) I /DON'T REPORT DISCARD ERRORS 16665 005656 3 LDA IHBAD /DIDDLE NCC TRAP TO MATCH DEFHLTS 16666 011672 3 STA IHBAD1 16667 005155 3 LDA IHAR 16670 001001 3 INH ALL 16671 100000 3 0 SKP /NOW TRAP TO NCC 16672 3 0 IHBAD1: BSS 1 16673 120745 3 0 JST HLTNCC I 16674 000401 3 0 ENB I2H 16675 072704 3 LDX IHP 16676 045217 3 LDA IHSP X 16677 140500 3 SSM /FLAG PACKET TO GO TO DIAGTT 16700 051217 3 STA IHSP X 16701 140100 3 SSP 16702 103727 3 JMP (IHNOC2) I /AND CONTINUE ANYWAY 16703 053410 C LEV CON CONSTANTS 16704 016417 C 16705 000251 C 16706 015646 C 16707 017236 C 16710 016427 C 16711 101000 C 16712 000340 C 16713 017137 C 16714 017247 C 16715 000274 C 16716 000304 C 16717 002000 C 16720 005000 C 16721 057202 C 16722 040052 C 16723 016651 C 16724 011610 C 16725 011604 C 16726 017055 C 16727 017057 C 02514 176737 C PAGEND 16,UNCON,4 ^L PAGE 166 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 17051 C IHOT: BSS 1 /REGULAR OUTPUT INSTRUCTIONS 17052 C BSS 1 /SET UP BY INIT 17053 C TIPDEF H3ROUT, NOP 02405 017053 C 02435 030050 C 02465 101000 C 17054 C BSS 1 LEV I2H /MORE IMP-TO-HOST CODE 17055 072704 3 IHNOCK: LDX IHP 17056 105476 3 LDA (IHSP 0 X) I 17057 015477 3 IHNOC2: ADD (DATA) 17060 057202 3 SUB FPSW X /BUILD FIRST BUFFER CONTROL WORD 17061 111500 3 STA (IHB1 0 XI) I 17062 172706 3 LDX IHXX I 17063 131040 3 RDCLOK 17064 003063 3 JMP .-1 17065 050001 3 STA ST X 17066 140040 3 CRA 17067 050000 3 STA 0 X /CLEAR CHAIN PNTR 17070 044111 3 LDA BUFE X 17071 140100 3 SSP 0"A"TWOQ 17072 016114 3 SUB ONE /STRIP CHECKSUM/DUMMY WRD 17073 072704 3 LDX IHP 17074 111501 3 STA (IHB2 0 XI) I /MAKE SECOND BUFFER CONTROL WO-D 17075 024567 3 IRS NRES /UPDATE REASSEMBLY COUNT 17076 172706 3 LDX IHXX I 17077 044007 3 LDA HEAD2 X /TURN OFF BITS FOR HOSTS 17100 007502 3 ANA (FRMIMP 0 FRMOCT SRCEHI) 17101 066007 3 IMA HEAD2 X 0"A"[LSTPKT 0 ENDBIT] 17102 072704 3 LDX IHP 17103 111503 3 STA (IHLSTP 0 X) I /SAVE LAST PKT FLAG 17104 100400 3 SPL 0"A"LSTPKT /IS THIS LAST PACKET OF MESSAGF 17105 003110 3 JMP IH4 /YES 17106 045051 3 LDA IHOT X 17107 100000 3 SKP 17110 105504 3 IH4: DEFSTAT LDA (IHED 0 X) I, HS1 00620 031127 3 32123 017110 3 32143 105504 3 17111 111505 3 STA (IHDO) I /DO OUTPUT 17112 021122 3 JST IH6 17113 105503 3 LDA (IHLSTP 0 X) I 17114 121506 3 JST (HTPPF) I /COUNT A PACKET OF THROUGHPUT 17115 105503 3 LDA (IHLSTP 0 X) I 17116 101400 3 SMI /DID WE JUST PUT OUT LAST PKT? 17117 103507 3 JMP (IH21) I /NO 17120 121510 3 JST (HTPMF) I /COUNT A MESSAGE OF THROUGHPUT 17121 103511 3 JMP (IH1) I /YES ^L PAGE 167 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2H /MORE OF IMP-TO-HOST 17122 000000 3 IH6: 0 /SEND OUT A PKT 17123 172706 3 LDX IHXX I 17124 004421 3 LDA TIMES /GET TIME IN SLOW TICKS 17125 056003 3 SUB INCH X 17126 072704 3 LDX IHP 17127 111512 3 STA (IHTT 0 X) I 17130 100400 3 SPL 17131 003137 3 JMP IH62 /SOME TIME LEFT - GO USE IT 17132 004000 3 LDA 0 /RUN OUT - FAKE HOST? 17133 016130 3 SUB PLNH 17134 001001 3 INH ALL 17135 100400 3 0 SPL 17136 103513 3 0 JMP (IHR2) I /NO - HAVE NO MERCY 17137 121514 3 0 IH62: JST (IHDB) I RET I2H DEFPLC [IH - SENDING OUT A PKT] 17140 140040 3 CRA 17141 111500 3 STA (IHB1 0 XI) I 17142 105512 3 LDA (IHTT 0 X) I 17143 001001 3 INH ALL 17144 101040 3 0 SNZ /DID HARDWARE INTERRUPT? 17145 103513 3 0 JMP (IHR2) I /NO, ALARM CLOCK WENT OFF - HOST TA'DY 17146 172706 3 0 LDX IHXX I /YES, NORMAL OUTPUT COMPLETE 17147 044002 3 0 LDA PTRT X 17150 100040 3 0 SZE /MUST WE TRACE HIM? 17151 003177 3 0 JMP IH6T /YES 17152 072704 3 0 IH6TD: LDX IHP 17153 000401 3 0 ENB I2H 17154 140040 3 CRA 17155 067202 3 IMA FPSW X /RESET FIRST PKT SWITCH 17156 172706 3 LDX IHXX I 17157 100040 3 SZE /IS THIS THE FIRST PKT? 17160 003213 3 JMP IH63 /YES 17161 072704 3 IH6F: LDX IHP 17162 140040 3 CRA 17163 126706 3 IMA IHXX I /CLEAR OUT IHSP 17164 010000 3 STA 0 17165 001001 3 INH FRE 17166 100400 3 0 SPL 17167 003173 3 0 JMP IH6B /WAS BAD PACKET, PUT ON DIAG Q 17170 120700 3 0 JST FLUSHI I /FLUSH PACKET 17171 072704 3 0 IH6F1: LDX IHP 17172 103122 3 0 JMP IH6 I 17173 140100 3 0 IH6B: SSP 17174 026344 3 0 IMA DIAGQ /PUT ON DIAG Q 17175 050000 3 0 STA 0 X 17176 003171 3 0 JMP IH6F1 17177 004704 3 0 IH6T: LDA IHP /OUTPUT CHAN # 17200 121515 3 0 JST (TRCDUN) I 17201 003152 3 0 JMP IH6TD ^L PAGE 168 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 17202 V FPSW: BSS TH /FIRST PACKET SWITCH 17212 V IH6INC: BSS 1 /MINUS IF RFNM IS FOR INC TRN LEV I2H 17213 044006 3 IH63: LDA HEAD1 X /THIS CODE IS FOR MULTI-PKT MESS FOR C 17214 007516 3 ANA (PKTNO) /THAT WAS ON IH Q TOO LONG IN MID-M'SS 17215 100040 3 SZE /IS THIS FIRST PACKET? 17216 003161 3 JMP IH6F /NO, THE RFNM HAS BEEN SENT ALREADY 17217 044005 3 LDA HEAD X /NORMAL CASE, SEND BACK RFNM-ALLOCA'- 17220 007517 3 ANA (INCTRN) 17221 100040 3 SZE 17222 004121 3 LDA MINUS1 17223 011212 3 STA IH6INC 17224 044005 3 LDA HEAD X 17225 007520 3 ANA (MESSNO 0 ONEOR8) 17226 013521 3 ERA (RFNM) 17227 052007 3 ERA HEAD2 X 17230 007522 3 ANA (0 0 177777"X"SRCEI) 17231 052007 3 ERA HEAD2 X 17232 073212 3 LDX IH6INC /SET UP AS INCTRN OR NOT 17233 121523 3 JST (RALLYP) I /PUT IN RALLY TABLE 17234 101000 3 NOP /ENTRY ALREADY THERE - BAD 17235 003161 3 JMP IH6F LEV I2H 17236 000000 3 IHS5: 0 17237 044005 3 LDA HEAD X 17240 007524 3 ANA (0 0 177777"X"INCTRN) 17241 013517 3 ERA (INCTRN) 17242 050005 3 STA HEAD X 17243 132355 3 STX EHQ+FHPDIS I 17244 032355 3 STX EHQ+FHPDIS 17245 024527 3 IRS NHA+FHPDIS 17246 103236 3 JMP IHS5 I ^L PAGE 169 IMP,3147,IMP 4:35 PM 7/19/1974 /ROUTINE TO GET WORD OFF ONE WORD MESSAGE QUEUE TO HOST /CALLING SEQUENCE /INDEX REGISTER CONTAINS HOST NUMBER / JST OWG I / / LEV I2H 17247 000000 3 OWGE: 0 17250 033336 3 STX OWGY 17251 044334 3 LDA SHWQ X /GET START OF HOST ONE WORD QUEUE 17252 100040 3 SZE 17253 003257 3 JMP OWGL /RETURN IF NOTHING ON QUEUE 17254 073336 3 OWGX: LDX OWGY 17255 005337 3 LDA OWGA /GET DATA IN AC 17256 103247 3 JMP OWGE I /RETURN 17257 011340 3 OWGL: STA OWGS /SAVE START OF QUEUE FOR LATER USE 17260 004000 3 LDA 0 17261 022130 3 CAS PLNH /REAL HOST? 17262 003254 3 JMP OWGX /NO 17263 101000 3 NOP 0"A"FHPTTY /TTY LIKE REAL HOST 17264 025247 3 IRS OWGE /PREPARE TO TAKE SECOND RETURN 17265 073340 3 LDX OWGS /PUT START OF QUEUE IN INDEX REGISTER 17266 044001 3 LDA 1 X 17267 011337 3 STA OWGA 17270 044002 3 LDA 2 X 17271 010517 3 STA TWDG 17272 044003 3 LDA 3 X /GET POINTER TO POINTER TO HEAD OF BUF 17273 011341 3 STA OWGT /SAVE FOR LATER USE 17274 073336 3 LDX OWGY /GET HOST NUMBER 17275 144334 3 LDA SHWQ XI 17276 050334 3 STA SHWQ X /UPDATE QUEUE POINTER 17277 100040 3 SZE 17300 003304 3 JMP OWG1 17301 005525 3 LDA (SHWQ) 17302 014000 3 ADD 0 17303 050406 3 STA EHWQ X /IF QUEUE NOW EMPTY FIX THINGS ^L PAGE 170 IMP,3147,IMP 4:35 PM 7/19/1974 17304 073341 3 OWG1: LDX OWGT /GET POINTER TO HEAD OF BUFFER 17305 044002 3 LDA 2 X /GET FREE STORAGE POINTER FOR THIS BU' 17306 111340 3 STA OWGS I 17307 005340 3 LDA OWGS /PUT THREE WORD BLOCK ON FREE STORA'- 17310 050002 3 STA 2 X 17311 044003 3 LDA 3 X /GET FREE BLOCK COUNT 17312 016114 3 SUB ONE 17313 050003 3 STA 3 X /UPDATE FREE BLOCK COUNT 17314 023526 3 CAS (-18.) /IS BUFFER EMPTY 17315 003254 3 JMP OWGX /IF NO, RETURN 17316 044001 3 LDA 1 X /IF YES, PUT IT ON FREE LIST 17317 054000 3 ADD 0 X 17320 017527 3 SUB (SHBQ) /CHECK FOR LAST BUFFER ON QUEUE 17321 101040 3 SNZ 17322 003254 3 JMP OWGX /IF YES, RETURN 17323 044000 3 LDA 0 X /TAKE BUFFER OUT OF USE FOR ONE WOR- A 17324 150001 3 STA 1 XI 17325 044001 3 LDA 1 X 17326 064000 3 IRS 0 X 17327 150000 3 STA 0 XI 17330 140040 3 CRA 0"A"TWOQ 17331 050111 3 STA BUFE X 17332 001001 3 INH FRE 17333 120700 3 0 JST FLUSHI I 17334 000401 3 0 ENB I2H 17335 003254 3 JMP OWGX LEV VAR 17336 V OWGY: BSS 1 17337 V OWGA: BSS 1 17340 V OWGS: BSS 1 17341 V OWGT: BSS 1 ^L PAGE 171 IMP,3147,IMP 4:35 PM 7/19/1974 /IMP TO FAKE HOST (SUCK) /SIMULATE IMP-TO-HOST INTERFACE HARDWARE FOR FAKE HOSTS: /1- IF THE DMC OUTPUT AND OUTPUT END POINTERS CROSS, / GIVE OUTPUT COMPLETED INTERRUPT /2- FETCH NEXT WORD THROUGH THE DMC OUTPUT POINTER /3- INCREMENT THE DMC OUTPUT POINTER, AND IF THE POINTERS CR( / AND IF THIS IS A FINAL OUTPUT, SET THE LAST BIT INDICA'OF /4- SEND THE WDRD TO THE HOST /5- GO TO 1 /IHBB SERVES AS THE DMC OUTPUT POINTER /IHBC SERVES AS THE DMC OUTPUT END POINTER /CALLING SEQUENCE /FAKE HOST NUMBER IN X REG - 0=TTY,1=DDT,2=PARAM CHANGE,3='I. /JST SUCK - GET NEXT WORD FROM IMP FOR THIS FAKE HOST / - IMPLICIT BACKGROUND WAIT UNTIL WORD IS READY /R1 - WORD IN A REG /R2 - WORD IN A REG IS LAST WORD OF CURRENT MESSAGE LEV BCK 17342 000000 7 SUC: 0 17343 045402 7 SUC1: LDA IHBB X /IS THERE ANY OUTPUT TO GO? 17344 101040 7 SNZ 17345 003361 7 JMP SUC2 /NO, WAIT ONE BACKGROUND LOOP 17346 057406 7 SUB IHBC X 17347 022113 7 CAS ZERO /HAVE PNTRS CROSSED? 17350 003367 7 JMP SUC4 /YES 17351 003355 7 JMP SUC3 /ALMOST, THIS IS LAST WORD IN BUFFEH 17352 145402 7 SUC5: LDA IHBB XI /FETCH NEXT WORD FROM OUTPUT PNTR 17353 065402 7 IRS IHBB X /INCREMENT OUTPUT PNTR 17354 103342 7 JMP SUC I /NOW RETURN WITH DATA 17355 105530 7 SUC3: LDA (IHLSTP+NH X) I /YES 17356 100400 7 SPL 0"A"LSTPKT /IS THIS THE LAST PKT? 17357 025342 7 IRS SUC /YES, SO GIVE SKIP RETURN=LAST BIT 17360 003352 7 JMP SUC5 17361 005342 7 SUC2: LDA SUC 17362 051413 7 STA SUCT X /SAVE RETURN ADDRESS 17363 120676 7 JST WAIT I /COROUTINE RETURN TO BACKGROUND DEFPLC [SUCK CALL TO WAIT] 17364 045413 7 LDA SUCT X 17365 011342 7 STA SUC /RESTORE RETURN ADDRESS 17366 003343 7 JMP SUC1 17367 033412 7 SUC4: STX SUCX /YES, SO INTERRUPT ON OUTPUT COMPLE]E 17370 004000 7 LDA 0 17371 014130 7 ADD PLNH 17372 010000 7 STA 0 /SET UP X REG FOR THIS FAKE HOST 17373 001001 7 INH SIN /SOFTWARE INTERRUPT IMP-TO-HOST 17374 000013 7 0 EXA 17375 121531 7 0 JST (IHSB) I RET BCK 17376 001001 7 INH ALL 17377 120672 7 0 JST DODXA I RET BCK 17400 073412 7 LDX SUCX 17401 003343 7 JMP SUC1 /NOW GO BACK FOR MORE OUTPUT ^L PAGE 172 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 17402 V IHBB: BSS FH /DMC OUTPUT PNTRS FOR FAKE HOSTS 17406 V IHBC: BSS FH /DMC OUTPUT END PNTRS FOR FAKE HOSTS 17412 V SUCX: BSS 1 DEFPLC [SUCT] 17413 V SUCT: BSS FH /TABLE OF RETURN ADDRESSES LEV T.O 17417 000000 5 DEDH: 0 /TEST FOR DEAD HOSTS 17420 004131 5 LDA MITH 17421 011465 5 STA DHC 17422 072113 5 LDX ZERO 17423 105532 5 TDH1: LDA (SKST 0 X) I 17424 011427 5 STA TDH4 17425 001001 5 INH ALL 17426 044505 5 0 LDA HIHD X 17427 5 0 TDH4: BSS 1 17430 015533 5 0 ADD (TDHDN-0-TDHUP) /READY LINE DOWN 17431 015534 5 0 ADD (JMP TDHUP 0 I) /READY LINE DOWN 17432 011433 5 0 STA .+1 17433 5 0 BSS 1 17434 017460 5 0 TDHUP: TDH5 /STEADY STATE UP 17435 017446 5 0 TDH3 /JUST WENT UP, WAS DOWN 17436 017460 5 0 TDH5 /STEADY STATE TARDY 17437 017460 5 0 TDH5 /NOT EXIST, IGNORE!!! 17440 017460 5 0 TDH5 /NOT INIT, IGNORE 17441 017456 5 0 TDHDN: TDH2 /WAS UP, READY LINE JUST WENT DOWN 17442 017460 5 0 TDH5 /STEADY STATE DOWN 17443 017456 5 0 TDH2 /WAS TARDY, READY LINE JUST WENT DO.N 17444 017460 5 0 TDH5 /NOT EXIST, IGNORE 17445 017460 5 0 TDH5 /NOT INIT, IGNORE 17446 140040 5 0 TDH3: CRA 17447 050505 5 0 STA HIHD X 17450 104706 5 0 LDA IHXX I /NOW TRULY UP 17451 101040 5 0 SNZ /IS THERE AN OUTPUT IN PROGESS? 17452 003460 5 0 JMP TDH5 /NO 17453 004107 5 0 LDA M30SEC /YES - MOST LIKELY A NOP 17454 111512 5 0 STA (IHTT 0 X) I /GIVE FULL 30 SECS 17455 003460 5 0 JMP TDH5 17456 005535 5 0 TDH2: LDA (IHWT2) /HOST WENT DOWN, DO NOT DROP IMP READ. 17457 121536 5 0 JST (IHST) I 17460 000401 5 0 TDH5: ENB T.O 17461 024000 5 IRS 0 17462 025465 5 IRS DHC 17463 003423 5 JMP TDH1 17464 103417 5 JMP DEDH I ^L PAGE 173 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 17465 V DHC: BSS 1 LEV CON 17466 C SKST: BSS 1 /SET UP BY INIT 17467 C BSS 1 17470 C TIPSKP: TIPDEF H3RDY, NOP 02406 017470 C 02436 070150 C 02466 101000 C 17471 C BSS 1 17472 100000 C SKP 17473 100000 C SKP 17474 100000 C SKP 17475 100000 C SKP 17476 056217 C LEV CON CONSTANTS 17477 000011 C 17500 156177 C 17501 156207 C 17502 050377 C 17503 056237 C 17504 056162 C 17505 016123 C 17506 022627 C 17507 016617 C 17510 022616 C 17511 016534 C 17512 056370 C 17513 016437 C 17514 016112 C 17515 011201 C 17516 003400 C 17517 000010 C 17520 177600 C 17521 000100 C 17522 177700 C 17523 015420 C 17524 177767 C 17525 000334 C 17526 177756 C 17527 000341 C 17530 056243 C 17531 016074 C 17532 057466 C 17533 000005 C 17534 103434 C 17535 016435 C 17536 016355 C 02515 174543 C PAGEND 17,UNCON,4 ^L PAGE 174 IMP,3147,IMP 4:35 PM 7/19/1974 TO: LEV T.O 00102 020101 5 CLOKIL/ TO 20101 000000 5 0 TO/ INT T.O /TIMEOUT INTERRUPT ENTRANCE 20102 033243 5 0 STX TOT 20103 025241 5 0 IRS TOSLOW /IS THIS REALLY A SLOW TICK? 20104 003111 5 0 JMP TO1 /NO 20105 073700 5 0 LDX (-25.) /YES, RESET CLOCK 20106 033241 5 0 STX TOSLOW /EVERY 25TH TICK 20107 072114 5 0 LDX ONE 20110 100000 5 0 SKP 20111 072113 5 0 TO1: LDX ZERO /CHOOSE APPROPRIATE X 20112 051244 5 0 STA TOA X /SAVE AC 20113 045256 5 0 LDA TOM X 20114 170120 5 0 SMK INTM 20115 026134 5 0 IMA PRIM 20116 051254 5 0 STA TOMK X 20117 000011 5 0 DXA 20120 003121 5 0 JMP .+1 20121 000043 5 0 INK 20122 051246 5 0 STA TOCK X 20123 005243 5 0 LDA TOT 20124 051250 5 0 STA TOX X 20125 005101 5 0 LDA TO /SAVE RETURN 20126 051252 5 0 STA TOC X 20127 024273 5 0 IRS TIME /COUNT LOCAL TIME 20130 101000 5 0 NOP 20131 024422 5 0 IRS SYNC /COUNT GLOBAL TIME 20132 101000 5 0 NOP 20133 5 0 TO2: SATDEF SKP /SIMP MAKES THIS A NOP 02407 020133 5 0 02437 100000 5 0 02467 100000 5 0 20134 121701 5 0 JST (SATT.O) I /CALL SIMP (RETURNS INH,DXA,SAME X) 20135 143260 5 0 JMP TOS XI LEV T.O 20136 001001 5 TOR: INH MSK 20137 045252 5 0 LDA TOC X 20140 011101 5 0 STA TO 20141 045250 5 0 LDA TOX X 20142 011243 5 0 STA TOT 20143 045254 5 0 LDA TOMK X 20144 170120 5 0 SMK INTM 20145 010134 5 0 STA PRIM 20146 045246 5 0 LDA TOCK X 20147 000013 5 0 EXA 20150 171020 5 0 OTK 20151 045244 5 0 LDA TOA X 20152 073243 5 0 LDX TOT 20153 000401 5 0 ENB T.O 20154 103101 5 JMP TO I ^L PAGE 175 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK INI 20155 000000 7 0 TOI: 0 /TIMEOUT INITIALIZATION 20156 004127 7 0 LDA MICH 20157 010141 7 0 STA HTPAR 20160 072113 7 0 LDX ZERO 20161 140040 7 0 TOIL: CRA 20162 111702 7 0 STA (E123 0 X) I /CLEAR LINE ERROR 20163 004115 7 0 LDA TWO 20164 051403 7 0 STA RMBIT X /TIMER BIT FOR VAR FRQ RM'S 20165 005703 7 0 LDA (1000 SHD RMINIT) /101006, 50 KB LINE FULL HO 20166 111704 7 0 STA (RMFLG 0 X) I /AND INIT FLAG IN EACH RMFLAG 20167 005705 7 0 LDA (RMCLKS+2) /POINT ALL LINES AT 50KB TIME 20170 111706 7 0 STA (RMCLKP 0 X) I 20171 004110 7 0 LDA PTICKS 20172 111707 7 0 STA (LINDT 0 X) I 20173 004125 7 0 LDA MINUS5 /LINE UP TIME INITIALLY 20174 051663 7 0 STA LINUT X 20175 004000 7 0 LDA 0 /NOMINAL INITIAL MODEM MAP 20176 111710 7 0 STA (MODMAP 0 X) I 20177 004121 7 0 LDA MINUS1 20200 050266 7 0 STA SLT X 20201 021457 7 0 TOIL2: JST DEDL /SET SLT MINUS, KILL LINE 20202 121711 7 0 JST (KILLIN) I 20203 024000 7 0 IRS 0 20204 024141 7 0 IRS HTPAR /ENDS UP BY SETTING HTPAR TO 0 20205 003161 7 0 JMP TOIL 20206 004121 7 0 LDA MINUS1 20207 073712 7 0 LDX (-MIN1N) 20210 151241 7 0 STA MIN1TB+MIN1N XI 20211 024000 7 0 IRS 0 20212 003210 7 0 JMP .-2 /THIS CODE IS TO START ALL LINES W/ROUTING MSG SYNC-ED W/SLO 20213 004122 7 0 LDA MINUS2 20214 073713 7 0 LDX (-NSPD+1) 20215 051402 7 0 TOIL1: STA RMCLKS+NSPD-1 X 20216 024000 7 0 IRS 0 20217 003215 7 0 JMP TOIL1 20220 030040 7 0 CLKON 20221 103155 7 0 JMP TOI I 20222 000456 7 0 MIN1TB: LINSUP 20223 020241 7 0 TOSLOW 20224 000142 7 0 HLNM 20225 022417 7 0 HLNMS 20226 022176 7 0 HTOLD 20227 014207 7 0 HITF 20230 022427 7 0 RTSSNT 20231 020310 7 0 TALLYC 20232 004641 7 0 RALTRY 20233 027205 7 0 GODWNC 20234 027206 7 0 COMUPC 20235 021671 7 0 MESST 20236 034264 7 0 BLFNTF 20237 034276 7 0 BLSNKF 20240 020402 7 0 RMCLKS+NSPD-1 MIN1N=0 0 .-MIN1TB ^L PAGE 176 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 20241 V TOSLOW: BSS 1 20242 V TOK: BSS 1 20243 V TOT: BSS 1 20244 V TOA: BSS 2 20246 V TOCK: BSS 2 20250 V TOX: BSS 2 20252 V TOC: BSS 2 20254 V TOMK: BSS 2 LEV CON 20256 177774 C TOM: -4 /LOCK OUT T.O IN JOBF 20257 177774 C -4 /ENB T.O IN JOBS **TEMP NOT** 20260 020266 C TOS: JOBF 20261 021066 C JOBS LEV T.O LCK ALL 20262 005256 5 0 JOBF1: LDA TOM /DONE WITH SLOW TICK 20263 170120 5 0 SMK INTM 20264 010134 5 0 STA PRIM /LOCK OUT T.O 20265 072114 5 0 LDX ONE /REMEMBER IT IS A SLOW TICK /FAST TIMEOUT JOBS - RESTART EVERYBODY 20266 033242 5 0 JOBF: STX TOK /SAVE TYPE OF TICK 20267 121714 5 0 JST (RSTSWP) I RET T.O /MUST PRECEDE RSTOUT 20270 021311 5 JST RSTOUT /MUST PRECEDE IMTC 20271 021410 5 JST IMTC /ATTEMPT TO RESTART MODEM OUTS 20272 021432 5 JST HITC /ATTEMPT TO RESTART HOST INS 20273 121715 5 JST (SWCH) I /MONITOR THINGS 20274 021300 5 JST TALLYB /TIME OUT OLDEST ALLOCATE WE HAVE 20275 121716 5 JST (BLFSTO) I /TIME OUT PIECE # RESET FOR BLOCKS 20276 073242 5 LDX TOK 20277 003136 5 JMP TOR 20300 000000 5 TALLYB: 0 /BUMP TALLY CLOCK EVERY 25 MS 20301 005717 5 LDA (TALLY) 20302 113720 5 ERA (TALLYI) I 20303 101040 5 SNZ /IS THE TALLY TABLE EMPTY? 20304 011310 5 STA TALLYC /YES' HOLD TALLYC AT 1 WHILE QUIESC-N 20305 025310 5 IRS TALLYC /BUMP TALLY CLOCK 20306 101000 5 NOP /IN CASE BACK ISNT GOING 20307 103300 5 JMP TALLYB I LEV VAR 20310 V TALLYC: BSS 1 /TALLY CLOCK - COUNTS FROM 0 TO 5 LEV T.O 20311 000000 5 RSTOUT: 0 20312 025377 5 IRS RMCLKS /CHECK TO SEND ROUTING MSGS 20313 100000 5 SKP /...RUN CLKS FOR EACH POSS LINE SPD 20314 003357 5 JMP RSTR50 /2 SLOW TICKS 20315 025400 5 IRS RMCLKS+1 20316 100000 5 SKP 20317 003361 5 JMP RSTR25 /RESET (1 SLOW TICK) 20320 025401 5 IRS RMCLKS+2 20321 100000 5 SKP 20322 003363 5 JMP RSTR5 /5 FAST TICKS 20323 005401 5 LDA RMCLKS+2 20324 011402 5 STA RMCLKS+3 /230.4 SAME AS 50 ^L PAGE 177 IMP,3147,IMP 4:35 PM 7/19/1974 20325 072127 5 RSTR0: LDX MICH 20326 004121 5 LDA MINUS1 20327 123721 5 RSTO2: CAS (RMCLKP+CH XI) I /TIME UP TEST 20330 100000 5 SKP 20331 003335 5 JMP RSTO4 /YES, DO ROUTING CHECK 20332 024000 5 RSTO3: IRS 0 /NO, GO TO NEXT LINE 20333 003327 5 JMP RSTO2 20334 103311 5 JMP RSTOUT I /DONE 20335 045410 5 RSTO4: LDA RMBIT+CH X /ADVANCE BIT POINTER 20336 040677 5 ARR 1 20337 100400 5 SPL /TIME TO WRAP? 20340 005722 5 LDA (20) /YES. RESET TO 5TH BIT 20341 051410 5 STA RMBIT+CH X 20342 107723 5 ANA (RUTFRQ+CH XI) I /GET RIGHT BIT OUT OF RIGHT 20343 101040 5 SNZ /TIME TO SEND ROUTING? 20344 003355 5 JMP RSTO5 /NO, GO TO NEXT LINE 20345 100100 5 SLZ 20346 003367 5 JMP RSTDL 20347 001001 5 RSTO6: INH I2M /SEND ROUTING 20350 044273 5 2 LDA SLT+CH X 20351 101040 5 2 SNZ /NO ROUTING IF HELD DEAD OR BUSY 20352 004115 5 2 LDA TWO /ALWAYS SEND NULL W/ROUTING 20353 050273 5 2 STA SLT+CH X 20354 000401 5 2 ENB T.O 20355 004121 5 RSTO5: LDA MINUS1 /ON TO NEXT LINE 20356 003332 5 JMP RSTO3 20357 005724 5 RSTR50: LDA (-50.) 20360 011377 5 STA RMCLKS 20361 005700 5 RSTR25: LDA (-25.) 20362 011400 5 STA RMCLKS+1 20363 004125 5 RSTR5: LDA MINUS5 20364 011401 5 STA RMCLKS+2 20365 011402 5 STA RMCLKS+3 /230.4 SAME AS 50 20366 003325 5 JMP RSTR0 20367 033376 5 RSTDL: STX RSTDT /SAVE X 20370 004000 5 LDA 0 20371 016127 5 SUB MICH /CONVERT NEG X TO POS X 20372 010000 5 STA 0 20373 021457 5 JST DEDL /CALL DEDL FOR HELLO-IHY AT BASIC F@* 20374 073376 5 LDX RSTDT /RESTORE X 20375 003347 5 JMP RSTO6 LEV VAR 20376 V RSTDT: BSS 1 /TEMP X 20377 V RMCLKS: BSS NSPD /1 CLOCK/SPD 20403 V RMBIT: BSS CH /5 BIT ROTATE BIT 1/LINE ^L PAGE 178 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 20410 000000 5 IMTC: 0 /WAKE UP IDLE MODEMS 20411 072113 5 LDX ZERO 20412 004127 5 LDA MICH /DO FOR ALL MODEMS 20413 011456 5 STA IMTK 20414 001001 5 IMTCL: INH SIN 20415 044443 5 0 LDA NONE X /CHECK STATUS OF MODEM 20416 100040 5 0 SZE /WAITING FOR HARDWARE INTERRUPT? 20417 003427 5 0 JMP I2MTC2 20420 121725 5 0 I2MTC0: JST (I2MSB) I RET T.O /NO, SO GIVE SOFTWARE INT-R 20421 001001 5 INH ALL 20422 120672 5 0 JST DODXA I RET T.O 20423 024000 5 I2MTC1: IRS 0 20424 025456 5 IRS IMTK 20425 003414 5 JMP IMTCL 20426 103410 5 JMP IMTC I LEV T.O LCK SIN 20427 064443 5 0 I2MTC2: IRS NONE X 20430 003423 5 0 JMP I2MTC1 20431 003420 5 0 JMP I2MTC0 LEV T.O 20432 000000 5 HITC: 0 /TIMEOUT CHECK ROUTINE 20433 004131 5 LDA MITH 20434 011455 5 STA HITK /ATTEMPT TO WAKE UP ALL HOST-TO-IMP6 20435 005455 5 HITZ: LDA HITK 20436 012273 5 ERA TIME /USE A RANDOM WAKEUP ORDER 20437 006120 5 ANA SEVEN /TO FACILITATE RESOURCE SHARING 20440 010000 5 STA 0 20441 001001 5 INH [SIN,H2I,TPC] 20442 105726 5 0 LDA (HITT 0 X) I 20443 100040 5 0 SZE /IS THIS HOST WAITING TO WAKE UP? 20444 125726 5 0 IRS (HITT 0 X) I /YES, TIME TO WAKE HIM YET? 20445 003451 5 0 JMP HITZL /NO 20446 000013 5 0 EXA /YES, SOFTWARE INTERRUPT HOST-TO-IMP 20447 121727 5 0 JST (HISB) I RET T.O 20450 001001 5 INH ALL 20451 120672 5 0 HITZL: JST DODXA I RET T.O 20452 025455 5 IRS HITK 20453 003435 5 JMP HITZ 20454 103432 5 JMP HITC I LEV VAR 20455 V HITK: BSS 1 20456 V IMTK: BSS 1 /TEMP COUNTER ^L PAGE 179 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 20457 000000 5 DEDL: 0 /INVESTIGATE FOR LINE STATUS 20460 044266 5 LDA SLT X 20461 100400 5 SPL /IS THIS LINE IN DEAD STATE? 20462 003604 5 JMP HEL4 /YES, GO NO FURTHER 20463 140040 5 CRA 20464 127702 5 IMA (E123 0 X) I 20465 101040 5 SNZ /DID WE GET ANY ROUTING MSGS? 20466 003472 5 JMP DED1 /NO 20467 064424 5 IRS SIHY X /YES, COUNT ONE AS AN HELLO 20470 065656 5 IRS RTRCVD X /AND RETURN AN I-HEARD-YOU 20471 101000 5 NOP 20472 125730 5 DED1: IRS (RTSSNT 0 X) I /COUNT HELLO SENT 20473 101000 5 NOP 20474 044431 5 LDA LAC X /CHECK LINE ALIVE COUNT 20475 101040 5 SNZ /DID WE GET AN I-HEARD-YOU? 20476 003531 5 JMP NOC /NO INPUT ON THIS CHANNEL 20477 016114 5 SUB ONE /YES, CAN ONLY GET ONE (TWO IN CASE O 20500 100040 5 SZE /PER BASIC INTERVAL 20501 004114 5 LDA ONE 20502 050431 5 STA LAC X 20503 044436 5 LDA LINE X 20504 101040 5 SNZ 20505 003521 5 JMP DED3 /LINE WAS ALREADY ALIVE 20506 065651 5 IRS LTR X 20507 103457 5 JMP DEDL I /NOT TIME TO BRING LINE UP YET 20510 140040 5 CRA 20511 050436 5 STA LINE X 20512 024456 5 IRS LINSUP /ADJUST LINES-UP COUNT 20513 101000 5 NOP 20514 044160 5 LDA NEIGHB X /FOR DETECTING PACKETS ON LOOPED LI.' 20515 016106 5 SUB MINE 20516 006112 5 ANA SIGN /1=I AM THE HIGHER NUMBER IMP 20517 040672 5 ARR 6 0"A"ENDBIT 20520 111731 5 STA (LEND 0 X) I /SAVE FOR USE IN PACKET 20521 004456 5 DED3: LDA LINSUP /GET LINE UP TIME 20522 100040 5 SZE /ARE WE A STUB? 20523 045670 5 LDA NSTUB X 20524 100040 5 SZE /OR IS OUR NEIGHBOR A STUB? 20525 005732 5 LDA (5) /IF NOT, THEN SHORTER TIME 20526 015733 5 ADD (-10.) 20527 051663 5 STA LINUT X 20530 003544 5 JMP HEL1 ^L PAGE 180 IMP,3147,IMP 4:35 PM 7/19/1974 20531 044436 5 NOC: LDA LINE X 20532 100040 5 SZE /WAS LINE ALIVE? 20533 003546 5 JMP DED4 /LINE STILL IS DEAD 20534 065651 5 IRS LTR X /CURRENTLY UP, SHOULD IT BE? 20535 003553 5 JMP HEL3 /NOT TIME TO KILL LINE YET 20536 001001 5 INH M2I 20537 121711 5 0 JST (KILLIN) I 20540 000401 5 0 ENB T.O 20541 105707 5 HELD: LDA (LINDT 0 X) I 20542 111731 5 STA (LEND 0 X) I /MARK LINE DOWN 20543 050436 5 HEL0: STA LINE X 20544 051651 5 HEL1: STA LTR X 20545 103457 5 JMP DEDL I 20546 045651 5 DED4: LDA LTR X /LINE IS DEAD 20547 123707 5 CAS (LINDT 0 X) I /IS IT AT MAX DEAD COUNT? 20550 016114 5 SUB ONE /NOT YET, COUNT DOWN 20551 003543 5 JMP HEL0 /AND RETURN 20552 003541 5 JMP HELD /PAST MAX!? RESET 20553 045651 5 HEL3: LDA LTR X /LINE IS DYING 20554 022123 5 CAS MINUS3 /IS IT TIME TO GIVE FAKE ROUTING? 20555 100000 5 SKP /NO 20556 121734 5 JST (RSTINP) I /YES,CALL ROUTING INPUT W/ DUMMY MSG 20557 103457 5 JMP DEDL I LCK I2M 20560 000000 5 2 JSRTS: 0 20561 015676 5 2 ADD SENR 20562 011677 5 2 STA JSRTQ 20563 073677 5 2 JSRTS1: LDX JSRTQ 20564 121735 5 2 JST (GETQ) I 20565 103560 5 2 JMP JSRTS I 20566 021570 5 2 JST RQSUB 20567 003563 5 2 JMP JSRTS1 20570 000000 5 2 RQSUB: 0 20571 132405 5 2 STX ERQ I 20572 032405 5 2 STX ERQ 20573 024566 5 2 IRS NSFS /TASK WILL FLUSH IF DEST WENT DEAD 20574 044002 5 2 LDA PTRT X 20575 101040 5 2 SNZ 20576 103570 5 2 JMP RQSUB I 20577 010000 5 2 STA 0 20600 005736 5 2 LDA (140000) 20601 052012 5 2 ERA TDONE X 20602 050012 5 2 STA TDONE X 20603 103570 5 2 JMP RQSUB I ^L PAGE 181 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 20604 121734 5 HEL4: JST (RSTINP) I /CALL ROUT INPUT W/ DUMMY MSG 20605 105704 5 LDA (RMFLG 0 X) I 20606 140500 5 SSM 0"A"RMINIT /LINE IS NOT REAL - FOR RSTSWP 20607 111704 5 STA (RMFLG 0 X) I 20610 064266 5 IRS SLT X 20611 003541 5 JMP HELD 20612 001001 5 INH I2M 20613 033676 5 2 STX SENR 20614 005737 5 2 JSRT2: LDA (SMPQ) 20615 021560 5 2 JSRT3: JST JSRTS 20616 005740 5 2 JSRT4: LDA (SMQ) 20617 021560 5 2 JST JSRTS 20620 073676 5 2 LDX SENR 20621 005741 5 2 LDA (ACKTAB) 20622 050654 5 2 STA RSEX X 20623 050661 5 2 STA CHFREE X 20624 044630 5 2 LDA I2MTAB X 20625 111742 5 2 STA (I2MLST 0 X) I 20626 050635 5 2 STA I2MEND X 20627 005743 5 2 LDA (-NACH) 20630 050642 5 2 STA I2MNXT X /TEMP COUNTER 20631 140040 5 2 NACKL: CRA 20632 050647 5 2 STA TSEX X /ZERO THIS - LOOP UNNECESSARY 20633 050443 5 2 STA NONE X /ZERO THIS - LOOP UNNECESSARY 20634 166635 5 2 IMA I2MEND XI 20635 010000 5 2 STA 0 20636 023744 5 2 CAS (1777) 20637 021570 5 2 JST RQSUB 20640 101000 5 2 NOP /NOTHING THERE OR JUST A DUMMY 20641 073676 5 2 LDX SENR 20642 064635 5 2 IRS I2MEND X 20643 064642 5 2 IRS I2MNXT X /ENDS AT ZERO- INITS I2MNXT 20644 003631 5 2 JMP NACKL 20645 005745 5 2 LDA (JMP+0+1000+M2I0"A"777) 20646 111746 5 2 STA (M2IOK 0 XI) I 20647 000401 5 2 ENB T.O 20650 003541 5 JMP HELD LEV VAR 20651 V LTR: BSS CH 20656 V RTRCVD: BSS CH /COUNT OF HELLO'S RCVD 20663 V LINUT: BSS CH /-NO OF TICKS BEFORE LINE DIES 20670 V NSTUB: BSS CH /=0 IF NEIGHBOR IS A STUB 20675 V SATNO: BSS 1 /0 IF NONE 20676 V SENR: BSS 1 20677 V JSRTQ: BSS 1 ^L PAGE 182 IMP,3147,IMP 4:35 PM 7/19/1974 20700 177747 C LEV CON CONSTANTS 20701 037703 C 20702 045550 C 20703 101006 C 20704 052640 C 20705 020401 C 20706 051456 C 20707 051464 C 20710 045067 C 20711 011125 C 20712 177761 C 20713 177775 C 20714 026466 C 20715 022461 C 20716 034641 C 20717 032375 C 20720 015266 C 20721 151463 C 20722 000020 C 20723 167215 C 20724 177716 C 20725 012623 C 20726 053170 C 20727 013137 C 20730 062427 C 20731 050232 C 20732 000005 C 20733 177766 C 20734 026106 C 20735 015646 C 20736 140000 C 20737 000321 C 20740 000314 C 20741 000377 C 20742 052700 C 20743 177770 C 20744 001777 C 20745 003212 C 20746 150225 C 02516 176754 C PAGEND 20,UNCON,4 ^L PAGE 183 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O LCK ALL /SLOW TIMEOUT JOBS 21066 121672 5 0 JOBS: JST (IHTC) I RET T.O /ATTEMPT TO RESTART HOST OU 21067 121673 5 JST (DEDH) I /ESTABLISH HOST UP/DOWN STATUS 21070 121674 5 JST (RUTCLK) I /PERIODIC ROUTING JOBS 21071 121675 5 JST (HTEST) I /OCP INTERFACES IF NECESSARY 21072 121676 5 JST (HPOKE) I /TEST HOST INTERFACE 21073 004121 5 LDA MINUS1 /DEAD IMP CLEANUP - AFTER ROUTING CUM 21074 021132 5 JST RESETT 21075 021306 5 JST RESETR 21076 021566 5 JST JUQC /ADJUST QUEUE COUNTERS 21077 000401 5 ENB T.O 21100 021615 5 JST MESSTO /TIMEOUT INCOMPLETE MESSAGE NUMBERS 21101 121677 5 JST (BLSLTO) I /TIME OUT BLOCK FAKE HOST 21102 073700 5 LDX (0 0 -ADDBOT-1+ADDTOP) /CHECK ADD CHAIN 21103 005701 5 LDA (ADD BUFE+6 X) /BASIC INSTRUCTION 21104 001001 5 INH ALL /CHECK EXA MODE DEFHLT [ADD CHAIN CHECKER IN EXA MODE] 21105 121702 5 0 JST (CHKDXA) I /PRESERVES A, X 21106 000401 5 0 ENB T.O 21107 123703 5 ADDCH1: CAS (ADDBOT+1 X) I 21110 100000 5 SKP /BAD 21111 100000 5 SKP /GOOD RELOAD [ADD CHAIN BROKEN] 21112 120061 5 JST SWDTIL I /BAD, GO RELOAD 21113 016114 5 SUB ONE /MODIFY INSTR IN A 21114 024000 5 IRS 0 21115 003107 5 JMP ADDCH1 21116 005704 5 LDA (JMP ADDRET I) /CHECK RETURN INSTR 21117 113703 5 ERA (ADDBOT+1 X) I 21120 100040 5 SZE RELOAD [ADD CHAIN RETURN BROKEN] 21121 120061 5 JST SWDTIL I /BAD, GO RELOAD 21122 010455 5 STA LUUP /BLINK LOOPED LIGHT 21123 5 VDH3: BSS 1 /VDH TIMEOUT CALL 21124 001001 5 INH ALL 21125 024421 5 0 IRS TIMES /COUNT TIME IN SLOW TICKS 21126 024504 5 0 IRS WDTIME /CHECK SOFTWARE W.D.T. 21127 103705 5 0 JMP (JOBF1) I /NOW DO FAST STUFF. RELOAD [SOFTWARE WDT FIRED] 21130 120061 5 0 JST SWDTIL I LEV CON 21131 C VDH3.: BSS 1 ^L PAGE 184 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 21132 000000 5 RESETT: 0 /RESET ALL TRANSMIT TABLES 21133 011516 5 STA RSTIMP 21134 005706 5 LDA (-PPTL) 21135 011520 5 STA RSTCNT 21136 005707 5 LDA (PPT) /*RESET PPT 21137 011521 5 STA RSTPTR 21140 001001 5 INH ALL 21141 105521 5 0 REST1: LDA RSTPTR I 21142 101040 5 0 SNZ /ANYTHING THERE? 21143 003173 5 0 JMP REST2 /NO 21144 010000 5 0 STA 0 /YES 21145 044006 5 0 LDA HEAD1 X 21146 021471 5 0 JST RSTCHK /TO BE RESET? 21147 003173 5 0 JMP REST2 /NO 21150 073521 5 0 LDX RSTPTR /YES 21151 140040 5 0 CRA 21152 066000 5 0 IMA PPT0 X /CLEAR PPT ENTRY 21153 140100 5 0 SSP 0"A"RETRAN 21154 010000 5 0 STA 0 21155 120700 5 0 JST FLUSHI I /FLUSH BUFFER 21156 044010 5 0 LDA HEAD3 X 21157 007710 5 0 ANA (LINKNO) /GET MESS ID 21160 013523 5 0 ERA RSTSBC /..AND SUBCODE 21161 010516 5 0 STA TWDP 21162 044007 5 0 LDA HEAD2 X 21163 121711 5 0 JST (HOSTNO) I 21164 011517 5 0 STA RSTHST /..AND HOST NO 21165 044006 5 0 LDA HEAD1 X /..AND DEST 21166 007712 5 0 ANA (0 0 177777"X"LSTPKT"X"HICODE) 21167 013522 5 0 ERA RSTCOD /..AND CODE 21170 073517 5 0 LDX RSTHST 21171 120677 5 0 JST OWP I /GIVE MESSAGE TO HOST 21172 101000 5 0 NOP 21173 025521 5 0 REST2: IRS RSTPTR /LOOP OVER ALL PPT ENTRIES 21174 025520 5 0 IRS RSTCNT 21175 003141 5 0 JMP REST1 21176 000401 5 0 ENB T.O ^L PAGE 185 IMP,3147,IMP 4:35 PM 7/19/1974 21177 005713 5 LDA (-PLTL) 21200 011520 5 STA RSTCNT 21201 005714 5 LDA (PLT) /*RESET PLT 21202 011521 5 STA RSTPTR 21203 001001 5 INH ALL 21204 105521 5 0 REST3: LDA RSTPTR I 0"A"PLT0 21205 101040 5 0 SNZ /ANYTHING THERE? 21206 003231 5 0 JMP REST4 /NO 21207 073521 5 0 LDX RSTPTR /YES 21210 044014 5 0 LDA PLT1 X 21211 021471 5 0 JST RSTCHK /TO BE RESET? 21212 003231 5 0 JMP REST4 /NO 21213 140040 5 0 CRA /YES 21214 066000 5 0 IMA PLT0 X /CLEAR PLT ENTRY 21215 006120 5 0 ANA SEVEN 0"A"PLTHST 21216 011517 5 0 STA RSTHST /GET HOST NO 21217 044030 5 0 LDA PLT2 X 21220 007710 5 0 ANA (LINKNO) /..AND MESS ID 21221 013523 5 0 ERA RSTSBC /..AND SUBCODE 21222 010516 5 0 STA TWDP 21223 044014 5 0 LDA PLT1 X /..AND DEST 21224 007712 5 0 ANA (0 0 177777"X"LSTPKT"X"HICODE) 21225 013522 5 0 ERA RSTCOD /..AND CODE 21226 073517 5 0 LDX RSTHST 21227 120677 5 0 JST OWP I /GIVE MESSAGE TO HOST 21230 101000 5 0 NOP 21231 025521 5 0 REST4: IRS RSTPTR /LOOP OVER ALL PLT ENTRIES 21232 025520 5 0 IRS RSTCNT 21233 003204 5 0 JMP REST3 21234 000401 5 0 ENB T.O ^L PAGE 186 IMP,3147,IMP 4:35 PM 7/19/1974 21235 005706 5 LDA (-TALLYL) 21236 011520 5 STA RSTCNT 21237 005715 5 LDA (TALLY) /*RESET TALLY 21240 011521 5 STA RSTPTR 21241 001001 5 INH ALL 21242 105521 5 0 REST5: LDA RSTPTR I 21243 100040 5 0 SZE /ANYTHING THERE? 21244 021471 5 0 JST RSTCHK /YES, TO BE RESET? 21245 003251 5 0 JMP REST6 /NO TO EITHER 21246 105521 5 0 LDA RSTPTR I /YES TO BOTH 21247 121716 5 0 JST (TALLYG) I /CLEAR TALLY ENTRY 21250 101000 5 0 NOP 21251 025521 5 0 REST6: IRS RSTPTR /LOOP OVER ALL TALLY ENTRIES 21252 025520 5 0 IRS RSTCNT 21253 003242 5 0 JMP REST5 21254 000401 5 0 ENB T.O 21255 004132 5 LDA MINIMP 21256 011520 5 STA RSTCNT 21257 072113 5 LDX ZERO /*RESET TMESS 21260 004000 5 REST7: LDA 0 21261 021471 5 JST RSTCHK /TO BE RESET? 21262 003265 5 JMP REST8 /NO 21263 005717 5 LDA (0 0 177777"X"MSTO1"X"MSTO2) /YES 21264 111720 5 STA (TMESS 0 X) I /NOMINAL VALUE 21265 024000 5 REST8: IRS 0 /LOOP OVER ALL IMPS 21266 025520 5 IRS RSTCNT 21267 003260 5 JMP REST7 21270 004131 5 LDA MITH 21271 011520 5 STA RSTCNT 21272 072113 5 LDX ZERO 21273 001001 5 REST9: INH H2I 21274 105721 5 4 LDA (HIDEST 0 X) I 21275 013516 5 4 ERA RSTIMP 21276 101040 5 4 SNZ 21277 111722 5 4 STA (HIRST 0 X) I /ZERO = CLEAN UP 21300 000401 5 4 ENB T.O 21301 024000 5 IRS 0 /LOOP OVER ALL HOSTS 21302 025520 5 IRS RSTCNT 21303 003273 5 JMP REST9 21304 005516 5 LDA RSTIMP 21305 103132 5 JMP RESETT I ^L PAGE 187 IMP,3147,IMP 4:35 PM 7/19/1974 21306 000000 5 RESETR: 0 /RESET ALL RECEIVE TABLES 21307 011516 5 STA RSTIMP 21310 073723 5 LDX (SHRQ) /*RESET REASSEMBLY 21311 001001 5 INH ALL 21312 044000 5 0 RESR1: LDA 0 X 21313 101040 5 0 SNZ /ANYTHING THERE? 21314 003317 5 0 JMP RESR2 /NO 21315 021455 5 0 JST RSTREA /YES, CHECK IT OUT 21316 003312 5 0 JMP RESR1 /AND GO ON 21317 000401 5 0 RESR2: ENB T.O 21320 073724 5 LDX (MESSTK) /*RESET MESSAGE STACK 21321 001001 5 INH ALL 21322 044000 5 0 RESR3: LDA 0 X 21323 101040 5 0 SNZ /ANYTHING THERE? 21324 003334 5 0 JMP RESR5 /NO 21325 100400 5 0 SPL /YES, IS IT A REASSEMBLY BLOCK? 21326 003332 5 0 JMP RESR4 /YES 21327 021440 5 0 JST RSTPKT /NO,IT IS A PACKET, CHECK IT OUT 21330 101000 5 0 NOP 21331 003322 5 0 JMP RESR3 /AND GO ON 21332 021455 5 0 RESR4: JST RSTREA /CHECK ON REAS BLK 21333 003322 5 0 JMP RESR3 /AND GO ON 21334 004131 5 0 RESR5: LDA MITH 21335 011520 5 0 STA RSTCNT 21336 072113 5 0 LDX ZERO 21337 033517 5 0 STX RSTHST 21340 005725 5 0 RESR6: LDA (SHQ) /* RESET PACKETS ON HOST REG QUEUES 21341 014000 5 0 ADD 0 /PTR TO CURRENT HOST QUEUE 21342 011527 5 0 RESR6A: STA RSTIHQ /SAVE 21343 113726 5 0 ERA (IHWQ 0 X) I /SAME AS IH QUEUE? 21344 100040 5 0 SZE 21345 003364 5 0 JMP RESR7 /NO 21346 104706 5 0 LDA IHXX I /YES, RESET PACKETS IN HOST INTERFACE 21347 140100 5 0 SSP 21350 101040 5 0 SNZ /A PACKET GOING OUT? 21351 003364 5 0 JMP RESR7 /NO 21352 105727 5 0 LDA (IHLSTP 0 X) I 21353 100400 5 0 SPL /LAST PACKET? 21354 003364 5 0 JMP RESR7 /YES 21355 105527 5 0 LDA RSTIHQ I /NO, GET FIRST PACKET ON QUEUE 21356 010000 5 0 RESR6B: STA 0 /PACKET POINTER 21357 044007 5 0 LDA HEAD2 X 21360 100400 5 0 SPL 0"A"LSTPKT /LAST PACKET? 21361 003365 5 0 JMP RESR7A /YES 21362 044000 5 0 LDA 0 X /NO, GET NEXT PACKET 21363 003356 5 0 JMP RESR6B /AND LOOP 21364 073527 5 0 RESR7: LDX RSTIHQ /PACKET POINTER 21365 005527 5 0 RESR7A: LDA RSTIHQ /QUEUE POINTER 21366 015730 5 0 ADD (NHS+0-SHQ) 21367 011525 5 0 STA RSTPCT /PTR TO QUEUE COUNTER 21370 015731 5 0 ADD (EHQ+0-NHS) 21371 011526 5 0 STA RSTPQT /PTR TO QUEUE END PTR ^L PAGE 188 IMP,3147,IMP 4:35 PM 7/19/1974 21372 044000 5 0 RESR7B: LDA 0 X 21373 101040 5 0 SNZ /ANYTHING THERE? 21374 003404 5 0 JMP RESR7D /NO, QUIT 21375 021440 5 0 RESR7C: JST RSTPKT /YES, CHECK FOR RESET 21376 003372 5 0 JMP RESR7B /GO BACK 21377 125525 5 0 IRS RSTPCT I /FIX QUEUE COUNTER IF RESET 21400 044000 5 0 LDA 0 X 21401 100040 5 0 SZE /LAST ONE ON QUEUE? 21402 003375 5 0 JMP RESR7C /NO, GO BACK 21403 133526 5 0 STX RSTPQT I /YES, FIX END POINTER 21404 005527 5 0 RESR7D: LDA RSTIHQ /GET CURRENT QUEUE POINTER 21405 015732 5 0 ADD (SHPQ-0-SHQ) /*RESET PACKETS ON HOST PRI QUEU 21406 023733 5 0 CAS (SHPQ+TH) /FINISHED WITH PRI QUEUE? 21407 003412 5 0 JMP RESR7E /YES 21410 003412 5 0 JMP RESR7E /YES 21411 003342 5 0 JMP RESR6A /NO, LOOP 21412 000401 5 0 RESR7E: ENB T.O 21413 025517 5 IRS RSTHST 21414 073517 5 LDX RSTHST 21415 001001 5 INH ALL 21416 025520 5 0 IRS RSTCNT /LOOP OVER ALL HOSTS 21417 003340 5 0 JMP RESR6 21420 000401 5 0 ENB T.O 21421 004132 5 LDA MINIMP 21422 011520 5 STA RSTCNT 21423 072113 5 LDX ZERO /*RESET RMESS, AMESS, RALLY 21424 004000 5 RESR8: LDA 0 /(MUST FOLLOW HOST QUEUE RESET) 21425 021471 5 JST RSTCHK /TO BE RESET? 21426 003434 5 JMP RESR9 /NO 21427 005734 5 LDA (0 0 3"T"400) 0"A"MESSNO /YES 21430 111735 5 STA (RMESS 0 X) I /NOMINAL VALUES 21431 140040 5 CRA 21432 111736 5 STA (AMESS 0 X) I 21433 111737 5 STA (RALLY 0 X) I 21434 024000 5 RESR9: IRS 0 21435 025520 5 IRS RSTCNT /LOOP FOR ALL IMPS 21436 003424 5 JMP RESR8 21437 103306 5 JMP RESETR I LEV T.O LCK ALL 21440 000000 5 0 RSTPKT: 0 /CHK A PKT FOR RESET + DO IT (PRESEHV 21441 033521 5 0 STX RSTPTR 21442 010000 5 0 STA 0 21443 044007 5 0 LDA HEAD2 X 21444 021471 5 0 JST RSTCHK /TO BE RESET? 21445 103440 5 0 JMP RSTPKT I /NO 21446 044000 5 0 LDA 0 X /YES 21447 111521 5 0 STA RSTPTR I /FIX CHAIN PTRS ON QUEUE 21450 120700 5 0 JST FLUSHI I /FLUSH PACKET 21451 024567 5 0 IRS NRES /FIX REASSEMBLY COUNT 21452 073521 5 0 LDX RSTPTR /RESTORE X TO ORIG 21453 025440 5 0 IRS RSTPKT /SKIP RETURN= RESET DONE 21454 103440 5 0 JMP RSTPKT I ^L PAGE 189 IMP,3147,IMP 4:35 PM 7/19/1974 21455 000000 5 0 RSTREA: 0 /CHK A REAS BLK FOR RESET + DO IT (-9 21456 033521 5 0 STX RSTPTR 21457 140100 5 0 SSP 21460 010000 5 0 STA 0 /CHANGE X 21461 044001 5 0 LDA RID X 21462 021471 5 0 JST RSTCHK /TO BE RESET? 21463 103455 5 0 JMP RSTREA I /NO 21464 044000 5 0 LDA 0 X /YES 21465 111521 5 0 STA RSTPTR I /FIX CHAIN POINTER ON QUEUE 21466 021530 5 0 JST REASF /FLUSH REAS BLOCK + PACKETS IN IT 21467 073521 5 0 LDX RSTPTR /RESTORE X TO ORIG 21470 103455 5 0 JMP RSTREA I /SKIP RETURN IF IMP IS DEAD OR RESET 21471 000000 5 0 RSTCHK: 0 /CHK AN IMP NO FOR RESET (PRESERVES X 21472 007740 5 0 ANA (DESTI) 21473 023516 5 0 CAS RSTIMP /IS THIS THE ONE WE SHOULD RESET? 21474 100000 5 0 SKP /NO 21475 003512 5 0 JMP RSTCH2 /YES 21476 033524 5 0 STX RSTCHT /SAVE X 21477 010000 5 0 STA 0 21500 044165 5 0 LDA RUT X 21501 073524 5 0 LDX RSTCHT /RESTORE X 21502 101400 5 0 SMI 0"A"RUTDED /IS THIS IMP DEAD? 21503 103471 5 0 JMP RSTCHK I /NO, JUST RETURN 21504 005741 5 0 LDA (CDESTD) /YES, SETUP 21505 011522 5 0 STA RSTCOD /DEAD CODE 21506 140040 5 0 CRA 0"A"CIMPD /..AND SUBCODE 21507 011523 5 0 RSTCH1: STA RSTSBC 21510 025471 5 0 IRS RSTCHK /SKIP RETURN= DEAD OR RESET 21511 103471 5 0 JMP RSTCHK I 21512 005742 5 0 RSTCH2: LDA (CINCTR) /SET UP INCOMPLETE CODE 21513 011522 5 0 STA RSTCOD 21514 005743 5 0 LDA (CLOST) /AND SUBCODE 21515 003507 5 0 JMP RSTCH1 /FOR RESET IMP LEV VAR 21516 V RSTIMP: BSS 1 /DEST IMP TO RESET, -1= NONE 21517 V RSTHST: BSS 1 /SOURCE HOST TO NOTIFY 21520 V RSTCNT: BSS 1 /TEMP COUNTER 21521 V RSTPTR: BSS 1 /TEMP POINTER 21522 V RSTCOD: BSS 1 /IMP-HOST CODE TO SEND: DEAD OR INC-M 21523 V RSTSBC: BSS 1 /IMP-HOST SUBCODE TO SEND 21524 V RSTCHT: BSS 1 /TEMP SAVE X 21525 V RSTPCT: BSS 1 /POINTER TO QUEUE COUNTER 21526 V RSTPQT: BSS 1 /PTR TO QUEUE END PTR 21527 V RSTIHQ: BSS 1 /TEMP SAVE IHWQ ^L PAGE 190 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O LCK ALL 21530 000000 5 0 REASF: 0 /FREE REAS BLOCK AND ANY PKTS 21531 004000 5 0 LDA 0 21532 026330 5 0 IMA RASF 21533 110330 5 0 STA RASF I /RETURN REAS BLOCK TO REAS FREE LIST 21534 005706 5 0 LDA (-8) 0"A"8PKTS 21535 011563 5 0 STA INCN 21536 140040 5 0 CRA 21537 050013 5 0 STA RSF X 21540 044002 5 0 LDA RMAX X 21541 100400 5 0 SPL /DID WE GET LAST PKT? 21542 004120 5 0 LDA SEVEN 0"A"8PKTS /NO 21543 141206 5 0 AOA 21544 014567 5 0 ADD NRES 21545 010567 5 0 STA NRES /ADJUST REAS COUNT 21546 024570 5 0 IRS NRAS 21547 140040 5 0 INCFRE: CRA 21550 066003 5 0 IMA REAS X 21551 101040 5 0 SNZ /DID WE GET THIS PKT? 21552 003557 5 0 JMP INCNXT /NO 21553 033564 5 0 STX INCX 21554 010000 5 0 STA 0 /YES, SO FREE IT 21555 120700 5 0 JST FLUSHI I 21556 073564 5 0 LDX INCX 21557 024000 5 0 INCNXT: IRS 0 21560 025563 5 0 IRS INCN 21561 003547 5 0 JMP INCFRE 21562 103530 5 0 JMP REASF I LEV VAR 21563 V INCN: BSS 1 21564 V INCX: BSS 1 ^L PAGE 191 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 21565 000000 V HLRCVD: 0 /# OF CORRECT RESPONSES LEV T.O 21566 000000 5 JUQC: 0 21567 073744 5 LDX (-COUNTL) 21570 001001 5 QC1: INH ALL 21571 044545 5 0 LDA COUNTA+COUNTL X 21572 056572 5 0 SUB COUNTS+COUNTL X 21573 101400 5 0 SMI /NEGATIVE 21574 003601 5 0 JMP QC2 /NO DEFHLT [QUEUE COUNTER WENT NEGATIVE] 21575 021576 5 0 JST CNTHLT 21576 000000 5 0 CNTHLT: 0 21577 120745 5 0 JST HLTNCC I 21600 140040 5 0 CRA /RESET COUNT TOT ZERO 21601 050545 5 0 QC2: STA COUNTA+COUNTL X 21602 140040 5 0 CRA 21603 050572 5 0 STA COUNTS+COUNTL X 21604 000401 5 0 ENB T.O 21605 024000 5 IRS 0 21606 003570 5 JMP QC1 21607 001001 5 INH ALL 21610 125745 5 0 IRS (SNTALL) I /ARE WE ALLOCATE-IDLE? 21611 103566 5 0 JMP JUQC I /NO 21612 010544 5 0 STA NALA /YES, FREE UP ALLOCATE STORE 21613 010543 5 0 STA NRAA /AND REAS BLKS 21614 103566 5 0 JMP JUQC I ^L PAGE 192 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 21615 000000 5 MESSTO: 0 /TIMEOUT MESS NO IN 34-51 SECS 21616 025671 5 IRS MESST /TIME TO LOOK YET? 21617 103615 5 JMP MESSTO I /NO 21620 072132 5 LDX MINIMP 21621 001001 5 MESST1: INH H2I 21622 105735 5 4 LDA (TMESS+NIMP 0 X) I 21623 007746 5 4 ANA (MESBTS) 21624 013746 5 4 ERA (MESBTS) 21625 101040 5 4 SNZ /ANY MESSAGES OUTSTANDING? 21626 003637 5 4 JMP MESST2 /NOTHING TO TIME OUT 21627 105735 5 4 LDA (TMESS+NIMP 0 X) I 21630 007747 5 4 ANA (MSTO1 0 MSTO2) 21631 013747 5 4 ERA (MSTO1 0 MSTO2) 21632 101040 5 4 SNZ 21633 003637 5 4 JMP MESST2 /ALREADY TIMED OUT 21634 005750 5 4 LDA (MSTO1) 21635 115735 5 4 ADD (TMESS+NIMP 0 X) I 21636 111735 5 4 STA (TMESS+NIMP 0 X) I 21637 005736 5 4 MESST2: LDA (RMESS+NIMP X) 21640 021654 5 4 JST MESRTO 21641 005737 5 4 LDA (AMESS+NIMP X) 21642 021654 5 4 JST MESRTO 21643 000401 5 4 MESST3: ENB T.O 21644 024000 5 IRS 0 21645 003621 5 JMP MESST1 21646 004107 5 LDA M30SEC /17 SECS 21647 040575 5 ARS 3 21650 014107 5 ADD M30SEC 21651 040577 5 ARS 1 21652 011671 5 STA MESST /BETWEEN LOOKS 21653 103615 5 JMP MESSTO I LCK H2I 21654 000000 5 4 MESRTO: 0 /MESS NO RESET T.O 21655 011671 5 4 STA MESST /PNTR TEMP 21656 105671 5 4 LDA MESST I 21657 007747 5 4 ANA (MSRTO1 0 MSRTO2) 21660 101040 5 4 SNZ /ARE WE TIMING OUT A RESET? 21661 103654 5 4 JMP MESRTO I /NO 21662 005750 5 4 LDA (MSRTO1) /YES, INCREMENT COUNTER 21663 115671 5 4 ADD MESST I /TO PREVENT DUPLICATES 21664 113671 5 4 ERA MESST I 21665 141050 5 4 CAL 0"A"MESSNO /BUT DONT CHANGE MESSNO 21666 113671 5 4 ERA MESST I /LEAVE TIMER AT ZERO 21667 111671 5 4 STA MESST I 21670 103654 5 4 JMP MESRTO I LEV VAR 21671 V MESST: BSS 1 ^L PAGE 193 IMP,3147,IMP 4:35 PM 7/19/1974 21672 016273 C LEV CON CONSTANTS 21673 017417 C 21674 027017 C 21675 022073 C 21676 022155 C 21677 034623 C 21700 177664 C 21701 054117 C 21702 015507 C 21703 051605 C 21704 102111 C 21705 020262 C 21706 177770 C 21707 033335 C 21710 177760 C 21711 007217 C 21712 070377 C 21713 177764 C 21714 033355 C 21715 032375 C 21716 015225 C 21717 177477 C 21720 072405 C 21721 054250 C 21722 054105 C 21723 000342 C 21724 000331 C 21725 000274 C 21726 056227 C 21727 056237 C 21730 000251 C 21731 177601 C 21732 000010 C 21733 000314 C 21734 001400 C 21735 072505 C 21736 072605 C 21737 072705 C 21740 000077 C 21741 003400 C 21742 004400 C 21743 000003 C 21744 177753 C 21745 004174 C 21746 000017 C 21747 000300 C 21750 000100 C 02517 176761 C PAGEND 21,UNCON,0 ^L PAGE 194 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 22073 000000 5 HTEST: 0 22074 101000 5 HTMIN: NOP 22075 005671 5 LDA (NOP) /RESET MXIN/NOP INSTRUCTION 22076 011074 5 STA HTMIN 22077 004141 5 LDA HTPAR 22100 013176 5 ERA HTOLD 22101 101040 5 SNZ 22102 103073 5 JMP HTEST I /NO CHANGE, NOTHING TO DO 22103 004141 5 LDA HTPAR 22104 006120 5 ANA SEVEN /GET FUNCTION 22105 101040 5 SNZ 22106 003135 5 JMP HTX /FUNCTION ZERO?! 22107 010000 5 STA 0 22110 004141 5 LDA HTPAR 22111 040575 5 ARS 3 /GET INTERFACE 22112 006752 5 ANA C77 22113 011177 5 STA HTINTF 22114 055145 5 ADD HTTAB-1 X 22115 011133 5 STA HT5 /CORRECT OCP 22116 004000 5 LDA 0 22117 022116 5 CAS THREE 22120 003133 5 JMP HT5 /HOST FUNCTION...DO IT 22121 100000 5 SKP /MODEM UNPATCH...MORE TO DO 22122 003130 5 JMP HT1 /MODEM OTHER...SET UP IN 22123 073177 5 LDX HTINTF 22124 001001 5 INH I2M 22125 044442 5 2 LDA NONE-1 X /MODEM BUSY? 22126 100040 5 2 SZE 22127 003140 5 2 JMP HTVDH /YES, COME AGAIN 22130 005177 5 2 HT1: LDA HTINTF /SET UP IN FOR NEXT T.O. TO DO 22131 015672 5 2 ADD (M1IN-1) 22132 011074 5 2 STA HTMIN 22133 5 2 HT5: BSS 1 22134 000401 5 2 ENB T.O 22135 004141 5 HTX: LDA HTPAR /RESET HTOLD 22136 011176 5 STA HTOLD 22137 103073 5 JMP HTEST I 22140 105673 5 HTVDH: LDA (IMPMOD-1 X) I 22141 022114 5 CAS ONE /IS THIS MODEM STOLEN FROM IMP? 22142 003133 5 JMP HT5 />1= VDH OR HOST HAS IT, GO UNPATCH 22143 103073 5 JMP HTEST I /1= SIMP HAS IT, WAIT AND TRY AGAIN 22144 103073 5 JMP HTEST I /0= IMP HAS IT, DITTO 22145 103073 5 JMP HTEST I /NO, WAIT AND TRY AGAIN LEV CON /HTPAR HAS VALUE DDF - DEVICE IS DD AND FUNCTION IS F /D=1,2,3,4,5 FOR MODEMS 1,2,3,4,5 (F=1,2,OR 3) /D=70,60,50,51 FOR HOSTS 1,2,3,4 (F=4,5,OR 6) 22146 030270 C HTTAB: M1LXP-1 /1 - LINE CROSSPATCH 22147 030370 C M1IXP-1 /2 - INTERFACE CROSSPATCH 22150 030170 C M1UNXP-1 /3 - UNPATCH (RESTORE) 22151 030300 C H1XP-70 /4 - CROSSPATCH HOST INTERFACE 22152 030500 C H1ENAB-70 /5 - ENABLE NORMAL HOST TRAFFIC 22153 030400 C H1UNXP-70 /6 - UNPATCH (CLEAR) HOST INTERFACE 22154 101000 C NOP /7 PAGE 195 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 22155 000000 5 HPOKE: 0 /TEST HOST INTERFACE 22156 001001 5 INH FRE 22157 004142 5 0 LDA HLNM /TESTER TURNED ON? 22160 100400 5 0 SPL 22161 003173 5 0 JMP HPOKE2 /OFF 22162 010000 5 0 STA 0 22163 044334 5 0 LDA SHWQ X /ROOM FOR ANOTHER TEST PROD? 22164 100040 5 0 SZE 22165 003173 5 0 JMP HPOKE2 /NO 22166 004143 5 0 LDA HL2WD 22167 010516 5 0 STA TWDP 22170 005674 5 0 LDA (CNOP) 22171 120677 5 0 JST OWP I 22172 025175 5 0 IRS HLSNT /COUNT ANOTHER POKE 22173 000401 5 0 HPOKE2: ENB T.O 22174 103155 5 JMP HPOKE I LEV VAR 22175 V HLSNT: BSS 1 22176 V HTOLD: BSS 1 22177 V HTINTF: BSS 1 ^L PAGE 196 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /TROUBLE REPORTS TO NCC AT HOST 0 AT BBN 22200 005675 7 TRBL: LDA (304) /*SEND TRBL REPT CODE 22201 011425 7 STA NTRCKS /INIT THE CHECKSUM COUNTER 22202 121676 7 JST (GIVE) I 22203 005416 7 LDA SWS /*SEND ANOMALY WORD - HOSTS + SWITCHE 22204 021434 7 JST NTGIVE 22205 127677 7 IMA (RSFNCC) I /*SEND RESTART-RELOAD INDICATOR 22206 021434 7 JST NTGIVE 22207 026746 7 IMA HLTLOC /*SEND HALT PC REG 22210 021434 7 JST NTGIVE 22211 004747 7 LDA HLTA /*SEND HALT A REQ 22212 021434 7 JST NTGIVE 22213 004750 7 LDA HLTX /*SEND HALT X REG 22214 021434 7 JST NTGIVE 22215 072124 7 LDX MINUS4 /*SEND COUNTS FOR 22216 001001 7 NTR7: INH ALL /FREE, REAS, S+F, AND ALLOCATE 22217 044544 7 0 LDA NFA+4 X 22220 056571 7 0 SUB NFS+4 X 22221 021434 7 0 JST NTGIVE RET BCK 22222 024000 7 IRS 0 22223 003216 7 JMP NTR7 22224 004105 7 LDA VERS /*SEND IMP VERSION NO 22225 021434 7 JST NTGIVE 22226 105700 7 LDA (HOST34) I /*SEND HOST34 CONFIGURATOR WORD 22227 021434 7 JST NTGIVE 22230 001001 7 INH ALL 22231 000013 7 0 EXA 22232 105701 7 0 LDA (TIPVER) I /*SEND TIP VERSION NO 22233 120672 7 0 JST DODXA I RET BCK 22234 021434 7 JST NTGIVE 22235 072124 7 LDX MINUS4 0"A"NH /A IS 0 22236 041674 7 NTR2: ALR 4 22237 011423 7 STA NTRTM1 22240 044511 7 LDA HIHD+NH X /IS HOST UP? 22241 100040 7 SZE 22242 044734 7 LDA HDOWN+NH X /YES, REPORT 0 22243 101040 7 SNZ /NO, HAVE A REASON? 22244 044511 7 LDA HIHD+NH X /NO, USE HIHD 22245 007702 7 ANA (HSTWHY) /YES, USE IT 22246 013423 7 ERA NTRTM1 22247 024000 7 IRS 0 /DONE ALL 4? 22250 003236 7 JMP NTR2 /NO 22251 021434 7 JST NTGIVE /*SEND HOST STATUS 22252 004142 7 LDA HLNM /*SEND NO OF HOST INTERFACE BEING TES] 22253 021434 7 JST NTGIVE 22254 127703 7 IMA (HLSNT) I /*SEND TEST MESS SENT COUNT 22255 021434 7 JST NTGIVE 22256 127704 7 IMA (HLRCVD) I /*SEND TEST MESS RECVD COUNT 22257 021434 7 JST NTGIVE 22260 011423 7 STA NTRTM1 /ZERO LINE-SPEEDS WORD 22261 072127 7 LDX MICH /TAKE A SNAPSHOT OF LINE ERRORS 22262 001001 7 NTR1: INH [T.O,TSK] /A=0 NOW ^L PAGE 197 IMP,3147,IMP 4:35 PM 7/19/1974 22263 140040 7 5 CRA 22264 127705 7 5 IMA (RTRCVD+CH 0 X) I 22265 057434 7 5 SUB RTSSNT+CH X /SUBTRACT ROUTING MESS 8ENT COU. 22266 140407 7 5 TCA /COMPUTE NO OF ROUTING MESS MISSED 22267 100400 7 5 SPL 22270 140040 7 5 CRA /MUST BE A POSITIVE NUMBER 22271 023706 7 5 CAS (377) 22272 005706 7 5 LDA (377) 22273 101000 7 5 NOP 22274 011426 7 5 STA E321 /SAVE AS ERROR COUNT FOR THIS LINE 22275 004121 7 5 LDA MINUS1 22276 067434 7 5 IMA RTSSNT+CH X /*SEND NO OF ROUTING MESS SENT 22277 023706 7 5 CAS (377) 22300 005706 7 5 LDA (377) 22301 101000 7 5 NOP 22302 021434 7 5 JST NTGIVE RET BCK 22303 044443 7 LDA LINE+CH X /NOW ERROR+THROUGHPUT COUNTS FOR EACH 22304 100040 7 SZE 22305 005707 7 LDA (200) 22306 052165 7 ERA NEIGHB+CH X /PICK UP NEIGHBOR IMP NUMBER 22307 022106 7 CAS MINE /IS LINE LOOPED? 22310 100000 7 SKP /NO 22311 012753 7 ERA C100 /YES, PUT IN LOOPED BIT 22312 141340 7 ICA 22313 013426 7 ERA E321 /*SEND NO OF ROUTING MESS MISSED 22314 021434 7 JST NTGIVE 22315 105710 7 LDA (RMFLG+CH X) I /GET LINE SPEED BITS 22316 141340 7 ICA 22317 006116 7 ANA THREE 0"A"SPDTYP 22320 013423 7 ERA NTRTM1 22321 041676 7 ALR 2 22322 011423 7 STA NTRTM1 22323 024000 7 IRS 0 22324 003262 7 JMP NTR1 22325 041674 7 ALR 4 /LEFT ADJUST 22326 021434 7 JST NTGIVE /*SEND LINE SPEEDS 22327 072123 7 LDX MINUS3 22330 105711 7 LDA (P37CRS+3 0 X) I /*SEND CRASH INFO (P, A, .) 22331 021434 7 JST NTGIVE 22332 024000 7 IRS 0 22333 003330 7 JMP .-3 ^L PAGE 198 IMP,3147,IMP 4:35 PM 7/19/1974 22334 027425 7 IMA NTRCKS /A=0 NOW 22335 140407 7 TCA 22336 121676 7 JST (GIVE) I /*SEND CHECKSUM 22337 140040 7 CRA 22340 027422 7 IMA TRBSTF /FIRED BY SYNC OR SWCH? 22341 100040 7 SZE 22342 103712 7 JMP (GIVLST) I /*SEND PADDING--FIRED BY SWCH 22343 073713 7 LDX (100003) /END OUR OWN MESSAGE 22344 004112 7 LDA SIGN 22345 120673 7 JST JAM I /*PADDING AND END OF MESSAGE 22346 105714 7 LDA (TRBD) I /*NCC DEST 22347 121676 7 JST (GIVE) I 22350 105715 7 LDA (TRBD+0+TLNK-TDST) I /*NCC LINK 22351 121676 7 JST (GIVE) I 22352 005716 7 LDA (302) /*STAT MESSAGE CODE 22353 021434 7 JST NTGIVE 22354 072127 7 LDX MICH /SEND LINE STATS 22355 127717 7 NTR8: IMA (THRUPT+CH X) I 22356 021434 7 JST NTGIVE /*PACKET THRUPUT 22357 127720 7 IMA (THRUPW+CH X) I 22360 021434 7 JST NTGIVE /*WORD THRUPUT 22361 024000 7 IRS 0 22362 003355 7 JMP NTR8 22363 073721 7 LDX (-NH) /NOW HOST THROUGHPUTS FOR EACH HOST 22364 005722 7 NTR5: LDA (-10.) /AND FOR EACH OF 10 FLAVORS 22365 011423 7 STA NTRTM1 22366 005723 7 LDA (NTRTAB 0 I) 22367 011424 7 STA NTRTM2 22370 140040 7 NTR4: CRA 22371 127424 7 IMA NTRTM2 I /*SEND HOST THROUGHPUT COUNT 22372 021434 7 JST NTGIVE 22373 025424 7 IRS NTRTM2 22374 025423 7 IRS NTRTM1 22375 003370 7 JMP NTR4 22376 024000 7 IRS 0 22377 003364 7 JMP NTR5 22400 027425 7 IMA NTRCKS /A=0 NOW 22401 140407 7 TCA 22402 121676 7 JST (GIVE) I /*SEND CKSUM 22403 103712 7 JMP (GIVLST) I /*SEND PADDING ^L PAGE 199 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 22404 073441 C NTRTAB: HTPMTN+NH X 22405 073445 C HTPMFN+NH X 22406 073451 C HTPPTN+NH X 22407 073455 C HTPPFN+NH X 22410 073461 C NTRT1: HTPMTL+NH X 22411 073465 C NTRT3: HTPMFL+NH X 22412 073471 C NTRT2: HTPPTL+NH X 22413 073475 C NTRT4: HTPPFL+NH X 22414 073501 C HTPWTI+NH X 22415 073505 C HTPWFI+NH X LEV VAR 22416 V SWS: BSS 1 /ANOMALIES 22417 V HLNMS: BSS 1 22420 V SWCHTM: BSS 1 22421 102707 V HERSAV: JMP HITSTP I 22422 V TRBSTF: BSS 1 22423 V NTRTM1: BSS 1 22424 V NTRTM2: BSS 1 22425 V NTRCKS: BSS 1 /CHECKSUM FOR TROUBLE REPT 22426 V E321: BSS 1 /NO OF ERRORS ON EACH LINE 22427 V RTSSNT: BSS CH /NO OF HELLO'S SENT LEV BCK 22434 000000 7 NTGIVE: 0 /BUILD CHECKSUM 22435 000401 7 ENB BCK 22436 027425 7 IMA NTRCKS 22437 015425 7 ADD NTRCKS 22440 027425 7 IMA NTRCKS 22441 121676 7 JST (GIVE) I /AND GIVE A WORD TO IMP VIA JAM 22442 140040 7 CRA 22443 103434 7 JMP NTGIVE I ^L PAGE 200 IMP,3147,IMP 4:35 PM 7/19/1974 /BITS IN SWS (TROUBLE REPORT ANOMALIES): / 100000 - SPARE / 40000 - SPARE / 20000 - SPARE / 10000 - SPARE / 4000 - SPARE / 2000 - M.GENERATOR IS ON / 1000 - STATISTICS IS ON / 400 - SNAPSHOT IS ON / 200 - TRACE IS ON / 100 - MEM PROTECT IS OFF / 40 - SIMP SOFTWARE IS UP / 20 - OVERRIDE IS ON / 10 - SS 1 IS ON / 4 - SS 2 IS ON / 2 - SS 3 IS ON / 1 - SS 4 IS ON LEV CON 22444 000113 C SWSTAB: ZERO /100000 22445 000113 C ZERO 22446 000113 C ZERO 22447 000113 C ZERO 22450 000113 C ZERO 22451 030424 C MGON 22452 030423 C SON 22453 030422 C SNON 22454 030421 C TRON 22455 022460 C MPROTF 22456 000572 C SATUPF 22457 000476 C OVRDF /20 SWSTN=0 0 .-SWSTAB LEV VAR 22460 V MPROTF: BSS 1 ^L PAGE 201 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 22461 000000 5 SWCH: 0 /SET UP SWITCH SETTINGS FOR TROUBLE ; 22462 005724 5 LDA (4000) /SET UP FREQ FOR NCC TRBL REPTS 22463 111725 5 STA (TRBF) I /DEST IS SET IN BACK 22464 072121 5 LDX MINUS1 22465 105677 5 LDA (RSFNCC) I 22466 101040 5 SNZ 22467 105726 5 LDA (HLTLOC) I 22470 100040 5 SZE /IF RSFLAG OR HLTLOC NON-ZERO 22471 033416 5 STX SWS /FIRE OFF A TRBL REPT NOW 22472 004142 5 LDA HLNM 22473 027417 5 IMA HLNMS 22474 023417 5 CAS HLNMS 22475 100000 5 SKP /CHANGE IN HOST TEST STATUS? 22476 003506 5 JMP SWCH0 /NO 22477 033416 5 STX SWS 22500 010000 5 STA 0 /PICK HOST NO GOING OFF 22501 005421 5 LDA HERSAV 22502 127727 5 IMA (HER 0 X) I /INTERCHANGE PATCH REGISTER 22503 072142 5 LDX HLNM /PICK HOST NO COMING ON 22504 127727 5 IMA (HER 0 X) I 22505 011421 5 STA HERSAV 0"A"HER0 22506 004753 5 SWCH0: LDA C100 22507 111730 5 STA (1777) I /ATTEMPT TO CHANGE WORD ON PROT PAGE 22510 140040 5 CRA 22511 127730 5 IMA (1777) I /IF SUCCESSFUL, PUT IN MP OFF BIT 22512 011460 5 STA MPROTF /MEM PROT FLAG 22513 140040 5 CRA 22514 011420 5 STA SWCHTM 22515 073731 5 LDX (-SWSTN) 22516 145460 5 SWCH4: LDA SWSTAB+SWSTN XI 22517 100040 5 SZE 22520 004112 5 LDA SIGN /SET BIT IF FLAG IS NONZERO 22521 013420 5 ERA SWCHTM 22522 041677 5 ALR 1 22523 011420 5 STA SWCHTM 22524 024000 5 IRS 0 22525 003516 5 JMP SWCH4 22526 040664 5 ARR SWSTN /PUT BITS BACK IN PLACE 22527 013732 5 ERA (170000) /RESTORE BACKWARD BITS 22530 100020 5 SR1 22531 012751 5 ERA TEN 22532 100010 5 SR2 22533 012117 5 ERA FOUR 22534 100004 5 SR3 22535 012115 5 ERA TWO 22536 100002 5 SR4 22537 012114 5 ERA ONE 22540 027416 5 IMA SWS 22541 013416 5 ERA SWS 22542 101040 5 SNZ 22543 103461 5 JMP SWCH I 22544 011422 5 STA TRBSTF /TELL TRBL RPTS THAT SWS FIRED IT 22545 004422 5 LDA SYNC 22546 117725 5 SUB (TRBF) I 22547 111733 5 STA (TRBOLD) I 22550 103461 5 JMP SWCH I ^L PAGE 202 IMP,3147,IMP 4:35 PM 7/19/1974 LEV [M2I,VDI,I2H,T.O,TSK] 22551 000000 0 HLTWRD: 0 22552 010747 0 STA HLTA 22553 032750 0 STX HLTX 22554 004122 0 LDA MINUS2 22555 015551 0 ADD HLTWRD 22556 010746 0 STA HLTLOC 22557 104746 0 LDA HLTLOC I 22560 010746 0 STA HLTLOC /SAVE LOC OF HLT 22561 103551 0 JMP HLTWRD I LEV H2I /8-WAY BREAKDOWN OF HOST THROUGHPUT 22562 000000 4 HTPMT: 0 /COUNT MESSAGES TO NET 22563 012106 4 ERA MINE 22564 100040 4 SZE /INTER- OR INTRA-NODE? 22565 005734 4 LDA (HTPMTN+0-HTPMTL) 22566 015410 4 ADD NTRT1 22567 001001 4 INH I2H 22570 021652 4 3 JST HTPIRS RET H2I 22571 101000 4 NOP 22572 103562 4 JMP HTPMT I 22573 000000 4 HTPPT: 0 /COUNT PACKETS TO NET 22574 012106 4 ERA MINE 22575 100040 4 SZE /INTER- OR INTRA-NODE? 22576 005734 4 LDA (HTPPTN+0-HTPPTL) 22577 015412 4 ADD NTRT2 22600 001001 4 INH I2H 22601 021652 4 3 JST HTPIRS RET H2I 22602 103573 4 JMP HTPPT I /R1==>FH - DON'T GET LENGTH 22603 172705 4 LDX HIXX I 22604 044111 4 LDA BUFE X 22605 016000 4 SUB 0 22606 140100 4 SSP 0"A"TWOQ 22607 017735 4 SUB (DATA) /GOT PACKET LENGTH, NOT COUNTING LEA( 22610 072703 4 LDX HIP 22611 115736 4 ADD (HTPWTI 0 X) I 22612 100400 4 SPL 22613 004112 4 LDA SIGN /MARK OFLO 22614 111736 4 STA (HTPWTI 0 X) I 22615 103573 4 JMP HTPPT I LEV I2H 22616 000000 3 HTPMF: 0 /COUNT MESSAGES FROM NET 22617 012106 3 ERA MINE 22620 007737 3 ANA (SRCEI) 22621 100040 3 SZE /INTER- OR INTRA-NODE? 22622 005734 3 LDA (HTPMFN+0-HTPMFL) 22623 015411 3 ADD NTRT3 22624 021652 3 JST HTPIRS 22625 101000 3 NOP 22626 103616 3 JMP HTPMF I ^L PAGE 203 IMP,3147,IMP 4:35 PM 7/19/1974 22627 000000 3 HTPPF: 0 /COUNT PACKETS FROM NET 22630 012106 3 ERA MINE 22631 007737 3 ANA (SRCEI) 22632 100040 3 SZE /INTER- OR INTRA-NODE? 22633 005734 3 LDA (HTPPFN+0-HTPPFL) 22634 015413 3 ADD NTRT4 22635 021652 3 JST HTPIRS 22636 103627 3 JMP HTPPF I /R1==>FH 22637 172706 3 LDX IHXX I 22640 044111 3 LDA BUFE X 22641 016000 3 SUB 0 22642 140100 3 SSP 0"A"TWOQ 22643 017735 3 SUB (DATA) /GOT PKT LENGTH 22644 072704 3 LDX IHP 22645 115740 3 ADD (HTPWFI 0 X) I 22646 100400 3 SPL 22647 004112 3 LDA SIGN /MARKING OVERFLOW 22650 111740 3 STA (HTPWFI 0 X) I 22651 103627 3 JMP HTPPF I /HOST THROUGHPUT TABLES AND COUNT ROUTINE 22652 000000 3 HTPIRS: 0 /TBL IN A, HOST NUM IN X 22653 016130 3 SUB PLNH 22654 011670 3 STA HTPIR1 22655 004000 3 LDA 0 22656 016130 3 SUB PLNH 22657 101400 3 SMI /FAKE HOST? 22660 003666 3 JMP HTPIR2 /YES, DO NOT COUNT TRAFFIC TO OR FR-- 22661 105670 3 LDA HTPIR1 I 22662 101400 3 SMI /OVERFLOWED--LEAVE AT 100000 22663 141206 3 AOA /ADD ONE TO COUNTER 22664 111670 3 STA HTPIR1 I 22665 025652 3 IRS HTPIRS /R2==>REAL (NOT FAKE) HOST 22666 000401 3 HTPIR2: ENB I2H 22667 103652 3 JMP HTPIRS I LEV VAR 22670 V HTPIR1: BSS 1 /PNTR INTO HTPTBL ^L PAGE 204 IMP,3147,IMP 4:35 PM 7/19/1974 22671 101000 C LEV CON CONSTANTS 22672 030470 C 22673 052704 C 22674 002000 C 22675 000304 C 22676 030330 C 22677 003656 C 22700 001005 C 22701 040000 C 22702 000017 C 22703 022175 C 22704 021565 C 22705 060663 C 22706 000377 C 22707 000200 C 22710 052645 C 22711 077777 C 22712 030112 C 22713 100003 C 22714 030443 C 22715 030435 C 22716 000302 C 22717 050613 C 22720 050606 C 22721 177774 C 22722 177766 C 22723 122404 C 22724 004000 C 22725 030451 C 22726 000746 C 22727 053233 C 22730 001777 C 22731 177764 C 22732 170000 C 22733 030134 C 22734 177760 C 22735 000011 C 22736 073475 C 22737 000077 C 22740 073501 C 02520 176745 C PAGEND 22,UNCON,-10 ^L PAGE 205 IMP,3147,IMP 4:35 PM 7/19/1974 /DDT CONTROL LANGUAGE INFORMATION / /************CURRENTLY IMPLEMENTED COMMANDS*************** / /SHIFT-CONTROL-P (OR THE BREAK KEY) HAS THE FOLLOWING EFFEC] /1- ANY DDT OUTPUT IS STOPPED /2- THE CURRENTLY OPENED REGISTER IS CLOSED WITH NO NEW CONT /3- DDT FORGETS WHATEVER NUMBER WAS BEING TYPED IN /4- DDT TYPES A CARRAIGE RETURN-LINE FEED /5- DDT IS UN-CROSSPATCHED - THAT IS YOU ARE NOW TYPING / TO THE LOCAL DDT IF YOU WERE CROSSPATCHED BEFORE / / HAS THE FOLLOWING EFFECTS: /1- DDT FORGETS WHATEVER NUMBER WAS BEING TYPED IN /2- DDT TYPES "# " / /. HAS THE VALUE OF THE CURRENT REGISTER'S ADDRESS (14-BIT) / / HAS THE VALUE OF THE LAST THING TYPED BY DDT / /* HAS THE VALUE OF THE CONTENTS OF THE REGISTER ADDRESSED . /HAS BEEN ASSEMBLED AS THE CURRENT SYLLABLE. IT ALWAYS USE: /THE CURRENT SYLLABLE AS A 14 BIT ADDRESS AND CAN BE APPLIE( /ITSELF OR TO ANY SYLLABLE / /T HAS THE VALUE OF THE IMP NUMBER OF THE LAST FOREIGN IMP /TO SEND A TTY MESSAGE TO THIS IMP. USED IN T= OR TC. / /, SEPARATES ARGUMENTS TO MULTIPLE ARGUMENT COMMANDS / /A1/ OPENS REGISTER AT LOCATION A1 (14-BIT ADDRESS) / /A1 OPEN REGISTER AT LOCATION A1 (USED AS /A 9 BIT RELATIVE ADDRESS TO THE PAGE . IS ON. / /A1 CLOSES THE CURRENTLY OPEN REGISTER (IF ANY. /INSERTS A1 AS ITS NEW CONTENTS (IF SUPPLIED) / /A1- CLOSES THE CURRENTLY OPEN REGISTER (AS LINEFEED) AN- /THE PREVIOUS REGISTER /A1 CLOSES THE CURRENTLY OPEN REGISTER (AS LINEF'. /OPENS THE NEXT REGISTER / / AND + BOTH MEAN ADDITION / /- MEANS SUBTRACTION / /D MEANS THE NUMBER FOLLOWING IS DECIMAL / /" MEANS THAT THE TWO CHARACTERS FOLLOWING ARE TO BE TAKEN /AS LITERAL ASCII VALUES AND PACKED INTO A WORD LEFT HALF, ' / ^L PAGE 206 IMP,3147,IMP 4:35 PM 7/19/1974 /= TYPES OUT THE OCTAL VALUE OF THE LAST INPUT /EG: 3=3, 3+6=11, D11=13, "AB=40502, "AB+D10=40514, .=3033 / /> TYPES OUT THE ASCII VALUE OF THE LAST OUTPUT (IE AB / / /A1,A2,A3Z CLEARS ["ZEROES"] CORE BETWEEN LIMITS - A1 IS ] /CONSTANT CORE WILL BE CLEARED TO. A2 AND A3 ARE THE (INCLU: /LOWER AND UPPER LIMITS, REPECTIVELY. / /A1,A2W DUMPS OUT ["WRITES"] CORE BETWEEN LIMITS - A1 AND /ARE THE (INCLUSIVE) LOWER AND UPPER LIMITS, RESPECTIVELY. / /A1,A2,A3S STARTS UP A PROGRAM (I.E. CAUSE A TRANSFER TO : /LOCATION). A3 IS THE (14 BIT) ADDRESS AT WHICH THE PROGRA /IS TO BE STARTED. A2 SPECIFIES THE CONTENTS OF THE A REGIS] /WHEN THE PROGRAM IS STARTED UP. A1 SPECIFIES THE /X REGISTER WHEN THE PROGRAM IS STARTED UP. (STAND-ALONE O, / /A1C CROSSPATCHES DDT TO IMP A1. /MESSAGES ARE THEN TRANSMITTED TO IMP A1 /FOR EVERY CHARACTER THAT IS TYPED IN / /A1,A2H SETS UP THE HEADER FOR MESSAGE /TRANSMISSION - MESSAGES ARE TRANSMITTED BY /TYPING A SEMICOLON, THEN ALL THE CHARACTERS UP TO THE /NEXT SEMICOLON ARE SENT OFF AS A MESSAGE TO /DESTINATION AS DETERMINED BY THIS HEADER. /A1 GIVES LEADER WORD 1 (DESTINATION) /A2 GIVES LEADER WORD 2 (LINK #). / /A1S SENDS AN IMP GOING DOWN MESSAGE TO ALL THE HOSTS /AT THE SITE TO WHICH DDT IS CROSSPATCHED. /A1 IS THE LINK OR SUB-CODE WORD AND MUST BE SUPPLIED / /Q TURNS DDT OUTPUT OFF AND ON - REVERSES THE CURRENT ST,. /IF DDT TYPES NOTHING BACK IT IS OFF ["QUIET"] /OTHERWISE DDT WILL TYPE A CARRIAGE RETURN-LINE FEED / /I PRODUCES AN INTERRUPT PRINT /A DUMP OF SOME INTERESTING INTERRUPT LOCATIONS / /! PRODUCES A QUEUE PRINT /A DUMP OF SOME INTERESTING QUEUE AND TABLE LOCATIONS / /A1,A2,A3,A4[E N] WORD SEARCHES: UNDER A MASK OF A1, DD! /SEARCH FOR -ORDS EQUAL (NOTEQUAL) TO A2 BETWEEN THE /LIMITS A3 TO A4. / ^L PAGE 207 IMP,3147,IMP 4:35 PM 7/19/1974 / /*****************SENSE SWITCH FOUR********************* / / HAVING SENSE SWITCH 4 DOWN INHIBITS ALL OF /DDT'S COMMANDS WHICH COULD DESTROY THE PROGRAM BEING /LSOKED AT. IF YOU ATTEMPT TO CHANGE CORE WITH SS4 DOWN DD /WILL TYPE "# " AT YOU AND COMPLETELY IGNORE THE COMMAND /THE COMMANDS AFFECTED ARE: S, Q, Z,$, AND LINEFEED, UPARHO /CARRIAGE RETURN IF TRYING TO SUPPLY NEW CONTENTS' /*****************NULL ARGUMENT CONVENTIONS***************** / /FOR =,CR,LF,-, AND IF /THE ARGUMENT A1 IS LEFT OUT, THE LAST NUMBER TYPED BY DDT W /BE USED AS THE ARGUMENT. / /FOR E, N, Z AND W, IF EITHER (OR BOTH) OF THE LIMITS ARE LE /DDT WILL USE THE LAST LIMITS SPECIFIED FOR EITHER A Z OR A /OR AN E OR AN N. /IF THE VALUE IS LEFT OUT IN AN E, N OR Z COMMAND, THE LAS! /SPECIFIED IN ANY E, N, OR Z COMMAND WILL BE USED. IF THE M /IS LEFT OUT OF AN E OR N COMMAND IT WILL BE SUPPLIED FROM /THE LAST E OR N DONE, OR -1 IF NO MASK HAS EVER /BEEN SPECIFIED. / /FOR S, ANY ARGUMENTS LEFT OUT WILL BE SUPPLIED FROM THE LAS] /THOSE ARGUMENTS WERE SPECIFIED. / /*********************************************************** ^L PAGE 208 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /DDT - STAND ALONE AND BACKGROUND /THE SAME PROGRAM IS USED FOR STAND ALONE USE /AND AS A BACKGROUND PROGRAM RUNNING WITH THE IMP SYSTEM /THE ONLY DIFFERENCE IS IN THE INPUT AND OUTPUT PORTS /CALLS TO INPUT A CHARACTER AND TO OUTPUT A CHARACTER /ARE MADE INDIRECT THROUGH LDIN AND LDOT RESPECTIVELY /STAND ALONE THESE POINT TO SIMPLE TTY I/O HANDLERS /UNDER IMPSYS THESE POINT TO COMPLEX COROUTINES IN BACKGROUN 23057 033210 7 DDSA: STX DDSAX /SAVE X 23060 005672 7 LDA (DDA3) /ENTRY TO STAND ALONE DDT 23061 011211 7 STA LDIN /SET UP STAND ALONE INPUT 23062 005673 7 LDA (DDA4) 23063 011212 7 STA LDOT /SET UP STAND ALONE OUTPUT 23064 005674 7 LDA (QNUL) 23065 011671 7 STA QPTR /TURN OFF QUIET MODE 23066 011207 7 STA BBNF /SET DEST TO NON-BBN 23067 140040 7 CRA 23070 010476 7 STA OVRDF /TURN OFF SOFTWARE SS4 23071 000013 7 EXA 23072 003123 7 JMP DCLR /GO TO RESTART ENTRY 23073 000000 7 DDA3: 0 /STAND ALONE DDT INPUT 23074 131004 7 TTINAC /GET INPUT CHAR 23075 003074 7 JMP .-1 23076 007675 7 ANA (177) 23077 013676 7 ERA (200) /ALWAYS PUT IN PARITY BIT 23100 103073 7 JMP DDA3 I 23101 000000 7 DDA4: 0 /STAND ALONE DDT OUTPUT 23102 070104 7 TTSNBZ 23103 003122 7 JMP DDA5 /BUSY, SO GET THE INPUT CHAR 23104 030104 7 TTSOM /GO INTO OUTPUT MODE 23105 170004 7 TTOTA /DO OUTPUT 23106 003105 7 JMP .-1 23107 070004 7 TTSRDY 23110 003107 7 JMP .-1 23111 030004 7 TTSIM /GO BACK TO INPUT MODE 23112 103101 7 JMP DDA4 I /START BACKGROUND DDT OUTPUT 23113 005677 7 DOTI: LDA (DOUT) 23114 011212 7 STA LDOT 23115 005700 7 LDA (DIN) 23116 011211 7 STA LDIN 23117 005674 7 LDA (QNUL) 23120 011671 7 STA QPTR 23121 103701 7 JMP (DOTI1) I ^L PAGE 209 IMP,3147,IMP 4:35 PM 7/19/1974 /DDT /NOTE THAT DDT RUNS WITH INTERRUPTS LOCKED - PI OFF /IT ALSO RUNS WITH EXTENDED ADDRESSING ENABLED - EA ON /MAIN LISTEN LOOP 23122 021073 7 DDA5: JST DDA3 LCK ALL DEFPLC [TIPNET-- DCLR] 23123 021213 7 0 DCLR: JST CRLF /RESTART ENTRY 23124 140040 7 0 CRA 23125 011172 7 0 STA PRS 23126 021311 7 0 LF: JST CLS 23127 005702 7 0 LDA (215) /TYPE A CR 23130 121212 7 0 JST LDOT I 23131 021243 7 0 CLSE: JST CSL 23132 140040 7 0 CRA 23133 011172 7 0 STA PRS 23134 011171 7 0 STA PAR1 23135 121211 7 0 LSE: JST LDIN I 23136 006752 7 0 ANA C77 23137 011206 7 0 STA CHARIN 23140 015703 7 0 ADD (DTAB) /DISPATCH TABLE 23141 010000 7 0 STA 0 23142 044000 7 0 LDA 0 X 23143 100400 7 0 SPL 23144 003147 7 0 JMP DDTDIS /SIGN BIT MEANS ALWAYS DO IT 23145 005207 7 0 LDA BBNF /ELSE ONLY IF OVERRIDDEN OR BBN 23146 021153 7 0 JST SS4ON 23147 044000 7 0 DDTDIS: LDA 0 X 23150 010000 7 0 STA 0 23151 005206 7 0 LDA CHARIN 23152 042000 7 0 JMP 0 X ^L PAGE 210 IMP,3147,IMP 4:35 PM 7/19/1974 23153 000000 7 0 SS4ON: 0 23154 101040 7 0 SNZ /A IS 0 IF OK (E.G. BBNF) 23155 103153 7 0 JMP SS4ON I 23156 004476 7 0 LDA OVRDF /ELSE REQUIRE OVERRIDE ON 23157 101040 7 0 SNZ 23160 100002 7 0 SR4 /OR SS4 ON 23161 103153 7 0 JMP SS4ON I /ELSE FALL INTO RUB 23162 005704 7 0 RUB: LDA (243) /TYPE A # 23163 121212 7 0 RUB1: JST LDOT I 23164 021221 7 0 RUB2: JST TAB /AND THREE SPACES 23165 003131 7 0 JMP CLSE LEV VAR 23166 V BSS 1 /PARAMETERS STORAGE BLOCK 23167 V BSS 1 23170 V BSS 1 23171 V PAR1: BSS 1 23172 V PRS: BSS 1 /PARAMETER SUPPLIED - 1=> YES (R TO L 23173 V SYL: BSS 1 /LAST SYLLABLE TYPED IN 23174 000000 V LAST: 0 /LAST WORD TYPED (CURRENT VALUE OF DISPATCH 23441 003412 7 0 JMP DIG2 23442 005715 7 0 BOP: LDA (IHTT) /HOST OUTPUT TIMER 23443 003412 7 0 JMP DIG2 /FOR WBB - HOST INTERFACE DEBUG 23444 105716 7 0 TOP: LDA (WHOTTY) I /TTY OUTPUT SOURCE 23445 003412 7 0 JMP DIG2 /FOR NCC OPS- WHO IS TYPING ON TTY ^L PAGE 215 IMP,3147,IMP 4:35 PM 7/19/1974 23446 021243 7 0 SLH: JST CSL // DISPATCH 23447 021235 7 0 JST GP1 23450 005174 7 0 LDA LAST 23451 021274 7 0 SLH2: JST OPN 23452 003131 7 0 JMP CLSE 23453 021243 7 0 BS: JST CSL /BACKSLASH DISPATCH 23454 021235 7 0 JST GP1 23455 005174 7 0 LDA LAST 23456 011174 7 0 STA LAST 23457 007717 7 0 ANA (1000) /GET PAGE BIT 23460 100040 7 0 SZE /PAGE 0? 23461 005175 7 0 LDA PT /NO, THIS PAGE 23462 013174 7 0 ERA LAST 23463 007720 7 0 ANA (77000) 23464 013174 7 0 ERA LAST 23465 003451 7 0 JMP SLH2 23466 021311 7 0 UA: JST CLS /^ DISPATCH 23467 004121 7 0 LDA MINUS1 23470 003473 7 0 JMP CR1 23471 021311 7 0 CR: JST CLS /CARRIAGE RETURN DISPATCH 23472 004114 7 0 LDA ONE 23473 015175 7 0 CR1: ADD PT 23474 011175 7 0 STA PT 23475 021257 7 0 JST PAC 23476 003131 7 0 JMP CLSE 23477 121211 7 0 ASCIN: JST LDIN I 23500 141240 7 0 ICR 23501 011174 7 0 STA LAST 23502 121211 7 0 JST LDIN I 23503 013174 7 0 ERA LAST 23504 011174 7 0 STA LAST 23505 003412 7 0 JMP DIG2 23506 021243 7 0 S: JST CSL /S DISPATCH ** STAND-ALONE DDT ONLY 23507 021235 7 0 JST GP1 23510 100000 7 0 SKP 23511 011204 7 0 STA SP 23512 004114 7 0 LDA ONE /REAL OVERRIDE, NOT JUST BBNF 23513 021153 7 0 JST SS4ON 23514 005211 7 0 LDA LDIN 23515 013672 7 0 ERA (DDA3) 23516 100040 7 0 SZE /STAND-ALONE DDT? DEFPLC [TIPNET-- NOP HERE IN 'S' CODE] 23517 003162 7 0 JMP RUB /NO, S IS BAD WITH IMPSYS 23520 072122 7 0 LDX MINUS2 /YES, OK. 23521 004117 7 0 LDA FOUR 23522 021227 7 0 JST GP 23523 011205 7 0 STA SX 23524 072121 7 0 LDX MINUS1 23525 004115 7 0 LDA TWO 23526 021227 7 0 JST GP 23527 101000 7 0 NOP 23530 073205 7 0 LDX SX 23531 103204 7 0 JMP SP I ^L PAGE 216 IMP,3147,IMP 4:35 PM 7/19/1974 23532 021153 7 0 Z: JST SS4ON /A NOT ZERO - REAL OVERRIDE 23533 005721 7 0 LDA (JMP Z1) 23534 003545 7 0 JMP SCH1 23535 005201 7 0 Z1: LDA VAL 23536 050000 7 0 STA 0 X 23537 003611 7 0 JMP SCH2 23540 005560 7 0 W: LDA DSKP 23541 003545 7 0 JMP SCH1 /W DISPATCH 23542 005627 7 0 EQ: LDA DSZE 23543 003545 7 0 JMP SCH1 /E DISPATCH 23544 005231 7 0 NEQ: LDA DSNZ /N DISPATCH 23545 011604 7 0 SCH1: STA SXEC /SET UP TEST 23546 072123 7 0 LDX MINUS3 23547 004751 7 0 LDA TEN 23550 021227 7 0 JST GP 23551 011203 7 0 STA SMSK /FIRST PARAM - MASK 23552 072122 7 0 LDX MINUS2 23553 004117 7 0 LDA FOUR 23554 021227 7 0 JST GP 23555 011201 7 0 STA VAL /SECOND PARAM - VALUE 23556 021243 7 0 JST CSL 23557 021235 7 0 JST GP1 23560 100000 7 0 DSKP: SKP 23561 011200 7 0 STA DHI /FOURTH PARAM - HI BOUND 23562 100400 7 0 SPL 23563 003162 7 0 JMP RUB /MUST BE + 23564 072121 7 0 LDX MINUS1 23565 004115 7 0 LDA TWO 23566 021227 7 0 JST GP 23567 011177 7 0 STA DLO /THIRD PARAM - LO BOUND 23570 100400 7 0 SPL 23571 003162 7 0 JMP RUB /MUST BE + 23572 005177 7 0 LDA DLO 23573 017200 7 0 SUB DHI 23574 016114 7 0 SUB ONE 23575 011202 7 0 STA CNT /LEAVE COUNT IN CNT 23576 101400 7 0 SMI 23577 003162 7 0 JMP RUB /INVERTED BLOCK 23600 073177 7 0 LDX DLO 23601 044000 7 0 SCH3: LDA 0 X 23602 013201 7 0 ERA VAL /COMPARE 23603 007203 7 0 ANA SMSK /MASK OFF BITS TO BE IGNORED 23604 7 0 SXEC: BSS 1 /TEST - SET UP BY CALLS 23605 003611 7 0 JMP SCH2 /FAILURE 23606 004000 7 0 LDA 0 23607 021257 7 0 JST PAC 23610 073176 7 0 LDX OPEN 23611 024000 7 0 SCH2: IRS 0 23612 025202 7 0 IRS CNT 23613 003601 7 0 JMP SCH3 23614 003123 7 0 JMP DCLR ^L PAGE 217 IMP,3147,IMP 4:35 PM 7/19/1974 23615 021153 7 0 DOWNM: JST SS4ON /A NOT ZERO 23616 021243 7 0 JST CSL /S DISPATCH 23617 021235 7 0 JST GP1 23620 003162 7 0 JMP RUB /MUST HAVE SS4 ON AND GIVE A PARAM 23621 120672 7 0 JST DODXA I RET BCK 23622 010573 7 STA DOWNMS /SAVE REASON AND TIMES INFO 23623 121722 7 JST (IHDOWN) I /TELL ALL HOSTS IMP GOING DOWN 23624 000013 7 EXA 23625 003123 7 JMP DCLR LCK ALL 23626 004476 7 0 OVRD: LDA OVRDF /O DISPATCH 23627 100040 7 0 DSZE: SZE 23630 003634 7 0 JMP OVRD1 /LEAVING OVERRIDE MODE 23631 005207 7 0 LDA BBNF /FROM BBN 23632 021153 7 0 JST SS4ON 23633 140040 7 0 CRA /THEN YOU CAN ENTER OVERRIDE 23634 013723 7 0 OVRD1: ERA (20) 23635 010476 7 0 STA OVRDF 23636 040677 7 0 ARR 1 23637 013724 7 0 ERA (306) /MAKE AN N OR AN F 23640 121212 7 0 JST LDOT I /TYPE ON OR OFF 23641 003123 7 0 JMP DCLR 23642 021243 7 0 C: JST CSL 23643 021235 7 0 JST GP1 /CROSSPATCH 23644 003162 7 0 JMP RUB 23645 007725 7 0 ANA (0 0 177777"X"HICODE) 23646 013726 7 0 ERA (PRIBIT 0 FORIMP) 23647 111727 7 0 STA (HED0) I /SET "FOR IMP" BIT 23650 003123 7 0 JMP DCLR 23651 021243 7 0 H: JST CSL /SET UP A HEADER 23652 072121 7 0 LDX MINUS1 23653 004115 7 0 LDA TWO 23654 021227 7 0 JST GP 23655 111730 7 0 STA (MHD0) I 23656 021235 7 0 JST GP1 23657 100000 7 0 SKP 23660 111731 7 0 STA (MHD1) I 23661 003123 7 0 JMP DCLR 23662 021153 7 0 QDSP: JST SS4ON 23663 005671 7 0 LDA QPTR /QUIET MODE CONTROL 23664 027212 7 0 IMA LDOT 23665 011671 7 0 STA QPTR 23666 003123 7 0 JMP DCLR 23667 000000 7 0 QNUL: 0 /NULL SUBROUTINE 23670 103667 7 0 JMP .-1 I LEV VAR 23671 V QPTR: BSS 1 ^L PAGE 218 IMP,3147,IMP 4:35 PM 7/19/1974 23672 023073 C LEV CON CONSTANTS 23673 023101 C 23674 023667 C 23675 000177 C 23676 000200 C 23677 024223 C 23700 024112 C 23701 024217 C 23702 000215 C 23703 024532 C 23704 000243 C 23705 000212 C 23706 000240 C 23707 003406 C 23710 000257 C 23711 000130 C 23712 000260 C 23713 000026 C 23714 000060 C 23715 016370 C 23716 025544 C 23717 001000 C 23720 077000 C 23721 003535 C 23722 003623 C 23723 000020 C 23724 000306 C 23725 170377 C 23726 140000 C 23727 025222 C 23730 025223 C 23731 025224 C 02521 176740 C PAGEND 23,UNCON,4 ^L PAGE 219 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 24052 120675 7 DIN4: JST SUCK I 24053 140500 7 SSM 0"A"PRIBIT 24054 011110 7 STA DSRC 24055 007632 7 ANA (FRMIMP 0 SRCEHI) 24056 013633 7 ERA (FRMIMP 0 BBNIMP) 24057 100040 7 SZE /SET FLAG IF MESS FROM BBN IMP TTY 24060 013634 7 ERA (0 0 BBNIMP"X"BBNTIP) 24061 100040 7 SZE /SET FLAG IF MESS FROM BBN TIP TTY 24062 013635 7 ERA (FRMIMP 0 BBNTIP"X"PDP1D) 24063 111636 7 STA (BBNF) I /SET FLAG IF MESS FROM BBN IMP HOST P! 24064 120675 7 JST SUCK I 24065 011111 7 STA DSRC+1 24066 120675 7 DIN1: JST SUCK I 24067 003100 7 JMP DIN2 24070 011107 7 STA DINW 24071 141050 7 CAL 24072 101040 7 SNZ 24073 003076 7 JMP DIN3 /NOTHING AT ALL IN THIS WORD 24074 005107 7 LDA DINW 24075 021136 7 JST DINR 24076 025127 7 DIN3: IRS DEND /HAVE OUTPUT CLOSE OFF THEIR MESSAG- 24077 003052 7 JMP DIN4 /GO BACK FOR NEXT MESSAGE 24100 011107 7 DIN2: STA DINW /FEED DDT A WORD 24101 021136 7 JST DINR 24102 005107 7 LDA DINW 24103 141340 7 ICA 24104 021136 7 JST DINR 24105 003066 7 JMP DIN1 LEV VAR 24106 V DINC: BSS 1 24107 V DINW: BSS 1 DEFPLC [TIPNET-- DSRC] 24110 V DSRC: BSS 2 /DDT DEST/SOURCE ^L PAGE 220 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 24112 000000 7 DIN: 0 /DDT CALLS HERE TO GET A CHARACTER 24113 072114 7 DIN7: LDX ONE 0"A"FHPDDT 24114 001001 7 INH ALL 24115 120672 7 0 JST DODXA I RET BCK 24116 100000 7 SKP 24117 120674 7 DIN8: JST DOZE I 24120 140040 7 CRA 24121 027127 7 IMA DEND /TIME TO END A MESSAGE? 24122 101040 7 SNZ 24123 003130 7 JMP DIN9 /NO 24124 005637 7 LDA (DIN7) /CLOSE A MESSAGE 24125 011223 7 STA DOUT 24126 003155 7 JMP DOT2 24127 7 DEND: BSS 1 24130 027106 7 DIN9: IMA DINC /INPUT CHAR READY? 24131 101040 7 SNZ 24132 003117 7 JMP DIN8 24133 001001 7 INH ALL 24134 000013 7 0 EXA 24135 103112 7 0 JMP DIN I LEV BCK 24136 000000 7 DINR: 0 /ROUTINE CALLS HERE TO FEED A CHAR +O 24137 101400 7 SMI 24140 103136 7 JMP DINR I 24141 140100 7 SSP 24142 141140 7 ICL 24143 100040 7 SZE 24144 003147 7 JMP DINA 24145 005466 7 LDA LRET 24146 011112 7 STA DIN 24147 011106 7 DINA: STA DINC 24150 120676 7 JST WAIT I /LET DDT GRAB THE CHAR 24151 005106 7 LDA DINC 24152 100040 7 SZE 24153 003150 7 JMP .-3 24154 103136 7 JMP DINR I ^L PAGE 221 IMP,3147,IMP 4:35 PM 7/19/1974 24155 005247 7 DOT2: LDA DOTW /START HERE TO CLOSE OFF LAST MESSA'+ 24156 073640 7 DOT5: LDX (100001) 0"A"FHPDDT 24157 120673 7 JST JAM I 24160 004112 7 DOT6: LDA SIGN /START HERE WITH EMPTY WORLD 24161 021236 7 JST DOTR 24162 072114 7 DOT1: LDX ONE 0"A"FHPDDT 24163 005110 7 LDA DSRC /*SEND DEST HOST 24164 120673 7 JST JAM I /(=SOURCE OF LAST MESS RECVD) 24165 005111 7 LDA DSRC+1 /*SEND DEST LINK 24166 120673 7 JST JAM I /(=LINK OF LAST MESS RECVD) 24167 005641 7 LDA (-500.) /NUMBER OF WORDS PER MESSAGE 24170 011253 7 STA DCNT 24171 005250 7 LDA DOTA 24172 007642 7 ANA (177) 24173 000201 7 IAB 24174 041050 7 DOT3: LLL 24. 24175 013643 7 ERA (100200) 24176 021236 7 JST DOTR 24177 140040 7 CRA 24200 026475 7 IMA DDTI /DDT BEING INTERRUPTED? 24201 100040 7 SZE 24202 003212 7 JMP DOT4 /YES, SUPRESS OUTPUT 24203 000201 7 IAB 24204 072114 7 LDX ONE 24205 120673 7 JST JAM I /*SEND TWO CHARS PER WORD 24206 025253 7 IRS DCNT 24207 003214 7 JMP DOT7 24210 004112 7 LDA SIGN 24211 003156 7 JMP DOT5 24212 005644 7 DOT4: LDA (LSE) 24213 011223 7 STA DOUT 24214 004112 7 DOT7: LDA SIGN 24215 021236 7 JST DOTR 24216 003174 7 JMP DOT3 24217 005466 7 DOTI1: LDA LRET 24220 011223 7 STA DOUT 24221 011127 7 STA DEND 24222 003160 7 JMP DOT6 ^L PAGE 222 IMP,3147,IMP 4:35 PM 7/19/1974 DEFPLC [TIPNET-- DOUT] 24223 000000 7 DOUT: 0 /DDT CALLS HERE WITH A CHAR TO TYPE O 24224 011250 7 STA DOTA 24225 007642 7 ANA (177) 24226 013247 7 ERA DOTW 24227 000201 7 IAB 24230 011251 7 STA DOTB 24231 033252 7 STX DOTX 24232 001001 7 INH ALL 24233 120672 7 0 JST DODXA I RET BCK 24234 072114 7 LDX ONE 24235 103236 7 JMP DOTR I 24236 000000 7 DOTR: 0 /ROUTINES CALL HERE TO RETURN TO DD] 24237 011247 7 STA DOTW 24240 005251 7 LDA DOTB 24241 000201 7 IAB 24242 005250 7 LDA DOTA 24243 073252 7 LDX DOTX 24244 001001 7 INH ALL 24245 000013 7 0 EXA 24246 103223 7 0 JMP DOUT I LEV VAR 24247 V DOTW: BSS 1 24250 V DOTA: BSS 1 24251 V DOTB: BSS 1 24252 V DOTX: BSS 1 24253 V DCNT: BSS 1 /NUMBER OF WORDS LEFT IN OUTPUT PACKE 24254 V VLO: BSS 1 24255 V VHI: BSS 1 24256 V VDOT: BSS 1 24257 V VCNT: BSS 1 ^L PAGE 223 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK ALL 24260 121645 7 0 VERIFY: JST (CSL) I 24261 121646 7 0 JST (GP1) I /GET UPPER LIMIT 24262 100000 7 0 SKP 24263 011255 7 0 STA VHI 24264 100400 7 0 SPL 24265 103647 7 0 JMP (RUB) I /MUST BE + 24266 072121 7 0 LDX MINUS1 24267 004115 7 0 LDA TWO 24270 121650 7 0 JST (GP) I /LOWER LIMIT 24271 011254 7 0 STA VLO 24272 100400 7 0 SPL 24273 103647 7 0 JMP (RUB) I /MUST BE + 24274 005254 7 0 LDA VLO 24275 011256 7 0 STA VDOT /TEMP "DOT" 24276 017255 7 0 SUB VHI 24277 016114 7 0 SUB ONE 24300 011257 7 0 STA VCNT /COUNT 24301 101400 7 0 SMI 24302 103647 7 0 JMP (RUB) I /INVERTED BLOCK 24303 015651 7 0 ADD (500.) 24304 100400 7 0 SPL 24305 103647 7 0 JMP (RUB) I /TOO BIG 24306 120672 7 0 JST DODXA I RET BCK 24307 005236 7 LDA DOTR 24310 013652 7 ERA (DOT1) /OUTPUT AT START 24311 100040 7 SZE /OF MESSAGE? 24312 003342 7 JMP VERIF2 /NO 24313 072114 7 VERIF3: LDX ONE 24314 005110 7 LDA DSRC 24315 120673 7 JST JAM I /SEND LEADER 24316 005111 7 LDA DSRC+1 24317 120673 7 JST JAM I 24320 005254 7 LDA VLO /SEND LIMITS 24321 120673 7 JST JAM I 24322 005255 7 LDA VHI 24323 120673 7 JST JAM I 24324 001001 7 VERIF1: INH ALL 24325 000013 7 0 EXA 24326 105256 7 0 LDA VDOT I /SEND EACH WORD 24327 120672 7 0 JST DODXA I RET BCK 24330 120673 7 JST JAM I 24331 025256 7 IRS VDOT 24332 025257 7 IRS VCNT 24333 003324 7 JMP VERIF1 24334 004112 7 LDA SIGN /END MESSAGE 24335 073640 7 LDX (100001) 24336 120673 7 JST JAM I 24337 001001 7 INH ALL 24340 000013 7 0 EXA 24341 103653 7 0 JMP (CLSE) I /BACK TO DDT LISTEN LEV BCK 24342 005654 7 VERIF2: LDA (VERIF3) /FORCE END OF OUTPUT MESSAGE 24343 011223 7 STA DOUT 24344 003155 7 JMP DOT2 ^L PAGE 224 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK ALL 24345 005470 7 0 QP: LDA QPC1 /QUEUE PRINT 24346 011511 7 0 STA QT1 24347 005471 7 0 QPQ1: LDA QPC2 24350 015511 7 0 ADD QT1 24351 011512 7 0 STA QT2 24352 010000 7 0 STA 0 24353 044000 7 0 LDA 0 X 24354 101040 7 0 SNZ 24355 003375 7 0 JMP QPQ3 24356 121463 7 0 JST QPCR I 24357 004000 7 0 LDA 0 24360 121464 7 0 JST QPOP I 24361 121465 7 0 JST QPTB I 24362 005655 7 0 LDA (-10) 24363 011513 7 0 STA QT3 24364 073512 7 0 QPQ2: LDX QT2 24365 044000 7 0 LDA 0 X 24366 101040 7 0 SNZ 24367 003375 7 0 JMP QPQ3 24370 011512 7 0 STA QT2 24371 121464 7 0 JST QPOP I 24372 121465 7 0 JST QPTB I 24373 025513 7 0 IRS QT3 24374 003364 7 0 JMP QPQ2 24375 025511 7 0 QPQ3: IRS QT1 24376 003347 7 0 JMP QPQ1 24377 005510 7 0 LDA QTB3 24400 011511 7 0 STA QT1 ^L PAGE 225 IMP,3147,IMP 4:35 PM 7/19/1974 24401 073511 7 0 QPB1: LDX QT1 24402 045501 7 0 LDA QTB1+QTBL X 24403 011512 7 0 STA QT2 24404 045510 7 0 LDA QTB2+QTBL X 24405 011513 7 0 STA QT3 24406 073513 7 0 QPB2: LDX QT3 24407 044000 7 0 LDA 0 X 24410 101040 7 0 SNZ 24411 003436 7 0 JMP QPB4 24412 011514 7 0 STA QT4 24413 005513 7 0 LDA QT3 24414 010000 7 0 STA 0 24415 101400 7 0 SMI 24416 003426 7 0 JMP QPB3 24417 025513 7 0 IRS QT3 24420 044001 7 0 LDA 1 X 24421 023640 7 0 CAS (100001) 24422 100000 7 0 SKP 24423 003436 7 0 JMP QPB4 24424 017656 7 0 SUB (BUFE 0 I) 24425 011514 7 0 STA QT4 24426 121463 7 0 QPB3: JST QPCR I 24427 005513 7 0 LDA QT3 24430 140100 7 0 SSP 24431 121464 7 0 JST QPOP I 24432 121465 7 0 JST QPTB I 24433 005514 7 0 LDA QT4 24434 121464 7 0 JST QPOP I 24435 121465 7 0 JST QPTB I 24436 025513 7 0 QPB4: IRS QT3 24437 025512 7 0 IRS QT2 24440 003406 7 0 JMP QPB2 24441 025511 7 0 IRS QT1 24442 003401 7 0 JMP QPB1 24443 103466 7 0 JMP QPND I 24444 073657 7 0 IP: LDX (-IPL) /INTERRUPT PRINT 24445 045532 7 0 IP1: LDA IPT+IPL X 24446 033511 7 0 STX QT1 24447 121467 7 0 JST QPAC I /PRINT SOME KEY PARAMETERS 24450 073511 7 0 LDX QT1 24451 024000 7 0 IRS 0 24452 003445 7 0 JMP IP1 24453 073660 7 0 LDX (PFIL+0-TASKIL-1) 24454 044104 7 0 IP2: LDA TASKIL+1 X 24455 033511 7 0 STX QT1 24456 121467 7 0 JST QPAC I /PRINT ALL INTERRUPT ENTRANCES 24457 073511 7 0 LDX QT1 24460 024000 7 0 IRS 0 24461 003454 7 0 JMP IP2 24462 103466 7 0 JMP QPND I ^L PAGE 226 IMP,3147,IMP 4:35 PM 7/19/1974 24463 023213 7 0 QPCR: CRLF /QUEUE PRINT CONSTANTS AND VARIABLE 24464 023330 7 0 QPOP: OPT 24465 023221 7 0 QPTB: TAB LRET: /SAME AS QPND 24466 023123 7 0 QPND: DCLR 24467 023257 7 0 QPAC: PAC 24470 177726 7 0 QPC1: -QUEUEL 24471 000346 7 0 QPC2: QUEUEB+QUEUEL 24472 177770 7 0 QTB1: -PPTL 24473 177770 7 0 -TH 24474 177770 7 0 -TH 24475 177730 7 0 -[CH"T"NACH] 24476 177774 7 0 -CH+0+1 24477 177726 7 0 0 0 -2"T"COUNTL 24500 177720 7 0 -PLTNUM 24501 033335 7 0 QTB2: PPT 24502 013400 7 0 HISP 24503 016217 7 0 IHSP 24504 032144 7 0 I2MB0 24505 100020 7 0 100020 24506 000520 7 0 COUNTA 24507 033355 7 0 PLT QTBL=QTB2-0-QTB1 24510 177771 7 0 QTB3: -QTBL LEV VAR 24511 V QT1: BSS 1 24512 V QT2: BSS 1 24513 V QT3: BSS 1 24514 V QT4: BSS 1 LEV CON 24515 023210 C IPT: DDSAX /INTERRUPT PRINT LOCATIONS 24516 000134 C PRIM 24517 000702 C MP 24520 012674 C OCHN 24521 012623 C I2MSB 24522 000703 C HIP 24523 013137 C HISB 24524 000704 C IHP 24525 016074 C IHSB 24526 020242 C TOK 24527 003501 C FAKENO 24530 004456 C BACKNO 24531 000111 C ADDRET IPL=.-0-IPT ^L PAGE 227 IMP,3147,IMP 4:35 PM 7/19/1974 DDOK=100000 /SIGNBIT ON (DDOK) ==> NON-PRIVELEGED DISPATCH LEV CON 24532 123123 C DTAB: DCLR+0+DDOK /@ 24533 123135 C LSE+0+DDOK /A 24534 023442 C BOP /B 24535 123642 C C+0+DDOK /C 24536 023416 C DECIN /D 24537 023542 C EQ /E 24540 123135 C LSE+0+DDOK /F 24541 123135 C LSE+0+DDOK /G 24542 123651 C H+0+DDOK /H 24543 024444 C IP /I 24544 023126 C LF /J - 12 - LINEFEED 24545 123135 C LSE+0+DDOK /K 24546 123651 C H+0+DDOK /L 24547 023471 C CR /M - 15 - CR 24550 023544 C NEQ /N 24551 123626 C OVRD+0+DDOK /O 24552 123135 C LSE+0+DDOK /P 24553 023662 C QDSP /Q 24554 123135 C LSE+0+DDOK /R 24555 023506 C S /S 24556 123444 C TOP+0+DDOK /T 24557 123135 C LSE+0+DDOK /U 24560 024260 C VERIFY /V 24561 023540 C W /W 24562 123135 C LSE+0+DDOK /X 24563 123135 C LSE+0+DDOK /Y 24564 023532 C Z /Z 24565 123135 C LSE+0+DDOK /[ 24566 023453 C BS / 24567 123135 C LSE+0+DDOK /] 24570 023466 C UA /- 24571 023440 C BARR / ^L PAGE 228 IMP,3147,IMP 4:35 PM 7/19/1974 24572 123425 C PLUS+0+DDOK / 24573 024345 C QP /! 24574 023477 C ASCIN /" 24575 123135 C LSE+0+DDOK /# 24576 023615 C DOWNM /$ 24577 123135 C LSE+0+DDOK /% 24600 123135 C LSE+0+DDOK /& 24601 123135 C LSE+0+DDOK /' 24602 123135 C LSE+0+DDOK /( 24603 123135 C LSE+0+DDOK /) 24604 023435 C STAR /* 24605 123425 C PLUS+0+DDOK /+ 24606 123371 C COM+0+DDOK /, 24607 123427 C MIN+0+DDOK /- 24610 023433 C PTOP /. 24611 023446 C SLH // 24612 123403 C DIG+0+DDOK /0 24613 123403 C DIG+0+DDOK /1 24614 123403 C DIG+0+DDOK /2 24615 123403 C DIG+0+DDOK /3 24616 123403 C DIG+0+DDOK /4 24617 123403 C DIG+0+DDOK /5 24620 123403 C DIG+0+DDOK /6 24621 123403 C DIG+0+DDOK /7 24622 123403 C DIG+0+DDOK /8 24623 123403 C DIG+0+DDOK /9 24624 123135 C LSE+0+DDOK /: 24625 123135 C LSE+0+DDOK /; 24626 123135 C LSE+0+DDOK /< 24627 123421 C EQS+0+DDOK /= 24630 023362 C ASCOUT /> 24631 023162 C RUB /? - 177 - RUBOUT ^L PAGE 229 IMP,3147,IMP 4:35 PM 7/19/1974 24632 040377 C LEV CON CONSTANTS 24633 040050 C 24634 000066 C 24635 040366 C 24636 023207 C 24637 024113 C 24640 100001 C 24641 177014 C 24642 000177 C 24643 100200 C 24644 023135 C 24645 023243 C 24646 023235 C 24647 023162 C 24650 023227 C 24651 000764 C 24652 024162 C 24653 023131 C 24654 024313 C 24655 177770 C 24656 100111 C 24657 177763 C 24660 177754 C 02522 175665 C PAGEND 24,UNCON,4 ^L PAGE 230 IMP,3147,IMP 4:35 PM 7/19/1974 TINT: LEV TTY /TTY INTERRUPT 00063 025111 0 STDIL/ TINT 25111 000000 0 TINT/ INT TTY 25112 011152 0 STA TINA /SAVE A REG 25113 070004 0 TTSRDY 25114 003134 0 JMP TTCMP /NOT REALLY A TTY INTERRUPT 25115 140040 0 CRA 25116 022477 0 CAS TTFG /IS TTFG = -1,0,1? 25117 003147 0 JMP TIN1 /-1 WE JUST TYPED A BACKSLASH 25120 003141 0 JMP TIN2 / 0 NORMAL INTERRUPT 25121 030104 0 TTSOM / 1 WE MUST TYPE A BACKSLASH 25122 005577 0 LDA (334) 25123 170004 0 TTOTA 25124 003147 0 JMP TIN1 25125 004121 0 LDA MINUS1 /SET TTFG TO -1 25126 010477 0 TIN3: STA TTFG 25127 000043 0 TTRT: INK 25130 171020 0 OTK 25131 005152 0 LDA TINA /RESTORE A REG 25132 000401 0 ENB TTY 25133 103111 0 JMP TINT I 25134 101200 0 TTCMP: SPS /MEM PARITY ERROR? 25135 003127 0 JMP TTRT /NO 25136 000021 0 RMP /YES... RESET MP BIT 25137 005111 0 LDA TINT /FOR TRAP INFO RELOAD [MEM PARITY ERROR DETECTED] 25140 120061 0 JST SWDTIL I 25141 005541 0 TIN2: LDA OTGO /CHECK HALF-DUPLEX FLAG 25142 100040 0 SZE /ARE WE IN INPUT MODE? 25143 003147 0 JMP TIN1 /NO, THIS IS AN OUTPUT INTERRUPT 25144 131004 0 TTINAC /YES, GET INPUT CHAR 25145 003144 0 JMP .-1 25146 011153 0 STA TTCR /SAVE IT 25147 030004 0 TIN1: TTSIM 25150 004114 0 LDA ONE /SET TTFG TO 1 25151 003126 0 JMP TIN3 LEV VAR 25152 V TINA: BSS 1 /TTY INT SAVED A REG 25153 V TTCR: BSS 1 /RAW TTY INPUT CHAR /OTGO IS THE STATE OF THE HALF-DUPLEX INTERFACE /0=EXPECTING INPUT, 1=HAVE DONE OUTPUT /TTFG IS THE COMMUNICATION FLAG BETWEEN /THE TTY INTERRUPT HANDLER AND THE BACKGROUND TTY PROCESSING /AT INTERRUPT TIME: /-1= LAST ACTION WAS TO TYPE A BACKSLASH, NOW 1=>TTFG / 0= NORMAL - BACKGROUND IS READY FOR TTY INT, NOW 1=>TTFG / 1= A SECOND TTY INT CAME IN BEFORE BACKGROUND CAUGHT UP / SO TYPE A BACKSLASH, NOW -1=>TTFG /AT BACKGROUND LEVEL: /USE A CPA, IMA TTFG SEQUENCE TO INTERROGATE TTY /0=>TTFG, USE CHAR IF TTFG WAS = 1 PAGE 231 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 25154 140040 7 TTYI: CRA /TELETYPE INPUT STARTS HERE 25155 011541 7 STA OTGO 25156 010701 7 STA HSFG 25157 011542 7 STA HSGO 25160 011220 7 STA TTCH 25161 111600 7 STA (DINC) I 25162 004106 7 LDA MINE 25163 013601 7 ERA (PRIBIT 0 FHLTTY) 25164 111602 7 STA (DSRC) I 25165 013603 7 ERA (0 0 FHLTTY"X"FHLDDT) 25166 011222 7 STA HED0 25167 005604 7 LDA (42) 25170 170020 7 SMK 20 /ENABLE TTY AND MEM.PAR. INTERRUPTS O 25171 003231 7 JMP TTI3 /GO FIRE OFF A DUMMY MSG TO DDT 25172 005225 7 IND1: LDA TTI2 25173 011215 7 STA INDB 25174 000401 7 TTI1: ENB BCK 25175 072113 7 LDX ZERO 0"A"FHPTTY 25176 120674 7 JST DOZE I /WAIT FOR NEXT INPUT CHAR 25177 005541 7 LDA OTGO /OUTPUT ACTIVE? 25200 100040 7 SZE 25201 003174 7 JMP TTI1 /YES 25202 001001 7 INH TTY 25203 026477 7 0 IMA TTFG /TTY HAVE SOMETHING FOR US?? 25204 101400 7 0 SMI /IF TTFG= -1, NO 25205 101040 7 0 SNZ /IF TTFG= 0, NO 25206 003174 7 0 JMP TTI1 /NO 25207 005153 7 0 LDA TTCR /IF TTFG= 1, YES 25210 007605 7 0 ANA (177) /PUT IN PARITY BIT 25211 013606 7 0 ERA (200) 25212 011220 7 0 STA TTCH 25213 000401 7 0 ENB BCK 25214 103215 7 JMP INDB I /GO PROCESS THE CHAR 25215 000000 7 INDB: 0 /COME HERE TO GET NEXT CHAR FROM TT- 25216 011221 7 STA TTIW /SAVE THE INPUT WORD SO FAR 25217 003174 7 JMP TTI1 LEV VAR 25220 V TTCH: BSS 1 /RAW TTY INPUT CHAR+PARITY BIT 25221 V TTIW: BSS 1 25222 V HED0: BSS 1 /CROSSPATCH HEADER 25223 V MHD0: BSS 1 /MESSAGE HEADER 25224 V MHD1: BSS 1 ^L PAGE 232 IMP,3147,IMP 4:35 PM 7/19/1974 MSGT=273 /SEMI NUMB=272 /COLON LEV BCK 25225 025226 7 TTI2: .+1 /PLACE TO START BUILDING NEW MESSAG' 25226 023607 7 CAS (MSGT) /IS IT A MESSAGE INITIATOR? 25227 100000 7 SKP 25230 003256 7 JMP MSG /YES /SEND A SINGLE CHAR MESSAGE 25231 005222 7 TTI3: LDA HED0 /*SEND CROSSPATCH HEADER 25232 120673 7 JST JAM I 25233 140040 7 CRA /*SEND ON LINK ZERO 25234 120673 7 JST JAM I 25235 005220 7 LDA TTCH 25236 013606 7 ERA (200) 25237 100040 7 SZE /IS THE CHAR TO SEND A BREAK? 25240 003244 7 JMP TTI5 /NO 25241 004106 7 LDA MINE /YES, RESET CROSSPATCH HEADER TO DEFA 25242 013610 7 ERA (PRIBIT 0 FHLDDT) 25243 011222 7 STA HED0 /DDT AT SELF - PRIORITY 25244 005220 7 TTI5: LDA TTCH 25245 140500 7 SSM 25246 141340 7 ICA 25247 011221 7 STA TTIW 25250 140040 7 CRA 25251 011542 7 STA HSGO 25252 005221 7 MSG2: LDA TTIW /*SEND 1 CHAR MESSAGE 25253 072112 7 LDX SIGN 0"A"FHPTTY /CLOSE OFF THE MESSAGE 25254 120673 7 JST JAM I 25255 003172 7 JMP IND1 /SEND A SEMICOLON MESSAGE - MULTI-CHARACTER 25256 004701 7 MSG: LDA HSFG /SEND A MESSAGE 25257 011542 7 STA HSGO 25260 005223 7 LDA MHD0 /*SEND MESSAGE HOST 25261 120673 7 JST JAM I 25262 005224 7 LDA MHD1 /*SEND MESSAGE LINK 25263 120673 7 JST JAM I 25264 004112 7 MSG0: LDA SIGN 25265 021334 7 JST MSG1 /GET ONE CHAR 25266 140500 7 SSM /PUT IN PARITY 25267 141340 7 ICA /SAVE 25270 021334 7 JST MSG1 /GET OTHER CHAR 25271 013606 7 ERA (200) /PUT IN PARITY 25272 013221 7 ERA TTIW 25273 120673 7 JST JAM I /*SEND NEXT TWO CHARS 25274 003264 7 JMP MSG0 /GO BACK FOR MORE ^L PAGE 233 IMP,3147,IMP 4:35 PM 7/19/1974 25275 140040 7 MSG3: CRA /BUILD A NUMBER 25276 021334 7 MSG4: JST MSG1 /GET NEXT CHAR 25277 023611 7 CAS (215) /CR? 25300 100000 7 SKP /NO 25301 003310 7 JMP MSG5 /YES, END OF THE NUMBER 25302 001001 7 INH ALL /USING B REG - MUST LOCK INTS 25303 040075 7 0 LRL 3 25304 005221 7 0 LDA TTIW 25305 041075 7 0 LLL 3 25306 000401 7 0 ENB BCK 25307 003276 7 JMP MSG4 25310 070104 7 MSG5: TTSNBZ /ECHO CR WITH A LF 25311 003331 7 JMP MSG6 /FORGET IT 25312 030104 7 TTSOM 25313 005612 7 LDA (212) 25314 170004 7 TTOTA 25315 003314 7 JMP .-1 25316 025541 7 IRS OTGO 25317 120674 7 MSG7: JST DOZE I /WAIT FOR CHAR TO TYPE OUT 25320 140040 7 CRA 25321 026477 7 IMA TTFG 25322 101040 7 SNZ /HAS TTY INTERRUPTED? 25323 003317 7 JMP MSG7 /NOT YET, WAIT 25324 005541 7 LDA OTGO /NOW UNSTEP OUTPUT FLAG 25325 016114 7 SUB ONE 25326 100400 7 SPL 25327 140040 7 CRA 25330 011541 7 STA OTGO 25331 005221 7 MSG6: LDA TTIW /ADD NUMBER TO MESSAGE 25332 120673 7 JST JAM I 25333 003264 7 JMP MSG0 25334 000000 7 MSG1: 0 /SUBR TO GET NEXT CHAR FOR MESSAGE 25335 021215 7 JST INDB /GET THE CHAR 25336 023607 7 CAS (MSGT) /IS IT MESSAGE TERMINATOR? 25337 100000 7 SKP /NO 25340 003252 7 JMP MSG2 /YES, DONE - LEAP INTO INDB CODE 25341 023613 7 CAS (NUMB) /IS IT NUMBER INDICATOR? 25342 103334 7 JMP MSG1 I /NO, RETURN WITH CHAR 25343 003275 7 JMP MSG3 /YES, PUT AN OCTAL NUMBER IN THE ME6S 25344 103334 7 JMP MSG1 I /NO, RETURN WITH CHAR ^L PAGE 234 IMP,3147,IMP 4:35 PM 7/19/1974 25345 072113 7 TTO0: LDX ZERO 0"A"FHPTTY /TELETYPE OUTPUT ROUTINES 25346 033543 7 STX TTNM /CLEAR FLAG 25347 120675 7 JST SUCK I /WAIT FOR SOME OUTPUT TO HAPPEN 25350 011537 7 STA TTOW 25351 120676 7 JST WAIT I 25352 005537 7 LDA TTOW 25353 041475 7 LGL 3 0"A"FOROCT 25354 011540 7 STA OCTL 25355 101400 7 SMI 25356 005542 7 LDA HSGO /MAKE A SKP TO SEE ALL I2H MESSAGES - RFNMS FOR SINGLE CHA-S 25357 101040 7 SNZ 25360 003401 7 JMP TTO2 25361 005611 7 LDA (215) 25362 021505 7 JST SEND 25363 005612 7 LDA (212) 25364 021505 7 JST SEND 25365 005612 7 LDA (212) 25366 021505 7 JST SEND 25367 005537 7 LDA TTOW 25370 021447 7 JST OCTO 25371 120675 7 JST SUCK I 25372 100000 7 SKP 25373 003376 7 JMP TTO7 25374 021447 7 JST OCTO 25375 003404 7 JMP TTO9 25376 025543 7 TTO7: IRS TTNM /SET END FLAG 25377 021447 7 JST OCTO 25400 003425 7 JMP TTO5 25401 120675 7 TTO2: JST SUCK I /FROM DDT: SKIP OVER REST OF LEADER 25402 100000 7 SKP 25403 003474 7 JMP TTO8 /GOT A TYPE 0 MESSAGE 25404 005537 7 TTO9: LDA TTOW 25405 007614 7 ANA (SRCEHI) 25406 022106 7 CAS MINE /NOT IF FROM US 25407 022752 7 CAS C77 0"A"FHLTTY /NOT IF NON-TTY 25410 003413 7 JMP TTO3 25411 101000 7 NOP 25412 011544 7 STA WHOTTY /LAST FOREIGN IMP TTY TO SEND TO TTY 25413 120675 7 TTO3: JST SUCK I 25414 003431 7 JMP TTO4 /MORE MESSAGE 25415 025543 7 IRS TTNM 25416 011537 7 STA TTOW /DONE 25417 141050 7 CAL 25420 101040 7 SNZ 25421 003425 7 JMP TTO5 25422 005537 7 LDA TTOW /GET LAST CHAR 25423 141140 7 ICL 25424 021505 7 JST SEND 25425 140040 7 TTO5: CRA 25426 011541 7 STA OTGO 25427 011540 7 STA OCTL 25430 003345 7 JMP TTO0 ^L PAGE 235 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 25431 011537 7 TTO4: STA TTOW /SEND ANOTHER WORD OF THE MESSAGE 25432 005540 7 LDA OCTL 25433 100400 7 SPL 25434 003444 7 JMP TTO6 25435 005537 7 LDA TTOW 25436 141140 7 ICL 25437 021505 7 JST SEND 25440 005537 7 LDA TTOW 25441 141050 7 CAL 25442 021505 7 JST SEND 25443 003413 7 JMP TTO3 25444 005537 7 TTO6: LDA TTOW 25445 021447 7 JST OCTO 25446 003413 7 JMP TTO3 25447 000000 7 OCTO: 0 /OCTAL OUTPUT 25450 000201 7 IAB 25451 004126 7 LDA MINUS6 25452 011545 7 STA OCO1 25453 005615 7 LDA (130) 25454 041077 7 LLL 1 25455 000201 7 OCO2: IAB 25456 011546 7 STA OCO3 25457 000201 7 IAB 25460 021505 7 JST SEND 25461 005546 7 LDA OCO3 25462 000201 7 IAB 25463 005616 7 LDA (26) 25464 041075 7 LLL 3 25465 025545 7 IRS OCO1 25466 003455 7 JMP OCO2 25467 005611 7 LDA (215) 25470 021505 7 JST SEND 25471 005612 7 LDA (212) 25472 021505 7 JST SEND 25473 103447 7 JMP OCTO I 25474 025543 7 TTO8: IRS TTNM 25475 005537 7 LDA TTOW 25476 007617 7 ANA (IHCODE) 25477 013620 7 ERA (CINCTR) 25500 100040 7 SZE /BLOCKED OR LOST? 25501 003425 7 JMP TTO5 /NO 25502 005577 7 LDA (334) /YES, TYPE A BACKSLASH SINCE OUR ME*S 25503 021505 7 JST SEND 25504 003425 7 JMP TTO5 ^L PAGE 236 IMP,3147,IMP 4:35 PM 7/19/1974 25505 000000 7 SEND: 0 /SUBR TO TYPE OUT A CHAR 25506 023606 7 CAS (200) /'200 BIT SET? 25507 101000 7 NOP 25510 100000 7 SKP 25511 103505 7 JMP SEND I /NO, IGNORE THE CALL 25512 025541 7 IRS OTGO /GRAB TTY 25513 072113 7 LDX ZERO 25514 070104 7 TTSNBZ 25515 003530 7 JMP SND2 /INTERRUPTING OUTPUT! 25516 030104 7 TTSOM 25517 170004 7 TTOTA 25520 003530 7 JMP SND2 25521 120676 7 SND3: JST WAIT I /WAIT FOR CHAR TO GO OUT 25522 140040 7 CRA 25523 026477 7 IMA TTFG 25524 101400 7 SMI 25525 101040 7 SNZ 25526 003521 7 JMP SND3 25527 103505 7 JMP SEND I 25530 005543 7 SND2: LDA TTNM /AT END OF MSG? 25531 100040 7 SZE 25532 003425 7 JMP TTO5 /YES, NO MSG TO SKIP 25533 120675 7 JST SUCK I /SKIP REST OF MESSAGE 25534 003530 7 JMP SND2 25535 010475 7 STA DDTI 25536 003425 7 JMP TTO5 /AND CONTINUE LOOKING FOR A NEW MESSA LEV VAR 25537 V TTOW: BSS 1 25540 V OCTL: BSS 1 25541 V OTGO: BSS 1 25542 V HSGO: BSS 1 25543 V TTNM: BSS 1 /END OF MSG IF NON ZERO 25544 000000 V WHOTTY: 0 /LAST FOREIGN TYPIST ON THIS TTY 25545 V OCO1: BSS 1 25546 V OCO3: BSS 1 ^L PAGE 237 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK LCK M2I /I CAN HEAR BLOCKS 25547 000401 7 0 BLQIHB: ENB BCK 25550 004106 7 LDA MINE /CREATE PLEASE BEGIN TO MYSELF 25551 050016 7 STA BLFNTI X /WITH MYSELF AS BOTH SINK AND FONT 25552 050020 7 STA BLSNKI X 25553 013621 7 ERA (FHLBLK) /NEW DESTINATION 25554 050006 7 STA BLDEST X 25555 040472 7 LGR 6 0"A"DESTI /HOST WORDS 25556 050017 7 STA BLFNTH X /FOR FONT, LINE # = 0 25557 052010 7 ERA BLMODN X /FOR SINK, LINE # = MODEM 25560 050021 7 STA BLSNKH X 25561 005622 7 LDA (-10+BLNORM+BLPLES+BLBEGE) /PLEASE BEGIN T-9 25562 050011 7 STA BLTYPE X 25563 140040 7 CRA 25564 050013 7 STA BLPECE X /PIECE # = 0 25565 050014 7 STA BLMACH X /MAGIC MODEM = 0 25566 005623 7 LDA (CORELO) /USE LOWER CORE BOUND 25567 050015 7 STA BLADDR X /AS SINK START ADDRESS 25570 050022 7 STA BLFNTA X /AND AS FONT START ADDRESS 25571 005624 7 LDA (32000-CORELO) /BUT ONLY UP TO PAGE 32 25572 050023 7 STA BLLENG X /FOR TRANSFER SIZE 25573 004000 7 LDA 0 /BUF PTR 25574 015625 7 ADD (BLLENG+1) /PLEASE BEGIN SIZE + 1 FOR NONEXISTEN 25575 050111 7 STA BUFE X /MARK END OF NEW BLOCK 25576 103626 7 JMP (BLQOUT) I /OUTPUT ^L PAGE 238 IMP,3147,IMP 4:35 PM 7/19/1974 25577 000334 C LEV CON CONSTANTS 25600 024106 C 25601 140000 C 25602 024110 C 25603 000100 C 25604 000042 C 25605 000177 C 25606 000200 C 25607 000273 C 25610 140100 C 25611 000215 C 25612 000212 C 25613 000272 C 25614 000377 C 25615 000130 C 25616 000026 C 25617 007400 C 25620 004400 C 25621 040200 C 25622 177775 C 25623 000060 C 25624 031720 C 25625 000024 C 25626 027563 C 02523 175627 C PAGEND 25,UNCON ^L PAGE 239 IMP,3147,IMP 4:35 PM 7/19/1974 /NEW ROUTING /THESE ROUTINES BUILD TWO MAIN TABLES /RUT - ROUTE USE TABLE, THE BEST LINE DIRECTORY /RST - ROUTE SEND TABLE, THE HOPS/DELAY INFORMATION UPDATE M /THE NEW VALUE OF HOPS AND DELAY ON THE BEST LINES FOR EACH /RSTN - THE RST NEW TABLE / THE IDENTITY OF THE BEST LINE FOR EACH IS KEPT IN /RUTW - THE RUT WORKING TABLE /A NAMING CONVENTION -- TAGS LIKE RST.N AND RST.W ARE INDIME /POINTERS [FOR '.' READ "POINT"], POST-INDEXED BY NEGATIVE I /RST N IS THUS THE RST POINTER TO THE NEW TABLE /BITS IN RUT RUTDED=100000 /THIS IMP IS DOWN,UNREACHABLE OR NO.- RUTGOD=60000 /GOING-DOWN DELAY CNTR - EVERY 4TH >L RUTGD1=20000 /LOW ORDER BIT OF RUTGOD RUTHPC=17400 /LINE # +1 OF SHORTEST HOP PATH RUTCMU=340 /COMING-UP DELAY COUNTER - EVERY 8TH RUTCM1=40 /LOW ORDER BIT OF RUTCMU RUTDLC=37 /LINE # +1 OF BEST DELAY PATH RUTUS=0 /BITS IN RUTW RUTHPH=60000 /HOLD-DOWN TIMER FOR MIN HOP PATH RTHPH1=20000 /LOW ORDER BIT OF RUTHPH RUTDLH=140 /HOLD-DOWN TIMER FOR MIN DELAY PATH RTDLH1=40 /LOW ORDER BIT OF RUTDLH /BITS IN RST, RSTN HOPS=174000 /5 BITS OF HOP COUNT HOPS1=4000 /LOW ORDER BIT OF HOPS DELS=3777 /11 BITS OF DELAY COUNT /BITS IN ROUTING MSG /IN HEAD1 RMSN=177400 /RM SERIAL # RMSN1=400 /LOW-ORDER BIT IF SER # RMCN=3 /RM COMPATIBILITY NUMBER COMPAT=0 /CURRENT COMPATIBILITY 2-BIT NU" ^L PAGE 240 IMP,3147,IMP 4:35 PM 7/19/1974 /RUTINI IS AN INITIALIZATION ROUTINE TO SET UP /THE ROUTING TABLES LEV BCK LCK INI 26053 000000 7 0 RUTINI: 0 26054 005675 7 0 LDA (RST 0 NIMP X) 26055 010666 7 0 STA RST.O 26056 005676 7 0 LDA (RST1 0 NIMP X) 26057 010667 7 0 STA RST.F 26060 005677 7 0 LDA (RST2 0 NIMP X) 26061 010670 7 0 STA RST.N 26062 010671 7 0 STA RST.C 26063 072132 7 0 LDX MINIMP /LOOP OVER ALL IMPS 26064 005544 7 0 RUTINL: LDA CDEAD /(100000) 26065 050265 7 0 STA RUT+NIMP X 0"A"RUTDED 26066 140040 7 0 CRA 26067 051666 7 0 STA RUTW+NIMP X 26070 005546 7 0 LDA CMAXHD /(177777) 26071 110666 7 0 STA RST.O I 26072 110667 7 0 STA RST.F I 26073 110670 7 0 STA RST.N I 26074 024000 7 0 IRS 0 26075 003064 7 0 JMP RUTINL 26076 072106 7 0 LDX MINE 26077 140040 7 0 CRA 0"A"RUTUS 26100 050165 7 0 STA RUT X /CLEAR RUT 26101 015700 7 0 ADD (COMPAT) 0"A"RMCN"A"RMSN 26102 011674 7 0 STA RSTSN 26103 004112 7 0 LDA SIGN 26104 010265 7 0 STA RUTCHK 26105 103053 7 0 JMP RUTINI I ^L PAGE 241 IMP,3147,IMP 4:35 PM 7/19/1974 /RSTINP IS A ROUTINE TO COPY A RECIEVED ROUTING MESSAGE IN'O /RSTN, RSTW AND RUTW TABLES. LEV T.O 26106 000000 5 RSTINP: 0 26107 033553 5 RSTCK1: STX LINEX /SAVE LINE# 26110 011560 5 STA RST.I /SAVE AC FLAG 26111 073517 5 LDX RSTCKX /(RSTCK1-0-RSTCK2-1) 26112 140040 5 CRA /CALCULATE CHECKSUM FOR THIS CODE 26113 055553 5 ADD RSTCK2+1 X 26114 024000 5 IRS 0 26115 003113 5 JMP .-2 26116 100040 5 SZE /DIFFERENT? RELOAD [RSTINP CODE BROKEN] 26117 120061 5 JST SWDTIL I /YES, RELOAD 26120 073553 5 LDX LINEX /RESTORE LINE # IN X 26121 004117 5 LDA FOUR /4=DELAY ON EMPTY LINE 26122 011554 5 STA DELOUR 26123 005526 5 LDA CNACH /(-NACH)=NUMBER OF ACK CHANNELS 26124 011555 5 STA CHANR /TEMP CNTR FOR LOOP 26125 044661 5 LDA CHFREE X /BIT OFF = CHAN IN USE 26126 101100 5 RSTDLP: SLN /CHANNEL BUSY? 26127 025554 5 IRS DELOUR /YES, COUNT ANOTHER 26130 040677 5 ARR 1 26131 025555 5 IRS CHANR 26132 003126 5 JMP RSTDLP /LOOP OVER ALL CHANNELS 26133 004000 5 LDA 0 26134 141206 5 AOA 26135 011555 5 STA CHANR /SAVE CHAN#+1 IN RT HALF 26136 141340 5 ICA 26137 011556 5 STA CHANL /ALSO IN LEFT HALF 26140 013555 5 ERA CHANR 26141 011557 5 STA CHANB /SAVE CHAN#+1 IN BOTH HALVES 26142 005560 5 LDA RST.I /PICK UP FLAG 26143 101040 5 SNZ /WERE WE CALLED BY TASK? 26144 003147 5 JMP RSTI1 /YES, TRUE INPUT 26145 005545 5 LDA DUMYIN /NO, MAKE UP DUMMY INPUT OF ALL 1 S 26146 003167 5 JMP RSTI2 ^L PAGE 242 IMP,3147,IMP 4:35 PM 7/19/1974 26147 044436 5 RSTI1: LDA LINE X 26150 100040 5 SZE /IS LINE DOWN? 26151 103106 5 JMP RSTINP I /YES, IGNORE ROUTING 26152 072515 5 LDX THIS /GET PKT PTR 26153 044006 5 LDA HEAD1 X /TO RM, GET SERIAL, COMPAT #'S 26154 073553 5 LDX LINEX 26155 067666 5 IMA RSTSNI X /SAVE AS LATEST INPUT # 26156 053666 5 ERA RSTSNI X /COMPARE -/ PREV # 26157 101040 5 SNZ /NEW? 26160 103106 5 JMP RSTINP I /NO, WE SAW IT BEFORE 26161 013674 5 ERA RSTSN /COMPARE W/ OUR COMPAT NO. 26162 007550 5 ANA MCOMPT 26163 100040 5 SZE /SAME? 26164 003315 5 JMP RSTI3 /NO, INCOMPATIBLE! 26165 004515 5 LDA THIS /BUILD POST INDEXED PTR TO PKT 26166 015520 5 ADD RSTCP1 /(HEAD2 0 NIMP X) 26167 011560 5 RSTI2: STA RST.I 26170 073535 5 LDX CRSTC /(-NIMP-HEAD2+ACKH) 26171 033673 5 STX RSTC /INIT CKSUM=-# OF WORDS 26172 140040 5 CRA 26173 110670 5 STA RST.N I /INIT ACK HEADER AT ZERO 26174 024000 5 IRS 0 /(DONT HAVE TO ADD INTO CHKSM) 26175 004106 5 LDA MINE /THIS IMP # 26176 141340 5 ICA 26177 141206 5 AOA 0"A"LINETS /PUT IN ROUTING MSG BIT 26200 110670 5 STA RST.N I /INIT HEADER 26201 024000 5 IRS 0 26202 015673 5 ADD RSTC /ADD INTO MSG CKSUM 26203 011673 5 STA RSTC 26204 005674 5 LDA RSTSN 26205 015536 5 ADD CRMSN1 /INCREMENT SER # 26206 011674 5 STA RSTSN 26207 110670 5 STA RST.N I 26210 024000 5 IRS 0 26211 015673 5 ADD RSTC /ADD INTO MSG CKSUM 26212 011673 5 STA RSTC ^L PAGE 243 IMP,3147,IMP 4:35 PM 7/19/1974 26213 105560 5 COPYL: LDA RST.I I /GET ENTRY FROM RECEIVED ROUTING 26214 007521 5 ANA HOPM /(174000) 26215 015525 5 ADD HOPM1 /(4000) ADD IN OUR HOP 26216 101040 5 SNZ /MAX VALUE+ 26217 005521 5 LDA HOPM /YES 26220 011561 5 STA HOPIN /SAVE RECEIVED HOP COUNT 26221 141340 5 ICA 26222 011562 5 STA HOPINS 26223 105560 5 LDA RST.I I /EXTRACT RECEIVED DELAY 26224 007522 5 ANA DELM 26225 015554 5 ADD DELOUR /ADD IN LOCAL DELAY 26226 023522 5 CAS DELM /(3777) 26227 005522 5 LDA DELM /TRUNCATE AT MAX DELAY 26230 101000 5 NOP 26231 011563 5 STA DELIN /SAVE TOTAL DELAY 26232 044265 5 LDA RUT+NIMP X /GET PREVIOUS BEST FOR BOTH 26233 100400 5 SPL 0"A"RUTDED 26234 003434 5 JMP RTDEAD /THIS IMP IS DEAD 26235 101040 5 SNZ 0"A"RUTUS /IS THIS IMP US? 26236 003451 5 JMP RTUS /YES 26237 013557 5 ERA CHANB /COMPARE THIS LINE # 26240 007534 5 ANA CHANM /(17437)EXTRACT LINE FIELDS ONLY 26241 023524 5 CAS BSTDEL /(37)THIS MIN HOP LINE? 26242 003336 5 JMP COPY11 /NO, SEE IF IT HAS GOOD DATA 26243 101000 5 NOP 26244 011564 5 STA CHANS /SAVE /THIS LINE IS PREVIOUS BEST FOR HOPS 26245 104671 5 COPY1: LDA RST.C I 26246 007521 5 ANA HOPM 26247 141340 5 ICA 26250 017562 5 SUB HOPINS /COMPARE 26251 100400 5 SPL /CHANGED? 26252 003322 5 JMP HOLD1 /YES, IF HOPS WORSE DO HOLD-DOWN 26253 100040 5 SZE /WAS THERE A CHANGE IN HOPS? 26254 003365 5 JMP HOLD1B /YES, GOT BETTER ^L PAGE 244 IMP,3147,IMP 4:35 PM 7/19/1974 26255 005564 5 COPY2: LDA CHANS /LOOK AT OUR CHAN 26256 100040 5 SZE /IS IT THE BEST DELAY. 26257 003410 5 JMP COPY21 /NO /THIS LINE PREVIOUS BEST FOR DELAY 26260 104671 5 LDA RST.C I 26261 007522 5 ANA DELM 26262 017563 5 SUB DELIN /COMPARE 26263 015523 5 ADD DELCLP /ALLOW FOR SMALL CHANGE W/O HLDDWN 26264 100400 5 SPL /DELAY GET MUCH WORSE? 26265 003400 5 JMP HOLD2 /Y, DO HOLD-DOWN 26266 005563 5 NWRST1: LDA DELIN /GET DELAY 26267 013561 5 NWRST2: ERA HOPIN /AND HOPS 26270 110670 5 NWRST3: STA RST.N I /PUT INTO RST.N 26271 015673 5 ADD RSTC /ADD INTO MESS CHKSM 26272 011673 5 STA RSTC 26273 024000 5 IRS 0 /LOOP OVER ALL IMPS 26274 003213 5 JMP COPYL 26275 140407 5 TCA /PICK UP FINAL CKSUM ANDCOMPLEMENT 26276 110670 5 STA RST.N I /STORE AS LAST WRD OF MSG 26277 073551 5 LDX NIMPM 26300 044265 5 RTSYN: LDA RUT+NIMP X /GET LOWEST NO ALIVE IMP 26301 100400 5 SPL 26302 003317 5 JMP RTSYNL /NEXT IMP 26303 007537 5 ANA HOPCHM /EXTRACT OUR MIN HOP PATH TO IT 26304 141340 5 ICA 26305 016114 5 SUB ONE 26306 010423 5 STA THD /SAVE IN THD, FOR SYNC ACQUISITION 26307 004670 5 RTSYNI: LDA RST.N /PICK UP PNTR TO AREA COPIED INTO 26310 010671 5 STA RST.C /MAKE THIS THE NEXT COMPARE AREA 26311 025565 5 IRS RSTINC /COUNT ANOTHER INPUT COPY COMPLETE 26312 021466 5 JST RSTSWP /ATTEMPT TO SWAP ROUTING BUFFER ARE.S 26313 073553 5 LDX LINEX /RESTORE X 26314 103106 5 JMP RSTINP I /RETURN TO TASK 26315 121547 5 RSTI3: JST CKILLN I /KILL LINE (INCOMPATIBLE) 26316 103106 5 JMP RSTINP I /AND QUIT 26317 024000 5 RTSYNL: IRS 0 /TRY NEXT IMP 26320 003300 5 JMP RTSYN 26321 003307 5 JMP RTSYNI /NO IMPS--IMPOSSIBLE ^L PAGE 245 IMP,3147,IMP 4:35 PM 7/19/1974 /THIS LINE WAS PREVIOUS BEST FOR HOPS, HOPS CHANGED 26322 045666 5 HOLD1: LDA RUTW+NIMP X /HOPS GOT WORSE 26323 007530 5 ANA HLDH /GET HOLD-DOWN TIMER 26324 100040 5 SZE /ON? 26325 003331 5 JMP HOLD1A /Y, GO ON TO DELAY 26326 005530 5 LDA HLDH /N, TURN IT ON 26327 053666 5 ERA RUTW+NIMP X /...AND SAVE IN RUTW 26330 051666 5 STA RUTW+NIMP X /EITHER WAY USE NEW MOPS 26331 005562 5 HOLD1A: LDA HOPINS /PICK UP NEW WORSE HOPS 26332 023540 5 CAS CMAXH /COMPARE WITH MAX 26333 003453 5 JMP RTDIED /TOO BIG, THIS IMP HAS DIED 26334 003453 5 JMP RTDIED /DITTO 26335 003255 5 JMP COPY2 /THIS LINE WAS NOT PREVIOUS BEST FOR HOPS 26336 007524 5 COPY11: ANA BSTDEL /TURN OFF HOP CHAN BITS 26337 011564 5 STA CHANS /SAVE IN CHANS 26340 045666 5 LDA RUTW+NIMP X 26341 007530 5 ANA HLDH /GET HOLD-DOWN TIMER FOR HOPS 26342 100040 5 SZE 26343 003352 5 JMP COPY12 /NOT 0, GO DO DELAY NEXT /NOT PREVIOUS BEST HOPS, NOT HOLDING 26344 104671 5 LDA RST.C I 26345 007521 5 ANA HOPM 26346 141340 5 ICA 26347 023562 5 CAS HOPINS /COMPARE W/ RCVD HOPS 26350 003356 5 JMP COPY13 /RCVD HOPS BETTER 26351 101000 5 NOP /NO BETTER 26352 104671 5 COPY12: LDA RST.C I /GET OLD HOPS 26353 007521 5 ANA HOPM 26354 011561 5 STA HOPIN /SAVE IN HOPIN 26355 003255 5 JMP COPY2 /GO BACK TO DO DELAY /NOT PREVIOUS BEST HOPS, NOT HOLDING, BETTER THAN PREVIOUS 26356 044265 5 COPY13: LDA RUT+NIMP X 26357 007533 5 ANA CHANML /(160377)EXTRACT CHAN OF MIN DELAY 26360 013556 5 ERA CHANL /UPDATE CHAN OF MIN HOPS 26361 066265 5 IMA RUT+NIMP X /SAVE IN RUT 26362 056265 5 SUB RUT+NIMP X 26363 014265 5 ADD RUTCHK /ADJUST CHECKSUM 26364 010265 5 STA RUTCHK 26365 005562 5 HOLD1B: LDA HOPINS /LOOK AT NEW BETTER HOPS 26366 023540 5 CAS CMAXH /COMPARE WITH MAX 26367 003453 5 JMP RTDIED /TOD BIG, THIS IMP HAS DIED 26370 003453 5 JMP RTDIED /DITTO 26371 044265 5 LDA RUT+NIMP X /NO, IMP IS NO LONGER DEAD 26372 007543 5 ANA NOGODN /TURN OFF GOING DOWN BITS 26373 066265 5 IMA RUT+NIMP X /IF THEY WERE ON 26374 056265 5 SUB RUT+NIMP X 26375 014265 5 ADD RUTCHK /ADJUST CHECKSUM 26376 010265 5 STA RUTCHK 26377 003255 5 JMP COPY2 ^L PAGE 246 IMP,3147,IMP 4:35 PM 7/19/1974 /THIS LINE WAS PREVIOUS BEST FOR DELAY, DELAY GOT WORSE 26400 045666 5 HOLD2: LDA RUTW+NIMP X /DELAY GOT WORSE 26401 007531 5 ANA HLDD /GET DELAY HOLD-DOWN TIMER 26402 100040 5 SZE /IS IT ON? 26403 003266 5 JMP NWRST1 /YES, GO ON TO NEXT IMP 26404 005531 5 LDA HLDD /NO, TURN IT ON 26405 053666 5 ERA RUTW+NIMP X /SAVE IN RUTW 26406 051666 5 STA RUTW+NIMP X 26407 003266 5 JMP NWRST1 /EITHER WAY USE NEW DELAY /THIS LINE WAS NOT PREVIOUS BEST FOR DELAY 26410 045666 5 COPY21: LDA RUTW+NIMP X 26411 007531 5 ANA HLDD /GET DELAY HOLD-DOWN TIMER 26412 100040 5 SZE 26413 003421 5 JMP COPY22 /NOT 0, GO TO NEXT IMP /NOT PREVIOUS BEST DELAY, NOT HOLDING 26414 104671 5 LDA RST.C I 26415 007522 5 ANA DELM /EXTRACT CURRENT DELAY ON BEST 26416 023563 5 CAS DELIN /COMP W/ RCVD DELAY 26417 003424 5 JMP COPY23 /RCVD DELAY BETTER 26420 101000 5 NOP 26421 104671 5 COPY22: LDA RST.C I /GET OLD DELAY 26422 007522 5 ANA DELM 26423 003267 5 JMP NWRST2 /GO TP PUT IN RST.N /NOT PREV BEST DELAY, NOT HOLDING, BETTER THAN PREVIOUS 26424 044265 5 COPY23: LDA RUT+NIMP X 26425 007532 5 ANA CHANMR /(177740)EXTRACT CHAN OF MIN HOP 26426 013555 5 ERA CHANR /UPDATE CHAN OF BEST DELAY 26427 066265 5 IMA RUT+NIMP X /SAVE IN RUT 26430 056265 5 SUB RUT+NIMP X 26431 014265 5 ADD RUTCHK /ADJUST CHECKSUM 26432 010265 5 STA RUTCHK 26433 003266 5 JMP NWRST1 /PUT NEW DELAY IN RST.N ^L PAGE 247 IMP,3147,IMP 4:35 PM 7/19/1974 26434 005562 5 RTDEAD: LDA HOPINS /THIS IMP WAS DEAD, GET HOPS 26435 023540 5 CAS CMAXH /COMPARE WITH MAX 26436 003447 5 JMP RTDOWN /STILL TOO MANY, DEAD 26437 003447 5 JMP RTDOWN /DITTO 26440 005557 5 LDA CHANB 0"A"RUTDED /GET BEST LINE 26441 013541 5 ERA COMUPM /PUT IN INITIAL COME-UP DELAY 26442 066265 5 IMA RUT+NIMP X /TURN OFF RUTDED BIT 26443 056265 5 SUB RUT+NIMP X 26444 014265 5 ADD RUTCHK /ADJUST CHECKSUM 26445 010265 5 STA RUTCHK 26446 003266 5 JMP NWRST1 /SET UP RST 26447 005546 5 RTDOWN: LDA CMAXHD /REPORT AS DOWN TO NEIGHBORS 26450 003270 5 JMP NWRST3 /...BY SETTING RST TO MAX VALUE 26451 140040 5 RTUS: CRA 0"A"HOPS"A"DELS 26452 003270 5 JMP NWRST3 /CLEAR OUT HOP AND DELAY VALUE 26453 044265 5 RTDIED: LDA RUT+NIMP X 26454 007542 5 ANA GODWNM /IMP WAS UP 26455 100040 5 SZE /IS IT MARKED AS GOING DOWN? 26456 003255 5 JMP COPY2 /YES 26457 005542 5 LDA GODWNM /NO, MARK IT NOW 26460 052265 5 ERA RUT+NIMP X 26461 066265 5 IMA RUT+NIMP X 26462 056265 5 SUB RUT+NIMP X 26463 014265 5 ADD RUTCHK /ADJUST CHECKSUM 26464 010265 5 STA RUTCHK 26465 003255 5 JMP COPY2 /SWAP ROUTING BUFFERS, IF ALL REAL LINES IDLE /AND THERE IS FRESH ROUTING TO GO 26466 000000 5 RSTSWP: 0 /HELD AT ZERO 26467 005565 5 LDA RSTINC 26470 101040 5 SNZ /DO WE HAVE FRESH ROUTING? 26471 003512 5 JMP RSTSWX /NO, DONT SWAP 26472 072127 5 LDX MICH 26473 001001 5 INH I2M 26474 105527 5 2 RSTSWL: LDA PRMFLG I /(RMFLG+CH 0 X) 26475 101400 5 2 SMI 0"A"RMINIT /IS THIS A REAL LINE 26476 101100 5 2 SLN 0"A"RM /WHICH HAS A ROUTING OUT IN PROGRES6 26477 100000 5 2 SKP /NO TO EITHER, GO ON 26500 003512 5 2 JMP RSTSWX /YES TO BOTH, CANNOT SWAP 26501 024000 5 2 IRS 0 /DONE? 26502 003474 5 2 JMP RSTSWL /NO, LOOP BACK 26503 004666 5 2 LDA RST.O /OUTPUT => FREE 26504 026667 5 2 IMA RST.F /FREE => NEXT 26505 026670 5 2 IMA RST.N /NEXT => OUTPUT 26506 010666 5 2 STA RST.O 26507 010671 5 2 STA RST.C /OUTPUT => COMPARE 26510 140040 5 2 CRA 26511 011565 5 2 STA RSTINC /CLEAR NEW ROUTING COUNTER 26512 000401 5 2 RSTSWX: ENB T.O 26513 140040 5 CRA 26514 027466 5 IMA RSTSWP 26515 010000 5 STA 0 26516 042000 5 JMP 0 X /RETURN ^L PAGE 248 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 26517 177334 C RSTCKX: RSTCK1-0-RSTCK2-1 26520 040107 C RSTCP1: HEAD2 0 NIMP X 26521 174000 C HOPM: HOPS 26522 003777 C DELM: DELS 26523 000010 C DELCLP: 10 /SMALL CHANGE TO DELAY IS OK 26524 000037 C BSTDEL: RUTDLC 26525 004000 C HOPM1: HOPS1 /4000 26526 177770 C CNACH: -NACH 26527 052645 C PRMFLG: RMFLG+CH 0 X 26530 060000 C HLDH: RUTHPH /60000 26531 000140 C HLDD: RUTDLH /140 26532 177740 C CHANMR: 0 0 177777"X"RUTDLC 26533 160377 C CHANML: 0 0 177777"X"RUTHPC 26534 017437 C CHANM: 0 0 RUTDLC"X"RUTHPC 26535 177675 C CRSTC: -NIMP-HEAD2+ACKH 26536 000400 C CRMSN1: RMSN1 /400 26537 017400 C HOPCHM: RUTHPC /17400 26540 000260 C CMAXH: 0 0 MAXH"T"8. /260 26541 000340 C COMUPM: RUTCMU /340 26542 060000 C GODWNM: RUTGOD /60000 26543 117777 C NOGODN: 0 0 177777"X"RUTGOD /117777 26544 100000 C CDEAD: RUTDED /100000 26545 026546 C DUMYIN: .+1 /PNTR TO DUMMY MAX INPUT 26546 177777 C CMAXHD: 0 0 HOPS"X"DELS /177777 26547 011125 C CKILLN: KILLIN 26550 000003 C MCOMPT: RMCN 26551 177700 C NIMPM: -NIMP 26552 C RSTCK2: BSS 1 LEV VAR 26553 V LINEX: BSS 1 /INPUT LINE# (0 TO CH-1) 26554 V DELOUR: BSS 1 /OUR LOCAL DELAY OUT OF THIS LINE 26555 V CHANR: BSS 1 /THIS LINE # +1, IN RIGHT HALF 26556 V CHANL: BSS 1 / LEFT 26557 V CHANB: BSS 1 / BOTH HALVES 26560 V RST.I: BSS 1 /RST POINTER TO INPUT MESSAGE 26561 V HOPIN: BSS 1 /RCVD HOP COUNT TO THIS IMP 26562 V HOPINS: BSS 1 /HOPIN WITH HALVES SWAPPED 26563 V DELIN: BSS 1 /RCVD DELAY TO THIS IMP PLUS LOCAL -E 26564 V CHANS: BSS 1 /TEMP = XOR(INPUT LINE, RUT ENTRY) 26565 V RSTINC: BSS 1 /COUNTER OF CALLS OF RSTIN FOR ALL LI 26566 V RUTW: BSS NIMP 26666 V RSTSNI: BSS CH /SERIAL # OF LAST RM INPUT 26673 V RSTC: BSS 1 /ROUTING MESSAGE CHECKSUM 26674 V RSTSN: BSS 1 /SERIAL # OF LAST RM COMPUTATION ^L PAGE 249 IMP,3147,IMP 4:35 PM 7/19/1974 26675 073113 C LEV CON CONSTANTS 26676 073223 C 26677 073333 C 26700 000000 C 02524 176705 C PAGEND 26,UNCON,4 ^L PAGE 250 IMP,3147,IMP 4:35 PM 7/19/1974 LEV T.O 27017 000000 5 RUTCLK: 0 27020 073203 5 RTCLK1: LDX RTCLKX 27021 140040 5 CRA 27022 055205 5 ADD RTCLK2+1 X 27023 024000 5 IRS 0 27024 003022 5 JMP .-2 27025 100040 5 SZE RELOAD [RUTCLK CODE BROKEN] 27026 120061 5 JST SWDTIL I 27027 073154 5 LDX NIMPMI /LOOP OVER ALL IMPS FOR HOLD-DOWN 27030 105164 5 HLDC1: LDA RUT.W I 27031 007165 5 ANA HOLDH 27032 101040 5 SNZ /ARE WE HOLDING DOWN MIN HOP PATH? 27033 003037 5 JMP HLDC2 /NO 27034 105164 5 LDA RUT.W I 27035 017173 5 SUB HOLDH1 /DECREMENT TIMER 27036 111164 5 STA RUT.W I 27037 105164 5 HLDC2: LDA RUT.W I /NO 27040 007166 5 ANA HOLDD 27041 101040 5 SNZ /HOLDING DOWN MIN DELAY PATH? 27042 003046 5 JMP HLDC3 /NO 27043 105164 5 LDA RUT.W I 27044 017174 5 SUB HOLDD1 /DECREMENT TIMER 27045 111164 5 STA RUT.W I 27046 024000 5 HLDC3: IRS 0 27047 003030 5 JMP HLDC1 /NEXT 27050 025205 5 IRS GODWNC /IS IT TIME TO DO GOING DOWN DELAYS; 27051 003101 5 JMP CMUC0 /NO 27052 005162 5 LDA GODWNK /YES, EVERY 4TH TICK 27053 011205 5 STA GODWNC 27054 073154 5 LDX NIMPMI /LOOP OVER ALL IMPS FOR GOING DOWNS 27055 044265 5 GODC1: LDA RUT+NIMP X 27056 007167 5 ANA MGODWN 27057 101040 5 SNZ /THIS IMP GOING DOWN? 27060 003077 5 JMP GODC4 /NO 27061 044265 5 LDA RUT+NIMP X /YES 27062 017170 5 SUB MGODW1 /DECREMENT TIMER 27063 050265 5 STA RUT+NIMP X 27064 007167 5 ANA MGODWN 27065 100040 5 SZE /IS IT COMPLETELY DOWN? 27066 003074 5 JMP GODC2 /NO 27067 005161 5 LDA MAXRUT /YES, HE IS REALLY DEAD 27070 066265 5 IMA RUT+NIMP X /SET RUT 27071 015170 5 ADD MGODW1 /(FOR CKSUM) 27072 056265 5 SUB RUT+NIMP X 27073 003075 5 JMP GODC3 27074 005170 5 GODC2: LDA MGODW1 27075 014265 5 GODC3: ADD RUTCHK /ADJUST CKSUM 27076 010265 5 STA RUTCHK 27077 024000 5 GODC4: IRS 0 27100 003055 5 JMP GODC1 ^L PAGE 251 IMP,3147,IMP 4:35 PM 7/19/1974 27101 025206 5 CMUC0: IRS COMUPC /IS IT TIME TO DO COMING-UP DELAYS 27102 003122 5 JMP RMVFRQ /NO, DO VBL FRQ CMPTNS 27103 005163 5 LDA COMUPK /YES, EVERY TENTH TICK 27104 011206 5 STA COMUPC 27105 073154 5 LDX NIMPMI /LOOP OVER ALL IMPS FOR COMING UP 27106 044265 5 CMUC1: LDA RUT+NIMP X 27107 007171 5 ANA MCOMUP 27110 101040 5 SNZ /IS THIS IMP COMING UP? 27111 003120 5 JMP CMUC2 /NO 27112 044265 5 LDA RUT+NIMP X /YES 27113 017172 5 SUB MCOMU1 /DECREMENT TIMER 27114 066265 5 IMA RUT+NIMP X /SAVE IN RUT(IF HE CAME UP, HE IS UP) 27115 056265 5 SUB RUT+NIMP X 27116 014265 5 ADD RUTCHK /ADJUST CHECKSUM 27117 010265 5 STA RUTCHK 27120 024000 5 CMUC2: IRS 0 27121 003106 5 JMP CMUC1 27122 073155 5 RMVFRQ: LDX RMMICH /-CH 27123 140040 5 RMVFRC: CRA 27124 011207 5 STA RMVT 27125 127156 5 IMA CTIMK I /CLEAR CUMTIM AND COMPUTE EXTRAS 27126 017160 5 RMVFRA: SUB MS132K 27127 100400 5 SPL 27130 003133 5 JMP RMVFRB 27131 025207 5 IRS RMVT 27132 003126 5 JMP RMVFRA 27133 005157 5 RMVFRB: LDA RMFOUR 27134 017207 5 SUB RMVT 27135 100400 5 SPL 27136 140040 5 CRA 27137 015202 5 ADD CRMVTB 27140 051215 5 STA RUTFRQ+CH X 27141 024000 5 IRS 0 27142 003123 5 JMP RMVFRC /LOOP OVER ALL LINES 27143 073154 5 LDX NIMPMI /VERIFY CHECKSUM FOR RUT 27144 140040 5 CRA 27145 054265 5 ADD RUT+NIMP X 27146 024000 5 IRS 0 27147 003145 5 JMP .-2 27150 014265 5 ADD RUTCHK 27151 100040 5 SZE RELOAD [RUT CHECKSUM ERROR] 27152 120061 5 JST SWDTIL I 27153 103017 5 JMP RUTCLK I ^L PAGE 252 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 27154 177700 C NIMPMI: -NIMP 27155 177773 C RMMICH: -CH 27156 052652 C CTIMK: CUMTIM CH X 27157 000004 C RMFOUR: 4 27160 002450 C MS132K: 2450 27161 100000 C MAXRUT: RUTDED 27162 177772 C GODWNK: -6 27163 177767 C COMUPK: -9. 27164 066666 C RUT.W: RUTW+NIMP X 27165 060000 C HOLDH: RUTHPH 27166 000140 C HOLDD: RUTDLH 27167 060000 C MGODWN: RUTGOD 27170 020000 C MGODW1: RUTGD1 27171 000340 C MCOMUP: RUTCMU 27172 000040 C MCOMU1: RUTCM1 27173 020000 C HOLDH1: RTHPH1 27174 000040 C HOLDD1: RTDLH1 /RMVTAB USED BY RSTOUT 27175 000001 C RMVTAB: 1 /1BIT IN 5 (# OF EXTRA +1 RM S TO S0 => MODEM#, =0 => TO FH BLFIMP=400 /FOR/FROM IMP BIT BLHOST=377 /HOST /TIMEOUT VALUES -' BLSKTO=-94. /SINK TIMEOUT (94 SLOW TICKS = 60 S BLFNTO=-94. /FONT TIMEOUT /VARIABLES (EXCEPT FOR ONES USED BY STAND-ALONE CODE) LEV VAR 27215 V BLSAVX: BSS 1 /SAVED X OVER WAIT 27216 V BLBUFP: BSS 1 /BUFFER FILL POINTER 27217 V BLBUFC: BSS 1 /BUFFER FILL COUNT 27220 V BLBUFF: BSS 1 /BUFFER IN USE FLAG (AND POINTS TO ST 27221 V BLBUFR: BSS 1 /BUFFER POINTER BLCHKS=BUFE-2-BLADDR /MAX CHUNK SIZE FOR CORE XFRS 27222 V BLQBUF: BSS 1 /JAM QUEUE BUFFER POINTER 27223 V BLQPTR: BSS 1 /JAM QUEUE OUTPUT POINTER 27224 V BLQCNT: BSS 1 /JAM QUEUE OUTPUT COUNTER ^L PAGE 254 IMP,3147,IMP 4:35 PM 7/19/1974 /IMP-TO-HOST CODE LEV BCK DEFHLT [SUCK RCVD BLOCK] /***REMOVE WHEN 27225 121640 7 BLRCHK: JST (BTR0) I /***OPERATIONAL 27226 050011 7 STA BLTYPE X /SAVE BLOCK DISPATCH 27227 015641 7 ADD (BLRANG) /RANGE CHECK 27230 100400 7 SPL /WITHIN RANGE? DEFHLT [INVALID BLOCK TYPE] 27231 121640 7 JST (BTR0) I /NO, IGNORE REST OF MESSAGE 27232 011215 7 STA BLSAVX /SAVE DISPATCH INDEX 27233 121642 7 JST (SUCKX) I /GET PASSWORD 27234 100000 7 SKP DEFHLT [PREMATURE EOM FOR BLOCK] 27235 021470 7 JST BLERRX /EOM, GO BACK FOR NEW MESSG 27236 050012 7 STA BLPASW X /SAVE PASSWORD 27237 113643 7 ERA (BLSAPP) I /VALID PASSWORD? 27240 100040 7 SZE DEFHLT [BAD BLOCK PASSWORD] 27241 121640 7 JST (BTR0) I /NO, IGNORE REST OF MESSAGE 27242 005644 7 LDA (BLPECE) /SET UP BLOCK FILL PTR 27243 014000 7 ADD 0 27244 011216 7 STA BLBUFP 27245 005645 7 LDA (-BUFE+2+BLPECE) /SET UP BLOCK FILL COUNT 27246 011217 7 STA BLBUFC 27247 121642 7 BLBFLP: JST (SUCKX) I /GET NEXT WORD 27250 100000 7 SKP /EOM? 27251 003257 7 JMP BLBEOM /YES 27252 111216 7 STA BLBUFP I /NO, SAVE IN BUF 27253 025216 7 IRS BLBUFP /BUMP PTR 27254 025217 7 IRS BLBUFC /AND COUNT, BUF FULL? 27255 003247 7 JMP BLBFLP /NO, LOOP DEFHLT [BLOCK TOO BIG FOR BUFFER, IGNORED] 27256 121640 7 JST (BTR0) I /YES,IGNORE REST OF MESSG 27257 111216 7 BLBEOM: STA BLBUFP I /SAVE LAST WORD 27260 005646 7 LDA (BLOCKF 0 LINETS) /SET BLOCK INDICATOR 27261 050005 7 STA BLBLOK X 27262 005217 7 LDA BLBUFC /COMPUTE # OF WORDS IN BUF - 2 27263 015646 7 ADD (BUFE-2-BLSCNT-2) 27264 050004 7 STA BLSCNT X /SAVE IN FIRST WORD OF BUFFER 27265 005215 7 LDA BLSAVX /GET DISPATCH INDEX 27266 015647 7 ADD (JMP BLDISP I) /COMPUTE DISPATCH INSTRUCTION 27267 011270 7 STA .+1 27270 7 BSS 1 /GO TO APPROPRIATE CODE FOR BLOCK 27271 027372 7 BLDISP: BLSIHB /I CAN HEAR BLOCKS - SPECIAL 27272 027361 7 BLSGDN /GO DOWN - SPECIAL 27273 027357 7 BLPREG /PLEASE #N 27274 027277 7 BLPBGE /PLEASE BEGIN/END 27275 027373 7 BLHREG /HERE IS #N 27276 027373 7 BLHBGE /HERE IS BEGIN/END ^L PAGE 255 IMP,3147,IMP 4:35 PM 7/19/1974 /PLEASE BEGIN/END 27277 044013 7 BLPBGE: LDA BLPECE X /GET PIECE # 27300 100040 7 SZE /#0? 27301 003354 7 JMP BLPEND /NO, END MESSAGE 27302 044020 7 LDA BLSNKI X /YES, BEGIN, GET SINK IMP 27303 012106 7 ERA MINE /ME? 27304 100040 7 SZE 27305 003342 7 JMP BLPFNT /NO, CHECK FOR FONT 27306 105635 7 LDA BLSNKP I /YES, OPEN AS SINK? 27307 101400 7 SMI DEFHLT [PLEASE BEGIN TO OPEN SINK] 27310 021470 7 JST BLERRX /YES, ERROR 27311 050020 7 STA BLSNKI X /NO, SET SINK IMP FIELD TO -1 27312 044021 7 LDA BLSNKH X /GET SINK LINE # 27313 007650 7 ANA (BLLINO) 27314 111635 7 STA BLSNKP I /SET SINK FLAG TO OPEN (LINE #) 27315 005651 7 LDA (BLSKTO) /INITIALIZE TIMEOUT 27316 111652 7 STA (BLSTMO) I 27317 004115 7 LDA TWO /SET SINK JAM FLAG TO DO NOTHING 27320 111653 7 STA (BLSNKJ) I 27321 044017 7 LDA BLFNTH X /COMPOSE SOURCE WORD 27322 007654 7 ANA (BLFIMP 0 BLHOST) 27323 041572 7 ALS 6 0"A"DESTI 27324 052016 7 ERA BLFNTI X 27325 050006 7 STA BLDEST X /FOR PLEASE BEGIN TO FONT 27326 005655 7 LDA (BLLENG+1) /SIMULATE MODEM ENTRANCE 27327 014000 7 ADD 0 27330 050111 7 STA BUFE X 27331 001001 7 INH M2I 27332 024574 7 0 IRS NBA /INCREMENT BLOCK COUNT FOR BLOCK QUEU 27333 132417 7 0 STX EBQ I /AND ADD TO QUEUE 27334 032417 7 0 STX EBQ 27335 000401 7 0 ENB BCK 27336 044014 7 LDA BLMACH X /CHECK MAGIC MODEM FLAG 27337 100400 7 SPL 0"A"BLMAGM 27340 125635 7 IRS BLSNKP I /MM, SET LOW BIT IN SINK OPEN FLAG 27341 103656 7 JMP (BEST0) I /NO MM, FINISHED 27342 105634 7 BLPFNT: LDA BLFNTP I /OPEN AS FONT? 27343 101400 7 SMI DEFHLT [PLEASE BEGIN TO OPEN FONT] 27344 021470 7 JST BLERRX /YES, IGNORE MESSG 27345 111657 7 STA (BLFNTJ) I /SET FONT JAM FLAG TO DO NOTHING 27346 005651 7 LDA (BLFNTO) /INITIALIZE TIMEOUT 27347 111660 7 STA (BLFTMO) I 27350 044017 7 LDA BLFNTH X /GET FONT LINE # 27351 007650 7 ANA (BLLINO) 27352 111634 7 STA BLFNTP I /OPEN AS FONT (SET FLAG TO LINE #) 27353 003400 7 JMP BLFINI /GO TO OUTPUT EXIT ^L PAGE 256 IMP,3147,IMP 4:35 PM 7/19/1974 /PLEASE END 27354 004121 7 BLPEND: LDA MINUS1 /PREPARE TO CLOSE FONT 27355 127634 7 IMA BLFNTP I /CLOSE, AND GET PREVIOUS STATE 27356 003400 7 JMP BLFINI /OUTPUT /PLEASE #N 27357 105634 7 BLPREG: LDA BLFNTP I /GET FONT OPEN FLAG 27360 003400 7 JMP BLFINI /OUTPUT /SPECIAL- GO DOWN 27361 044014 7 BLSGDN: LDA BLMACH X /GET LINE # 27362 100040 7 SZE /LINE #0? 27363 003406 7 JMP BLI2MO /NO, GOES TO MODEM 27364 044013 7 LDA BLPECE X /YES, FOR US, GET NICE-STOP/PANIC FLA( 27365 101400 7 SMI /NICE-STOP? 27366 103661 7 JMP (1004) I /NO, PANIC RELOAD, A=MODEM # 27367 140407 7 TCA /YES, USE -FLAG AS MODEM # 27370 010137 7 STA SW3FG /AND NICE-STOP RELOAD 27371 103662 7 JMP (BEST) I /EXIT /SPECIAL- I CAN HEAR BLOCKS DEFHLT [SUCK SIDE GOT I CAN HEAR BLOCKS] 27372 021470 7 BLSIHB: JST BLERRX /ILLEGAL /HERE IS BLHBGE: 27373 005651 7 BLHREG: LDA (BLSKTO) /RESET SINK TIMEOUT 27374 111652 7 STA (BLSTMO) I 27375 105635 7 LDA BLSNKP I /CHECK MAGIC MODEM OUTPUT 27376 100100 7 SLZ /MM? 27377 003402 7 JMP BLFINM /YES, ALWAYS GO BLOCK TO CORE /FALL THROUGH TO NORMAL OUTPUT ^L PAGE 257 IMP,3147,IMP 4:35 PM 7/19/1974 /COMMON EXIT FOR OUTPUT TO CORE OR MODEM 27400 100040 7 BLFINI: SZE /LINE #0? 27401 003406 7 JMP BLI2MO /NO, GOES TO MODEM 27402 121663 7 BLFINM: JST (BL2COR) I /CALL BLDCK TO CORE ROUTINE 27403 003451 7 JMP BLMBL0 /NO SKIP= MAGIC MODEM EXIT 27404 073221 7 BLEXIT: LDX BLBUFR /SKIP= NORMAL EXIT, GET BUF PTR 27405 103662 7 JMP (BEST) I /GO GET NEW MESSAGE 27406 041671 7 BLI2MO: ALR 7 0"A"BLLINO /GET ACTUAL CHANNEL NUMBER 27407 014121 7 ADD MINUS1 27410 010000 7 STA 0 27411 044160 7 LDA NEIGHB X /SET UP SIMP DEST TO BE NEIGHBOR 27412 141240 7 ICR 0"A"BLSATI 27413 033215 7 STX BLSAVX /SAVE CHAN # 27414 073221 7 LDX BLBUFR /GET BUF PTR 27415 050006 7 STA BLDEST X 27416 004106 7 LDA MINE /SET UP SIMP SOURCE TO BE US 27417 141240 7 ICR 0"A"BLSATI 27420 052007 7 ERA BLSORC X 27421 050007 7 STA BLSORC X 27422 005664 7 LDA (BLOKAD) /SET UP ADDER 27423 010111 7 STA ADDRET /RETURN ADDRESS 27424 044004 7 LDA BLSCNT X /GET BLOCK SIZE - 2 27425 025216 7 IRS BLBUFP /PREPARE CHECKSUM WORD POINTER 27426 101100 7 SLN /ODD SIZE? 27427 025216 7 IRS BLBUFP /NO, MUST BE EVEN INCLUDING CHECKSUM 27430 101100 7 SLN 27431 141206 7 AOA 27432 141206 7 AOA /THIS ONE FOR CHECKSUM 27433 050004 7 STA BLSCNT X /SAVE SIZE -2 27434 140407 7 TCA /GET -(SIZE-2) 27435 015665 7 ADD (ADDBOT) /PTR INTO ADD CHAIN AFTER CHECKSUM -O 27436 011441 7 STA BLOKAJ 27437 017666 7 SUB (ADDBOT-1) /GET -(SIZE-1) 27440 103441 7 JMP BLOKAJ I /GO DO CHECKSUM 27441 7 BLOKAJ: BSS 1 27442 140407 7 BLOKAD: TCA /-CHECKSUM 27443 111216 7 STA BLBUFP I /SAVE IN LAST DATA WORD 27444 140040 7 CRA /CLEAR ADDER RETURN ADDRESS 27445 010111 7 STA ADDRET 27446 073215 7 LDX BLSAVX /RESTORE CHAN # 27447 005221 7 LDA BLBUFR /SET PTR TO STAPT OF DATA IN BUF BUSY 27450 015667 7 ADD (BLSCNT) 27451 011220 7 BLMBL0: STA BLBUFF /PTR DISPLACED FOR MAGIC MODEM 27452 001001 7 BLMBL1: INH [I2M,T.O] 27453 044266 7 2 LDA SLT X /IS SLT BUSY? 27454 100040 7 2 SZE 27455 003462 7 2 JMP BLMBWT /YES, WAIT 27456 005670 7 2 LDA (BLSLTF) /NO, SET OUTPUT BLOCK FLAG 27457 050266 7 2 STA SLT X 27460 000401 7 2 ENB BCK 27461 003404 7 JMP BLEXIT /EXIT LCK [I2M,T.O] 27462 000401 7 2 BLMBWT: ENB BCK 27463 033215 7 STX BLSAVX /SAVE CHAN # 27464 004115 7 LDA TWO 0"A"FHPBLK /RESTORE FH INDEX 27465 120676 7 JST WAIT I /WAIT 27466 073215 7 LDX BLSAVX /RESTORE CHAN # 27467 003452 7 JMP BLMBL1 /TRY SLT AGAIN ^L PAGE 258 IMP,3147,IMP 4:35 PM 7/19/1974 /ERROR EXIT 27470 000000 7 BLERRX: 0 /DEFHLT PC 27471 021473 7 JST BLHLTN /REPORT TO NCC 27472 003404 7 JMP BLEXIT /EXIT 27473 000000 7 BLHLTN: 0 27474 001001 7 INH ALL /LOCK OUT INTS 27475 027473 7 0 IMA BLHLTN /SAVE A, GET PTR TO PC VALUE 27476 014122 7 0 ADD MINUS2 27477 011505 7 0 STA BLHLT1 27500 105505 7 0 LDA BLHLT1 I /GET PC VALUE 27501 027505 7 0 IMA BLHLT1 /SAVE VALUE, RESTORE RETURN ADDR 27502 014115 7 0 ADD TWO 27503 027473 7 0 IMA BLHLTN /AND RESTORE A 27504 100000 7 0 SKP 27505 000000 7 0 BLHLT1: 0 27506 120745 7 0 JST HLTNCC I /REPORT TO NCC 27507 000401 7 0 ENB BCK /UNLOCK INTS 27510 103473 7 JMP BLHLTN I /RETURN ^L PAGE 259 IMP,3147,IMP 4:35 PM 7/19/1974 /HOST-TO-IMP CODE 27511 103671 7 BLPOLL: JMP (BTRLOP) I /***REMOVE WHEN OPERATIONAL 27512 001001 7 INH M2I 27513 004574 7 0 LDA NBA /ANYTHING ON BLOCK QUEUE? 27514 101040 7 0 SNZ 27515 003611 7 0 JMP BLJFLG /NO, CHECK JAM FLAGS 27516 014121 7 0 ADD MINUS1 /DECREMENT BLOCK COUNT 27517 010574 7 0 STA NBA 27520 072345 7 0 LDX SBQ /GET NEXT BLOCK ON QUEUE 27521 140040 7 0 CRA /AND CLEAR CHAIN POINTER 27522 066000 7 0 IMA 0 X 27523 010345 7 0 STA SBQ /UPDATE START OF QUEUE 27524 100040 7 0 SZE /CHECK IF QUEUE EMPTY 27525 003530 7 0 JMP BLQTYP /NO 27526 005672 7 0 LDA (SBQ) /YES, UPDATE END OF QUEUE 27527 010404 7 0 STA ETQ 27530 044011 7 0 BLQTYP: LDA BLTYPE X /GET DISPATCH 27531 101400 7 0 SMI /NEGATIVE? DEFHLT [BLOCK ON JAM QUEUE WITH POSITIVE DISPATCH] 27532 021560 7 0 JST BLQERR /NO 27533 015641 7 0 ADD (BLRANG) /IN RANGE? DEFHLT [BLOCK ON JAM QUEUE WITH OUT-OF-RANGE DISPATCH] 27534 021560 7 0 JST BLQERR /NO 27535 015673 7 0 ADD (JMP BLQDIS I) /FORM DISPATCH INSTRUCTION 27536 011537 7 0 STA .+1 27537 7 0 BSS 1 /EXECUTE IT 27540 025547 7 0 BLQDIS: BLQIHB /I CAN HEAR BLOCKS 27541 027546 7 0 BLQGDN /GO DOWN 27542 027552 7 0 BLQPLN /PLEASE #N 27543 027552 7 0 BLQPLS /PLEASE BEGIN/END 27544 027547 7 0 BLQHSN /HERE IS #N 27545 027547 7 0 BLQHSS /HERE IS BEGIN/END /GO DOWN DEFHLT [IMPOSSIBLE GO DOWN BLOCK IN JAM QUEUE] 27546 021560 7 0 BLQGDN: JST BLQERR /FLUSH /HERE IS BLQHSN: 27547 005651 7 0 BLQHSS: LDA (BLFNTO) /RESET TIMEOUT 27550 111660 7 0 STA (BLFTMO) I 27551 003563 7 0 JMP BLQOUT /OUTPUT ^L PAGE 260 IMP,3147,IMP 4:35 PM 7/19/1974 /PLEASE BLQPLN: 27552 044013 7 0 BLQPLS: LDA BLPECE X /BEGIN, #N, OR END? 27553 101040 7 0 SNZ 27554 003563 7 0 JMP BLQOUT /BEGIN OR #N, OUTPUT 27555 004121 7 0 LDA MINUS1 /END 27556 111674 7 0 STA (BLSNKF) I /CLOSE SINK 27557 003563 7 0 JMP BLQOUT /REPORT ERROR 27560 000000 7 0 BLQERR: 0 27561 120745 7 0 JST HLTNCC I /CALL NCC REPORT ROUTINE 27562 003610 7 0 JMP BLQFLS /FLUSH BUFFER /COMMON EXIT FOR QUEUE BLOCK OUTPUT 27563 000401 7 0 BLQOUT: ENB BCK 27564 033222 7 STX BLQBUF /SAVE BUFFER POINTER 27565 044006 7 LDA BLDEST X /MOVE FIRST WORD OF LEADER DOWN 27566 050007 7 STA BLSORC X 27567 004000 7 LDA 0 /POINT TO FIRST WORD OF LEADER 27570 015675 7 ADD (BLSORC) 27571 011223 7 STA BLQPTR /INITIAL VALUE FOR OUTPUT PTR 27572 056111 7 SUB BUFE X /-(SIZE-1) OF BLOCK , IGNORE CHKSUM 27573 141206 7 AOA /-(SIZE-2), TO GIVE ONE WORD WARNING 27574 011224 7 STA BLQCNT /SAVE AS OUTPUT COUNT 27575 072115 7 LDX TWO 0"A"FHPBLK /RESTORE FH INDEX 27576 105223 7 BLQOUL: LDA BLQPTR I /GET WORD FROM BUF 27577 120673 7 JST JAM I /SEND THROUGH H-I INTERFACE 27600 025223 7 IRS BLQPTR /BUMP PTR 27601 025224 7 IRS BLQCNT /AND COUNT, ALMOST DONE? 27602 003576 7 JMP BLQOUL /NO. LOOP 27603 073676 7 LDX (100000 0 FHPBLK) /YES, SET LAST BIT INDICA;O 27604 105223 7 LDA BLQPTR I /GET LAST WORD 27605 120673 7 JST JAM I /OUTPUT 27606 073222 7 LDX BLQBUF /RESTORE BUF PTR /FLUSH BUFFER 27607 001001 7 INH ALL 27610 120700 7 0 BLQFLS: JST FLUSHI I /RETURN BUFFER TO FREE LIST ^L PAGE 261 IMP,3147,IMP 4:35 PM 7/19/1974 /CHECK FONT AND SINK JAM FLAGS 27611 000401 7 0 BLJFLG: ENB BCK 27612 072122 7 LDX MINUS2 /START WITH SINK INDEX 27613 145636 7 BLJFL0: LDA BLJFT1+2 XI /FONT/SINK OPEN? 27614 101400 7 SMI 27615 161640 7 JST BLJFT2+2 XI /YES, CALL JAM COROUTINE 27616 003630 7 JMP BLJFL2 /NOT OPEN OR NOTHING TO DO 27617 033224 7 STX BLQCNT /OUTPUT FIRST WORD RETURN, SAVE FONT/. 27620 072115 7 BLJFL1: LDX TWO 0"A"FHPBLK /GET FH INDEX 27621 120673 7 JST JAM I /OUTPUT NEXT WORD 27622 073224 7 LDX BLQCNT /RESTORE FONT/SINK INDEX 27623 161640 7 JST BLJFT2+2 XI /CALL JAM COROUTINE 27624 003620 7 JMP BLJFL1 /OUTPUT NEXT WORD RETURN 27625 073676 7 LDX (100000 0 FHPBLK) /OUTPUT LAST WORD RETURN 27626 120673 7 JST JAM I /OUTPUT WITH LAST BIT SET 27627 073224 7 LDX BLQCNT /RESTORE FONT/SINK INDEX 27630 024000 7 BLJFL2: IRS 0 /CHANGE FROM SINK TO FONT OR FINISH 27631 003613 7 JMP BLJFL0 /LOOP FOR FONT 27632 072115 7 LDX TWO 0"A"FHPBLK /RESTORE FH INDEX 27633 103671 7 JMP (BTRLOP) I /LOOP BACK TO START OF FAKE HOST BLJFT1: 27634 034264 7 BLFNTP: BLFNTF /FONT FLAG POINTER 27635 034276 7 BLSNKP: BLSNKF /SINK FLAG POINTER 27636 034344 7 BLJFT2: BLFJAM /FONT JAM COROUTINE POINTER 27637 034305 7 BLSJAM /SINK JAM COROUTINE POINTER ^L PAGE 262 IMP,3147,IMP 4:35 PM 7/19/1974 -L PAGE 263 IMP,3147,IMP 4:35 PM 7/19/1974 27640 030337 C LEV CON CONSTANTS 27641 000006 C 27642 030411 C 27643 034263 C 27644 000013 C 27645 177704 C 27646 000101 C 27647 103271 C 27650 177000 C 27651 177642 C 27652 034302 C 27653 034277 C 27654 000777 C 27655 000024 C 27656 030346 C 27657 034265 C 27660 034270 C 27661 001004 C 27662 030343 C 27663 034450 C 27664 027442 C 27665 011604 C 27666 011603 C 27667 000004 C 27670 000011 C 27671 030472 C 27672 000345 C 27673 103540 C 27674 034276 C 27675 000007 C 27676 100006 C 02525 176667 C PAGEND 27,UNCON,-20 ^L PAGE 264 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /STATISTICS PROGRAMS /ALL CALLS TO DEFSTAT MUST PRECEDE THIS PAGE 30001 004114 7 STTI: LDA ONE 30002 011136 7 STA SOFO /BEGIN BY SAVING COPY OF SON 30003 005423 7 BKST: LDA SON /PICK UP 10-SEC STAT ON-OFF FLAG 30004 027136 7 IMA SOFO /KEEP A COPY 30005 023423 7 CAS SON /ANY CHANGE IN STATUS? 30006 100000 7 SKP /YES, MUST CHANGE STATISTICS LOCATI-N 30007 003027 7 JMP SP2 /NO 30010 101040 7 SNZ /WAS 10-SEC STAT JUST TURNED ON? 30011 003020 7 JMP SP1 /YES 30012 073614 7 LDX (-NSTATS) /NO, JUST TURNED OFF 30013 105615 7 LDA (SC1+NSTATS 0 X) I /PICK UP STANDARD CONSTANTS 30014 111616 7 STA (SB1+NSTATS 0 XI) I /AND PLANT IN DESIGNATED O 30015 024000 7 IRS 0 /THIS RESTORES PROGRAM TD ITS DEFAULT 30016 003013 7 JMP .-3 30017 003027 7 JMP SP2 30020 021201 7 SP1: JST CLST /CLEAR OUT 10-SEC STAT TABLES 30021 073614 7 LDX (-NSTATS) 30022 005617 7 LDA (JST SW1 I) /PLANT JST'S TO STATISTICS ROU 30023 111616 7 STA (SB1+NSTATS 0 XI) I 30024 141206 7 AOA /THIS PUTS BREAKPOINT-LIKE CODE 30025 024000 7 IRS 0 /IN KEY PLACES THROUGHOUT THE PROGRAM 30026 003023 7 JMP .-3 30027 005620 7 SP2: LDA (PDP1D) 30030 011442 7 STA DIAGD 30031 004344 7 LDA DIAGQ /TURN ON DIAG ACCORDING TO WHETHER 30032 011425 7 STA DIAGON / THERE IS ANYTHING TO GO 30033 072125 7 LDX MINUS5 /SO THAT NCC TRBL REPTS ALWAYS GO: 30034 033426 7 STX TPON /TURN ON NCC TRBL REPTS 30035 033135 7 SP3: STX SP8 /LOOP HERE FOR EACH STAT PROGRAM 30036 045427 7 LDA SNON+5 X 30037 101040 7 SNZ /IS THIS STAT PROGRAM TURNED ON? 30040 003115 7 JMP SP91 /NO 30041 004422 7 LDA SYNC /PICK UP CURRENT TIME 30042 057135 7 SUB OLDS+5 X /COMPARE WITH THE LAST TIME THIS PROG 30043 100400 7 SPL /CORRECT FOR TIMER OVERFLOW 30044 140407 7 TCA /EVERY 30 MINUTES 30045 057452 7 SUB STATF+5 X /LOOK AT INTERVAL BETWEEN PROGRAM RUN 30046 100400 7 SPL /IS IT TIME TO ACTIVATE THIS PROG? 30047 003115 7 JMP SP91 /NO 30050 140040 7 CRA /YES 30051 011137 7 STA SKEWT /INIT A TIME-SKEWING TEMP 30052 004000 7 LDA 0 30053 014114 7 ADD ONE 30054 101040 7 SNZ /TRB RPTS? 30055 003061 7 JMP STAT3 /YES - SKEW 30056 014116 7 ADD THREE 30057 100040 7 SZE /ARE WE DOING 10-SEC STAT? 30060 003100 7 JMP STAT6 /NO ^L PAGE 265 IMP,3147,IMP 4:35 PM 7/19/1974 30061 045452 7 STAT3: LDA STATF+5 X /YES, SKEW REPORTS BY IMP NUMBER 30062 040572 7 ARS 6 0"A"NIMP /DIV BY 100 = IMPNO 30063 101040 7 SNZ 30064 003100 7 JMP STAT6 /TOO SMALL AN INTERVAL TO SKEW 30065 011140 7 STA COUNT1 /BUILD MULTIPLY LOOP 30066 004106 7 LDA MINE 30067 101040 7 SNZ 30070 003100 7 JMP STAT6 /TOO SMALL AN IMP NO TO SKEW 30071 140407 7 TCA 30072 011141 7 STA COUNT2 30073 005137 7 LDA SKEWT 30074 015140 7 STAT5: ADD COUNT1 /COUNT1 TIMES COUNT2 30075 025141 7 IRS COUNT2 30076 003074 7 JMP STAT5 30077 011137 7 STA SKEWT /IS SKEWT = (MINE/100)*STATF 30100 045452 7 STAT6: LDA STATF+5 X 30101 140407 7 TCA 30102 006422 7 ANA SYNC 30103 015137 7 ADD SKEWT 30104 051135 7 STA OLDS+5 X 30105 045444 7 LDA STATD+5 X /*SEND STAT DEST 30106 021330 7 JST GIVE 30107 045436 7 LDA STATL+5 X /*SEND STAT LINK 30110 021330 7 JST GIVE 30111 143130 7 JMP CAWL+5 XI /CALL STAT PROGRAM 30112 073621 7 GIVLST: LDX (100003) /TERMINATE STAT MESSAGE 30113 004112 7 LDA SIGN /*SEND PADDING 30114 120673 7 JST JAM I 30115 073135 7 SP91: LDX SP8 /LOOP BACK OVER EACH STAT PROG 30116 024000 7 IRS 0 30117 003035 7 JMP SP3 30120 072116 7 LDX THREE 30121 120674 7 JST DOZE I 30122 003003 7 JMP BKST LEV CON 30123 030142 C CAWL: SNAP /SNAPSHOT STATISTICS PROGRAM 30124 030166 C SEST /CUMULATIVE STATISTICS PROGRAM 30125 030212 C GENM /MESSAGE GENERATOR 30126 030272 C DIAG /DIAGNOSTIC SENDER 30127 022200 C TRBL /NCC TROUBLE REPORT PROGRAM LEV VAR 30130 000000 V OLDS: 0 30131 000000 V 0 30132 000000 V 0 30133 000000 V 0 30134 000000 V TRBOLD: 0 30135 V SP8: BSS 1 /COUNTER FOR WHICH STAT PROG TO RUN 30136 V SOFO: BSS 1 /SAVED COPY OF SON 30137 V SKEWT: BSS 1 /AMOUNT OF TIME TO SKEW STAT REPTS 30140 V COUNT1: BSS 1 30141 V COUNT2: BSS 1 ^L PAGE 266 IMP,3147,IMP 4:35 PM 7/19/1974 /SEND SNAPSHOT STATISTICS LEV BCK 30142 005622 7 SNAP: LDA (5) /*SEND SNAPSHOT CODE 30143 021330 7 JST GIVE 30144 004422 7 LDA SYNC /*SEND GLOBAL TIME 30145 021330 7 JST GIVE 30146 073623 7 LDX (-COUNTL) 30147 001001 7 SNP2: INH ALL 30150 044545 7 0 LDA COUNTA+COUNTL X /*SEND QUEUE LENGTHS 30151 056572 7 0 SUB COUNTS+COUNTL X 30152 000401 7 0 ENB BCK 30153 021330 7 JST GIVE 30154 024000 7 IRS 0 30155 003147 7 JMP SNP2 30156 072132 7 LDX MINIMP 30157 044265 7 SNP3: LDA RUT+NIMP X /*SEND ROUTE USE TABLE 30160 021330 7 JST GIVE 30161 105624 7 LDA (RST+NIMP 0 X) I /*SEND ROUTE SEND TABLE 30162 021330 7 JST GIVE 30163 024000 7 IRS 0 30164 003157 7 JMP SNP3 30165 003112 7 JMP GIVLST /*SEND PADDING AND END MESSAGE /SEND 10 SECOND (CUMULATIVE) STATISTICS 30166 004115 7 SEST: LDA TWO /*SEND 10-SEC STAT CODE 30167 021330 7 JST GIVE 30170 004422 7 LDA SYNC /*SEND NETWORK-WIDE TIME 30171 021330 7 JST GIVE 30172 073625 7 LDX (-NST) 30173 105626 7 LDA (STTB+NST X) I /*SEND 10-SEC STAT TABLES 30174 021330 7 JST GIVE 30175 024000 7 IRS 0 30176 003173 7 JMP .-3 30177 021201 7 JST CLST /CLEAR THE 10-SEC STAT TABLES 30200 003112 7 JMP GIVLST /*SEND PADDING AND END MESSAGE LEV BCK /CLEAR ALL ENTRIES IN 10-SEC STAT TABLES 30201 000000 7 CLST: 0 30202 073625 7 LDX (-NST) 30203 140040 7 CRA 30204 001001 7 INH ALL 30205 111626 7 0 STA (STTB+NST X) I 30206 024000 7 0 IRS 0 30207 003205 7 0 JMP .-2 30210 000401 7 0 ENB BCK 30211 103201 7 JMP CLST I ^L PAGE 267 IMP,3147,IMP 4:35 PM 7/19/1974 /MESSAGE GENERATOR 30212 072116 7 GENM: LDX THREE /FAKE HOST 3 - STATISTICS 30213 005452 7 LDA MGNL /PICK UP LENGTH OF MESSAGE 30214 007627 7 ANA (777) 30215 101040 7 SNZ 30216 003224 7 JMP GENM1 30217 140407 7 TCA /GIVES RIGHT NUMBER, EXCLUDING PADD'N( 30220 011271 7 STA MGCNT 30221 120673 7 JST JAM I /*SEND MGNL WORDS 30222 025271 7 IRS MGCNT 30223 003221 7 JMP .-2 30224 131040 7 GENM1: RDCLOK 30225 003224 7 JMP .-1 /CRA FOR ALL REG, LDA ONE FOR ALL PRI, ANA ONE FOR RANDOM MI 30226 140040 7 CRA 30227 100040 7 SZE 30230 004112 7 LDA SIGN 30231 013441 7 ERA MGD 30232 011441 7 STA MGD 30233 005433 7 LDA MGLK 30234 101000 7 NOP /"SKP" TO RUN LINK CYCLER 30235 003112 7 JMP GIVLST /*SEND PADDING AND END MESSAGE 30236 101040 7 SNZ 30237 003256 7 JMP LC1 30240 015630 7 LC3: ADD (400) 30241 011433 7 STA MGLK 30242 100040 7 SZE 30243 003112 7 JMP GIVLST /*SEND PADDING AND END MESSAGE 30244 004273 7 LDA TIME 30245 017270 7 SUB OTIM 30246 111266 7 STA PLAC I 30247 025266 7 IRS PLAC 30250 005452 7 LDA MGNL 30251 015265 7 ADD IGTH 30252 011452 7 STA MGNL 30253 017267 7 SUB LIMT 30254 101400 7 SMI 30255 003262 7 JMP LC44 30256 004273 7 LC1: LDA TIME 30257 011270 7 STA OTIM 30260 005433 7 LDA MGLK 30261 003240 7 JMP LC3 30262 140040 7 LC44: CRA /WHEN DONE, SHUT MGEN OFF 30263 011424 7 STA MGON 30264 003112 7 JMP GIVLST /*SEND PADDING AND END MESSAGE LEV VAR 30265 000010 V IGTH: 10 /LENGTH INCREMENT 30266 030000 V PLAC: 30000 /CORE POINTER FOR TABLE BUILDING 30267 000760 V LIMT: 760 /LONGEST MESSAGE TO SEND 30270 V OTIM: BSS 1 /TEMP TO SAVE STARTING TIME OF BLOCK 30271 V MGCNT: BSS 1 /TEMP COUNTER FOR MESS LENGTH ^L PAGE 268 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK 30272 001001 7 DIAG: INH ALL /SEND BROKEN PACKETS TO NCC FOR DIAGN( 30273 104344 7 0 LDA DIAGQ I 30274 026344 7 0 IMA DIAGQ /GET PKT OFF DIAG QUEUE 30275 000401 7 0 ENB BCK 30276 011326 7 STA DIAGP /SAVE PNTR 30277 004116 7 LDA THREE /*SEND DIAG CODE 30300 021330 7 JST GIVE 30301 004746 7 LDA HLTLOC /*SEND HLT PC 30302 021330 7 JST GIVE 30303 004747 7 LDA HLTA /*SEND HLT A REG 30304 021330 7 JST GIVE 30305 004750 7 LDA HLTX /*SEND HLT X REG 30306 021330 7 JST GIVE 30307 005326 7 LDA DIAGP /*SEND PKT PNTR 30310 010000 7 STA 0 30311 021330 7 JST GIVE 30312 005631 7 LDA (-BUFL) 30313 011327 7 STA DIAGC /SET UP SEND COUNTER 30314 044000 7 DIAG1: LDA 0 X /*SEND CONTENTS OF BAD PACKET 30315 021330 7 JST GIVE 30316 024000 7 IRS 0 30317 025327 7 IRS DIAGC 30320 003314 7 JMP DIAG1 30321 001001 7 INH ALL 30322 073326 7 0 LDX DIAGP 30323 120700 7 0 JST FLUSHI I 30324 000401 7 0 ENB BCK 30325 003112 7 JMP GIVLST LEV VAR 30326 V DIAGP: BSS 1 /PKT PNTR 30327 V DIAGC: BSS 1 /LOOP COUNTER LEV BCK 30330 000000 7 GIVE: 0 /STAT CALLS TO JAM 30331 033336 7 STX STT8 /SAVE X-REG 30332 072116 7 LDX THREE 0"A"FHPSTS 30333 120673 7 JST JAM I 30334 073336 7 LDX STT8 30335 103330 7 JMP GIVE I LEV VAR 30336 V STT8: BSS 1 ^L PAGE 269 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /FAKE IMP-TO-HOST 2 - PARAMETER CHANGE + BLOCKS 30337 000000 7 BTR0: 0 30340 121632 7 JST (BLHLTN) I /REPORT MESSG SKIPPED 30341 021411 7 BTR1: JST SUCKX /SKIP OVER REST OF MESSAGE 30342 003341 7 JMP BTR1 30343 001001 7 BEST: INH FRE /FLUSH BUFFER 30344 120700 7 0 JST FLUSHI I 30345 000401 7 0 ENB BCK 30346 072115 7 BEST0: LDX TWO 0"A"FHPBLK 30347 120675 7 JST SUCK I /BEGIN TO ACCEPT MESSAGE HERE 30350 011420 7 STA BTR2 /SAVE FIRST WORD OF MESSAGE 30351 105633 7 BEST1: LDA (BLBUFF) I /IS BUFFER SLOT FREE? 30352 101040 7 SNZ 30353 003360 7 JMP BEST3 /YES 30354 000401 7 BEST2: ENB BCK /NO, BUSY 30355 072115 7 LDX TWO 0"A"FHPBLK 30356 120676 7 JST WAIT I /WAIT 30357 003351 7 JMP BEST1 /AND LOOP 30360 121634 7 BEST3: JST (GETFRE) I LCK FRE /GET NEW BUFFER 30361 003354 7 0 JMP BEST2 /NONE AVAILABLE, LOOP 30362 000401 7 0 ENB BCK 30363 133635 7 STX (BLBUFR) I /SAVE BUFFER POINTER 30364 005420 7 LDA BTR2 /RESTORE FIRST WORD OF MESSAGE 30365 050007 7 STA BLSORC X /SAVE LEADER 30366 021411 7 JST SUCKX 30367 021411 7 BTR4: JST SUCKX /GET SUBHOST DISPATCH 30370 100000 7 SKP /END OF MESSAGE? 30371 003404 7 JMP BTR3 /YES, GO BACK 30372 100400 7 SPL /NO, IS IT PARAMETER CHANGE? 30373 103636 7 JMP (BLRCHK) I /NO, BLOCKS 30374 007637 7 ANA (37) /YES, MASK DOWN TO 5 BITS 30375 015640 7 ADD (PARAMT) /BUILD PNTR TO PARAM TABLE 30376 011420 7 STA BTR2 30377 021411 7 JST SUCKX /GET NEW VALUE FOR PARAMETER 30400 100000 7 SKP /END OF MESSAGE? 30401 003404 7 JMP BTR3 /YES, NO CHANGE TO THIS PARAM 30402 111420 7 STA BTR2 I /NO, PUT NEW VALUE IN PARAM 30403 003367 7 JMP BTR4 /AND GO BACK FOR MORE 30404 005454 7 BTR3: LDA RTTUNT /GET ROUND TRIP TIME UNITS 30405 140407 7 TCA 30406 015641 7 ADD (LGR 0 30407 111642 7 STA (HSTSHF) I /SET UP SHIFT INSTRUCTIONS 30410 003343 7 JMP BEST /GO BACK 30411 000000 7 SUCKX: 0 30412 072115 7 LDX TWO 0"A"FHPPRM /RESTORE FH INDEX 30413 120675 7 JST SUCK I 30414 100000 7 SKP 30415 025411 7 IRS SUCKX /EOM RETURN 30416 173635 7 LDX (BLBUFR) I /RESTORE BUF PTR 30417 103411 7 JMP SUCKX I LEV VAR 30420 000000 V BTR2: 0 ^L PAGE 270 IMP,3147,IMP 4:35 PM 7/19/1974 DEFPLC [PARAMETERS TABLE] PARAMT: PARAML=32. 30421 V TRON: BSS 1 /0-TRACE ON 30422 V SNON: BSS 1 /1-SNAP ON 30423 V SON: BSS 1 /2-10-SEC STAT ON 30424 V MGON: BSS 1 /3-MESS GEN ON 30425 V DIAGON: BSS 1 /4-DIAG ON 30426 V TPON: BSS 1 /5-TRBL REPT ON 30427 V PTON: BSS 1 /6-PKT TRACE ON 30430 V TLNK: BSS 1 /7-TRACE LINK 30431 V STATL: BSS 1 /10-SNAP LINK 30432 V BSS 1 /11-10-SEC LINK 30433 V MGLK: BSS 1 /12-MESS GEN LINK 30434 V BSS 1 /13-DIAG LINK 30435 V BSS 1 /14-TRBL REPT LINK 30436 V TDST: BSS 1 /15-TRACE DEST 30437 V STATD: BSS 1 /16-SNAP DEST 30440 V BSS 1 /17-10-SEC DEST 30441 V MGD: BSS 1 /20-MESS GEN DEST 30442 V DIAGD: BSS 1 /21-DIAG DEST 30443 V TRBD: BSS 1 /22-TRBL REPT DEST 30444 V TF: BSS 1 /23-AUTO TRACE FREQ 30445 V STATF: BSS 1 /24-SNAP FREQ 30446 V BSS 1 /25-10-SEC FREQ 30447 V BSS 1 /26-MESS GEN FREQ 30450 V BSS 1 /27-DIAG FREQ 30451 V TRBF: BSS 1 /30-TRBL REPT FREQ 30452 V MGNL: BSS 1 /31-MESS GEN LENGTH 30453 V PTF: BSS 1 /32-PKT TRACE FREQ 30454 V RTTUNT: BSS 1 /33-ROUND TRIP TIME UNITS 30455 V ATDEST: BSS 1 /34-AUTO TRACE DEST 30456 V ATSRCE: BSS 1 /35-AUTO TRACE SOURCE 30457 V BSS 1 /36- 30460 V BSS 1 /37- ^L PAGE 271 IMP,3147,IMP 4:35 PM 7/19/1974 LEV BCK /FAKE IMP-TO-HOST 3 - DISCARD 30461 120675 7 STXY: JST SUCK I /GET EACH WORD AS IT IS READY 30462 003461 7 JMP .-1 /AND RETURN IMMEDIATELY FOR MORE 30463 003461 7 JMP .-2 /EVEN ON END OF MESSAGE /FAKE HOST-TO-IMP 2 - TRACE + BLOCKS /FAKE HOST INITIALIZATION 30464 005643 7 BTRE: LDA (BLJFNS) /INITIALIZE FONT JAM COROUTINE 30465 111644 7 STA (BLFNJR) I 30466 005645 7 LDA (BLJSKS) /INITIALIZE SINK JAM COROUTINE 30467 111646 7 STA (BLSKJR) I 30470 021553 7 JST BTLDR /SEND NULL TRACE MESSAGE 30471 003546 7 JMP BTD1 /TOP OF FAKE HOST LOOP 30472 120674 7 BTRLOP: JST DOZE I /WAIT ONE BACKGROUND LOOP /TRACE FAKE HOST-TO-IMP 30473 004343 7 BTRC: LDA STRQ /START HERE 30474 101040 7 SNZ /ANYTHING ON QUEUE? 30475 103647 7 JMP (BLPOLL) I /NO, GO TRY BLOCK QUEUE 30476 004121 7 LDA MINUS1 /YES, RESET TRACE FLAG 30477 011567 7 STA T3BX 30500 005651 7 BRL2: LDA ((STRQ)) /GET POINTER TO TRACE QUEUE HEAD 30501 011570 7 STA OLD2 30502 001001 7 INH TSK /LOCK OUT INTERRUPTS WHILE MEDDLING 30503 105570 7 6 BTRL: LDA OLD2 I /GET NEXT TRACE BLOCK ON QUEUE 30504 011570 7 6 STA OLD2 30505 105570 7 6 LDA OLD2 I 30506 011571 7 6 STA OLD1 /SAVE PTR 30507 101040 7 6 SNZ /ZERO? 30510 003542 7 6 JMP BTD /YES, DONE SEARCHING QUEUE 30511 010000 7 6 STA 0 /NO, REAL TRACE BLOCK 30512 044012 7 6 LDA TDONE X /IS TRACE BLOCK COMPLETE? 30513 101400 7 6 SMI 30514 003503 7 6 JMP BTRL /NO, LOOK AT OTHERS 30515 044000 7 6 LDA 0 X /YES, REMOVE FROM QUEUE 30516 111570 7 6 STA OLD2 I /BY MOVING CHAIN POINTER 30517 000401 7 6 ENB BCK /UNLOCK NOW ^L PAGE 272 IMP,3147,IMP 4:35 PM 7/19/1974 30520 072115 7 LDX TWO 0"A"FHPTRC /RESTORE FH INDEX 30521 025567 7 IRS T3BX /BUMP AND TEST FLAG 30522 100000 7 SKP />0 TRACE BLOCKS OUTPUT 30523 021553 7 JST BTLDR /0 TRACE BLOCKS OUTPUT, OUTPUT LEAD'9 30524 005652 7 LDA (-TDONE) /SEND TRACE BLOCK 30525 011566 7 STA T2BX /WORD COUNT 30526 025571 7 BTRL1: IRS OLD1 /INCREMENT BLOCK POINTER 30527 105571 7 LDA OLD1 I /GET NEXT WORD 30530 120673 7 JST JAM I /OUTPUT 30531 025566 7 IRS T2BX /INCREMENT BLOCK WORD COUNT 30532 003526 7 JMP BTRL1 /LOOP 30533 005571 7 LDA OLD1 /RECOMPUTE INITIAL BLOCK PTR 30534 015652 7 ADD (-TDONE) 30535 001001 7 INH TSK 30536 026327 7 6 IMA TTF /PUT BLOCK ON FREE TRACE QUEUE 30537 110327 7 6 STA TTF I 30540 000401 7 6 ENB BCK 30541 003500 7 JMP BRL2 /SEARCH TRACE QUEUE FROM BEGINNING AG LCK TSK 30542 000401 7 6 BTD: ENB BCK 30543 005567 7 LDA T3BX /GET TRACE FLAG 30544 100400 7 SPL /AT LEAST ONE TRACE BLOCK OUTPUT? 30545 103647 7 JMP (BLPOLL) I /NO 30546 004112 7 BTD1: LDA SIGN /YES, TERMINATE MESSAGE 30547 073653 7 LDX (100000 0 FHPTRC) 30550 120673 7 JST JAM I 30551 072115 7 LDX TWO 0"A"FHPTRC 30552 103647 7 JMP (BLPOLL) I /ROUTINE TO SEND TRACE LEADER 30553 000000 7 BTLDR: 0 30554 005436 7 LDA TDST /SEND TRACE DEST 30555 120673 7 JST JAM I 30556 005430 7 LDA TLNK /SEND TRACE LINK 30557 120673 7 JST JAM I 30560 004114 7 LDA ONE /SEND TRACE CODE 30561 120673 7 JST JAM I 30562 140040 7 CRA /RESET OVERFLOW FLAG 30563 026420 7 IMA TTO /AND SEND STATE OF OVERFLOW 30564 120673 7 JST JAM I 30565 103553 7 JMP BTLDR I /RETURN LEV VAR 30566 V T2BX: BSS 1 /COPY LOOP COUNTER 30567 V T3BX: BSS 1 /COUNT OF NUMBER OF BLOCKS COPIED - 1 30570 V OLD2: BSS 1 /QUEUE PNTR - USED IN SEARCH 30571 V OLD1: BSS 1 /PACKET PNTR - USED IN COPY ^L PAGE 273 IMP,3147,IMP 4:35 PM 7/19/1974 LEV I2M / LOG SUBROUTINE 30572 000000 2 LOG: 0 30573 016752 2 SUB C77 30574 101400 2 SMI /IF IT'S GREATER THAN 77 30575 140040 2 CRA /MAKE IT LOOK LIKE 77 30576 014752 2 ADD C77 30577 033613 2 STX LOGX 30600 072125 2 LDX MINUS5 30601 040673 2 ARR 5 30602 100100 2 LOG1: SLZ 30603 003607 2 JMP LOG2 30604 041677 2 ALR 1 30605 024000 2 IRS 0 30606 003602 2 JMP LOG1 30607 004000 2 LOG2: LDA 0 30610 140407 2 TCA 30611 073613 2 LDX LOGX 30612 103572 2 JMP LOG I LEV VAR 30613 V LOGX: BSS 1 30614 177760 C LEV CON CONSTANTS 30615 072144 C 30616 172124 C 30617 120601 C 30620 000350 C 30621 100003 C 30622 000005 C 30623 177753 C 30624 073113 C 30625 177423 C 30626 071752 C 30627 000777 C 30630 000400 C 30631 177666 C 30632 027473 C 30633 027220 C 30634 004435 C 30635 027221 C 30636 027225 C 30637 000037 C 30640 030421 C 30641 040500 C 30642 031354 C 30643 034352 C 30644 034346 C 30645 034313 C 30646 034307 C 30647 027511 C 30650 000343 C 30651 030650 C 30652 177766 C 30653 100006 C 02526 175662 C PAGEND 30,UNCON,3 ^L PAGE 274 IMP,3147,IMP 4:35 PM 7/19/1974 LEV H2I /HOST TO IMP STATISTICS 31106 000000 4 HS0: 0 31107 005753 4 LDA (STTB) 31110 001001 4 INH [I2M,I2H] 31111 011152 4 2 STA WHER 31112 004703 4 2 LDA HIP 31113 021154 4 2 JST SUB1 31114 015412 4 2 ADD TOT1 31115 011412 4 2 STA TOT1 31116 000401 4 2 ENB H2I 31117 072703 4 LDX HIP 31120 172705 4 LDX HIXX I 31121 044007 4 LDA HEAD2 X 31122 103106 4 JMP HS0 I / HOST TO IMP ALL MESSAGES 31123 000000 4 HS2: 0 31124 065431 4 IRS CNT2 X 31125 101000 4 NOP 31126 103754 4 JMP (HIH0 0 XI) I LEV I2H / IMP TO HOST STATISTICS 31127 000000 3 HS1: 0 31130 005755 3 LDA (XGP) 31131 001001 3 INH I2M 31132 011152 3 2 STA WHER 31133 004704 3 2 LDA IHP 31134 172706 3 2 LDX IHXX I 31135 021154 3 2 JST SUB1 31136 015430 3 2 ADD TOT2 31137 011430 3 2 STA TOT2 31140 000401 3 2 ENB I2H 31141 072704 3 LDX IHP 31142 105756 3 LDA (IHED 0 X) I 31143 103127 3 JMP HS1 I / IMP TO HOST CONTROL MESSAGES 31144 000000 3 HS3: 0 31145 141206 3 AOA 31146 065441 3 IRS CNT3 X 31147 101000 3 NOP 31150 103144 3 JMP HS3 I ^L PAGE 275 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR 31151 V WHERL: BSS 1 31152 V WHER: BSS 1 31153 V SUBL: BSS 1 LEV I2M 31154 000000 2 SUB1: 0 31155 016130 2 SUB PLNH 31156 101400 2 SMI 31157 003207 2 JMP SP6 31160 044111 2 LDA BUFE X 31161 016000 2 SUB 0 31162 017757 2 SUB (DATA) 31163 140100 2 SSP 0"A"TWOQ 31164 011153 2 STA SUBL 31165 121760 2 JST (LOG) I 31166 014120 2 ADD SEVEN /POINTS TO LAST-PACKET LENGTH COUNTER 31167 015152 2 ADD WHER /...IN CORRECT TABLE 31170 011151 2 STA WHERL 31171 125151 2 IRS WHERL I /AND GOOSE COUNTER 31172 101000 2 NOP 31173 044006 2 LDA HEAD1 X 31174 141340 2 ICA 0"A"PKTNO 31175 006120 2 ANA SEVEN 31176 101040 2 SNZ 31177 003205 2 JMP SP4 /NO SEPARATE COUNTER FOR 1PKT MSGS 31200 016114 2 SUB ONE /BACK OFF 1 31201 015152 2 ADD WHER 31202 011152 2 STA WHER 31203 125152 2 IRS WHER I 31204 101000 2 NOP 31205 005153 2 SP4: LDA SUBL 31206 103154 2 JMP SUB1 I 31207 073154 2 SP6: LDX SUB1 31210 042002 2 JMP 2 X ^L PAGE 276 IMP,3147,IMP 4:35 PM 7/19/1974 / IMP TO MODEM MESSAGES 31211 000000 2 IM1: 0 31212 111761 2 STA (ACKWRD) I 31213 010000 2 STA 0 31214 044105 2 LDA BUFE-ACKH X 31215 016000 2 SUB 0 31216 016116 2 SUB THREE 0"A"[HEAD2-ACKH] 31217 140100 2 SSP 0"A"TWOQ 31220 011373 2 STA IMT1 /GET LENGTH 31221 121760 2 JST (LOG) I /CONVERT TO LOG 31222 173762 2 LDX (OCHN) I 31223 055365 2 ADD TUB1 X /GET RIGHT SLOT 31224 011374 2 STA IMT2 31225 125374 2 IRS IMT2 I /INCREMENT IT 31226 101000 2 NOP 31227 005373 2 LDA IMT1 31230 055656 2 ADD ANS4 X /ACCUMULATE TOTAL WORDS 31231 051656 2 STA ANS4 X 31232 005710 2 LDA WOCOVF 31233 141216 2 ACA /ADD IN OVERFLOW 31234 011710 2 STA WOCOVF /KEEP TOTAL OVERFLOWS 31235 103211 2 JMP IM1 I LEV M2I / MODEM TO IMP DISCARD 31236 000000 0 MI1: 0 31237 025663 0 IRS MTOT 31240 070471 0 M1ERR 31241 103236 0 JMP MI1 I 31242 025670 0 IRS CKSM 31243 025236 0 IRS MI1 31244 101000 0 NOP 31245 103236 0 JMP MI1 I /TASK I HEARD YOU MESSAGES RECEIVED 31246 000000 0 TSKIH: 0 31247 064431 0 IRS LAC X 31250 065675 0 IRS TSKIHY X 31251 101000 0 NOP 31252 103246 0 JMP TSKIH I ^L PAGE 277 IMP,3147,IMP 4:35 PM 7/19/1974 / MODEM TO IMP BUFFER TROUBLE 31253 000000 0 MI3: 0 31254 065702 0 IRS BUFT X 31255 101000 0 NOP 31256 103763 0 JMP (DIS 0 XI) I /MORE OF MODEM TO IMP DISCARD 31257 000000 0 MI1A: 0 31260 025664 0 IRS MTOT+1 31261 070472 0 M2ERR 31262 103257 0 JMP MI1A I 31263 025671 0 IRS CKSM+1 31264 025257 0 IRS MI1A 31265 101000 0 NOP 31266 103257 0 JMP MI1A I 31267 000000 0 MI1B: 0 31270 025665 0 IRS MTOT+2 31271 070473 0 M3ERR 31272 103267 0 JMP MI1B I 31273 025672 0 IRS CKSM+2 31274 025267 0 IRS MI1B 31275 101000 0 NOP 31276 103267 0 JMP MI1B I 31277 000000 0 MI1C: 0 31300 025666 0 IRS MTOT+3 31301 070474 0 M4ERR 31302 103277 0 JMP MI1C I 31303 025673 0 IRS CKSM+3 31304 025277 0 IRS MI1C 31305 101000 0 NOP 31306 103277 0 JMP MI1C I 31307 000000 0 MI1D: 0 31310 025667 0 IRS MTOT+4 31311 070475 0 M5ERR 31312 103307 0 JMP MI1D I 31313 025674 0 IRS CKSM+4 31314 025307 0 IRS MI1D 31315 101000 0 NOP 31316 103307 0 JMP MI1D I ^L PAGE 278 IMP,3147,IMP 4:35 PM 7/19/1974 LEV H2I 31317 000000 4 HS4: 0 31320 050111 4 STA BUFE X 31321 173764 4 LDX (PPSLT) I 31322 131040 4 RDCLOK 31323 003322 4 JMP .-1 31324 050010 4 STA PPT1 X /SAVE SENT TIME FOR 1 PKT MESS 31325 173765 4 LDX (PPSLT 0 I) I 31326 103317 4 JMP HS4 I 31327 000000 4 HS5: 0 /SHOULD ONLY DO THIS ONCE, NEED A CHE( 31330 050030 4 STA PLT2 X 31331 131040 4 RDCLOK 31332 003331 4 JMP .-1 31333 050044 4 STA PLT3 X /SAVE SENT TIME FOR 8 PKT MESS 31334 103327 4 JMP HS5 I LEV TSK LCK FRE 31335 000000 6 0 HS6: 0 31336 131040 6 0 RDCLOK 31337 003336 6 0 JMP .-1 31340 173766 6 0 LDX (PPTASK) I 31341 056010 6 0 SUB PPT1 X 31342 021353 6 0 JST HSTIME /GET ROUND-TRIP TIME FOR 1 PKT MESS 31343 103767 6 0 JMP (PPTFRE) I 31344 000000 6 0 HS7: 0 31345 131040 6 0 RDCLOK 31346 003345 6 0 JMP .-1 31347 173766 6 0 LDX (PPTASK) I 31350 056044 6 0 SUB PLT3 X 31351 021353 6 0 JST HSTIME /GET ROUND-TRIP TIME FOR 8 PKT MESS 31352 103770 6 0 JMP (GUDRP0) I 31353 000000 6 0 HSTIME: 0 31354 040500 6 0 HSTSHF: LGR 0 /A SHIFT OF RTTUNT PLACES (LGR) 31355 173771 6 0 LDX (SOURCE) I 31356 055451 6 0 ADD HS4R X /ACCUMULATE ROUND TRIP TIMES 31357 051451 6 0 STA HS4R X 31360 005707 6 0 LDA RTTOVF 31361 141216 6 0 ACA /ADD OVERFLOW 31362 011707 6 0 STA RTTOVF /KEEP TOTAL OVERFLOWS 31363 065551 6 0 IRS HS4S X /COUNT ROUND TRIPS 31364 103353 6 0 JMP HSTIME I ^L PAGE 279 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 31365 031714 C TUB1: XGP1+0 31366 031722 C XGP1+6 31367 031730 C XGP1+12. 31370 031736 C XGP1+18. 31371 031744 C XGP1+24. 31372 031752 C XGP1+30. LEV VAR 31373 V IMT1: BSS 1 31374 V IMT2: BSS 1 /CUMULATIVE STATS SENT IN THIS ORDER /STATISTICS GATHERED BY H2I 31375 V STTB: BSS 13. /HISTOGRAM OF H2I MESS LENGTH - ALL H( 31412 V TOT1: BSS 1 /TOTAL # OF H2I WORDS /STATISTICS GATHERED BY I2H 31413 V XGP: BSS 13. /HISTOGRAM OF I2H MESS LENGTH - ALL H! 31430 V TOT2: BSS 1 /TOTAL # OF I2H WORDS /STATISTICS GATHERED BY H2I 31431 V CNT2: BSS TH /# OF H2I ALL MESSAGES PER HOST /STATISTICS GATHERED BY I2H 31441 V CNT3: BSS TH /# OF I2H CONTROL MESSAGES PER HOST /STATISTICS GATHERED BY TSK 31451 V HS4R: BSS NIMP /TOTAL ROUND TRIP TIME IN 800 MS PE- 31551 V HS4S: BSS NIMP /# OF ROUND TRIPS MEASURED ABOVE /STATISTICS GATHERED BY I2M 31651 V IMHS: BSS CH /# OF HELLOS SENT PER LINE 31656 V ANS4: BSS CH /# OF DATA WOSDS SENT PER LINE /STATISTICS GATHERED BY M2I 31663 V MTOT: BSS CH /# OF INPUTS RECVD PER LINE 31670 V CKSM: BSS CH /# OF CHECKSUM ERRORS PER LINE /STATISTICS GATHERED BY TSK 31675 V TSKIHY: BSS CH /# OF I HEARD YOUS RECVD PER LINE /STATISTICS GATHERED BY M2I 31702 V BUFT: BSS CH /# OF INPUTS LOST DUE TO LACK OF SPAC /OVERFLOW COUNTS 31707 V RTTOVF: BSS 1 /ROUND TRIP TIME OVERFLOWS 31710 V WOCOVF: BSS 1 /WORDS ON CHANNEL OVERFLOWS 31711 V BSS 3 /UNUSED /STATISTICS GATHERED BY I2M 31714 V XGP1: BSS CH+CH+CH+CH+CH+CH /HISTOGRAM OF I2M MESSAGE L 31752 V EP20: BSS 1 /BEGINNING OF PATCH AREA NST=0+0+EP20-STTB ^L PAGE 280 IMP,3147,IMP 4:35 PM 7/19/1974 31753 031375 C LEV CON CONSTANTS 31754 154210 C 31755 031413 C 31756 056162 C 31757 000011 C 31760 030572 C 31761 012675 C 31762 012674 C 31763 150572 C 31764 015267 C 31765 115267 C 31766 007066 C 31767 007153 C 31770 007155 C 31771 006617 C 02527 176772 C PAGEND 31,UNCON ^L PAGE 281 IMP,3147,IMP 4:35 PM 7/19/1974 32104 C SB1: BSS NSTATS /ADDRESSES FOR STAT INSTR 32124 C SC1: BSS NSTATS /NOMINAL CONTENTS LEV VAR TABZB: /THIS ENTIRE PAGE IS ZEROED AT INIT /TABLES OF BUFFER PNTRS, NACH FOR EACH LINE 32144 V I2MB0: BSS NACH 32154 V I2MB1: BSS NACH 32164 V I2MB2: BSS NACH 32174 V I2MB3: BSS NACH 32204 V I2MB4: BSS NACH /NULL AREAS 32214 V NULS1: BSS HEAD3-ACKH+1 /ACKS GO HERE 32221 V NULS2: BSS HEAD3-ACKH+1 /ACKS GO HERE 32226 V NULS3: BSS HEAD3-ACKH+1 /ACKS GO HERE 32233 V NULS4: BSS HEAD3-ACKH+1 /ACKS GO HERE 32240 V NULS5: BSS HEAD3-ACKH+1 /ACKS GO HERE NTRCB=8 TRACEL=TDONE+1 32245 V TRACEQ: BSS NTRCB"T"TRACEL /TRACE STORE TALLYL=8. 32375 V TALLY: BSS TALLYL /STACK OF TRANSMIT ALLOCATES WE HAV= DEFPLC [TRANSMIT, RECEIVE, AND ALLOCATE MESSAGE TABLES] 32405 V TMESS: BSS NIMP 32505 V RMESS: BSS NIMP 32605 V AMESS: BSS NIMP DEFPLC [RALLY TABLE - ALLOCATES TO SEND] 32705 V RALLY: BSS NIMP LEV CON 02530 177005 C PAGEND 32,-0 ^L PAGE 282 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR /ROUTE SEND TABLES /SEND ROUTING MESSAGE FROM HERE 33005 V BSS 1 /*SIMP COUNT 33006 V BSS 1 /*SIMP DEST SIMP 33007 V BSS 1 /*SIMP SOURCE SIMP 33010 V BSS 1 /ACKS 33011 V BSS 1 /HEADER 33012 V BSS 1 /SERIAL NO. (LH), COMPAT NO. (RH) 33013 V RST: BSS NIMP /ROUTE SEND TABLE 33113 V BSS 1 /CHECKSUM 33114 V BSS 1 /*SIMP CHECKSUM /END OF ROUTING MESSAGE /ALTERNATE ROUTING MESSAGE BUFFER 1 33115 V BSS 3 /*SIMP 33120 V BSS 1 /ACKS 33121 V BSS 1 /HEADER 33122 V BSS 1 /SERIAL NO. (LH), COMPAT NO. (RH) 33123 V RST1: BSS NIMP /ROUTE SEND TABLE 33223 V BSS 1 /CHECKSUM 33224 V BSS 1 /*SIMP /ALTERNATE ROUTING MESSAGE BUFFER 2 33225 V BSS 3 /*SIMP 33230 V BSS 1 /ACKS 33231 V BSS 1 /HEADER 33232 V BSS 1 /SERIAL NO. (LH), COMPAT NO. (RH) 33233 V RST2: BSS NIMP /ROUTE SEND TABLE 33333 V BSS 1 /CHECKSUM 33334 V BSS 1 /*SIMP ^L PAGE 283 IMP,3147,IMP 4:35 PM 7/19/1974 LEV VAR PPTL=8. /NUMBER OF ENTRIES IN PPT PPTN=2 /NUMBER OF WORDS PER ENTRY IN PPT PPTNUM=PPTL"T"PPTN DEFPLC [PPT - PENDING PACKET TABLE] 33335 V PPT: BSS PPTNUM /TABLE OF PNTRS TO PENDING PACKETS PLTL=12. /NUMBER OF ENTRIES IN PLT PLTN=4 /NUMBER OF WORDS PER ENTRY IN PLT PLTNUM=PLTL"T"PLTN DEFPLC [PLT - PENDING LEADER TABLE] 33355 V PLT: BSS PLTNUM /TABLE OF COPIED PENDING LEADERS HTPTBL: /TABLE OF HOST THROUGHPUTS 33435 V HTPMTN: BSS NH /MESSAGES FROM HOST TO NET 33441 V HTPMFN: BSS NH /MESSAGES TO HOST FROM NET 33445 V HTPPTN: BSS NH /PACKETS FROM HOST TO NET 33451 V HTPPFN: BSS NH /PACKETS TO HOST FROM NET 33455 V HTPMTL: BSS NH /MESSAGES FROM HOST TO LOCAL HOSTS 33461 V HTPMFL: BSS NH /MESSAGES TO HOST FROM LOCAL HOSTS 33465 V HTPPTL: BSS NH /PACKETS FROM HOST TO LOCAL HOST' 33471 V HTPPFL: BSS NH /PACKETS TO HOST FROM LOCAL HOSTS 33475 V HTPWTI: BSS NH /WORDS FROM HOST TO IMP 33501 V HTPWFI: BSS NH /WORDS TO HOST FROM IMP LEV CON 02531 174505 C PAGEND 33,-0 LEV VAR NREAB=12. /12 - NEED MANY FOR <8 PKT MESSA REASL=RSF+1 34043 V REASQ: BSS NREAB"T"REASL /REASSEMBLY STORE TABZE: TABZL=TABZE+0-TABZB ^L PAGE 284 IMP,3147,IMP 4:35 PM 7/19/1974 /BLOCK FAKE HOST AND STAND-ALONE SHARED VARIABLES LEV CON 34263 051664 C BLSAPP: 51664 /PASSWORD LEV VAR /FONT SIDE 34264 V BLFNTF: BSS 1 /FONT FLAG, -1=CLOSED, 0 OR >0 =OPE [ 34265 V BLFNTJ: BSS 1 /FONT JAM FLAG, 1=OUPUT HERE IS B/E, : /HERE IS #N, <0=DO NOTHING 34266 V BLFSRC: BSS 1 /FONT LEADER FOR REPLIES 34267 V BLFPCN: BSS 1 /FONT PIECE # 34270 V BLFTMO: BSS 1 /FONT TIMEOUT 34271 V BLFTMP: BSS 1 /FONT TEMP PTR 34272 V BLFTMC: BSS 1 /FONT TEMP COUNTER 34273 V BLSADR: BSS 1 /SINK CURRENT ADDRESS 34274 V BLFADR: BSS 1 /FONT CURRENT ADDRESS 34275 V BLWRDC: BSS 1 /NEGATIVE REMAINING WORD COUNT /SINK SIDE 34276 V BLSNKF: BSS 1 /SINK FLAG, -1=CLOSED, 0 OR >0 =OPE ! 34277 V BLSNKJ: BSS 1 /SINK JAM FLAG, 2=DO NOTHING, 1=OUTPU /END, 0=OUTPUT PLEASE #N, <0=RESET TI; 34300 V BLSSRC: BSS 1 /SINK LEADER FOR REPLIES 34301 V BLSPCN: BSS 1 /SINK PIECE # 34302 V BLSTMO: BSS 1 /SINK TIMEOUT 34303 V BLSTMP: BSS 1 /SINK TEMP PTR 34304 V BLSTMC: BSS 1 /SINK TEMP COUNTER ^L PAGE 285 IMP,3147,IMP 4:35 PM 7/19/1974 /SINK JAM COROUTINE - SHARED BY BLOCK FAKE HOST AND S.A. C'DE /RETURNS WORDS TO BE OUTPUT IN A, LEAVES X UNCHANGED /CALL: JST (BLSJAM) I / -NOTHING TO DO RETURN / -FIRST WORD TO OUTPUT RETURN / XXXXXXXXXX / JST (BLSJAM) I / -NEXT WORD TO OUTPUT RETURN / -LAST WORD TO OUTPUT RETURN LEV BCK 34305 000000 7 BLSJAM: 0 /RETURN LOC IN CALLING PROG 34306 103307 7 JMP BLSKJR I /RESUME OPERATION 34307 000000 7 BLSKJR: 0 /***MUST BE INITIALIZED 34310 103305 7 JMP BLSJAM I /RETURN TO CALLING PROGRAM 34311 025305 7 BLJSKF: IRS BLSJAM /FINAL OUTPUT RETURN 34312 021307 7 JST BLSKJR /LEAVE OFF RIGHT BEFORE BEGINNING 34313 005277 7 BLJSKS: LDA BLSNKJ /GET SINK JAM FLAG 34314 023647 7 CAS (1) /WHAT TO DO? 34315 103305 7 JMP BLSJAM I /2=DO NOTHING 34316 003340 7 JMP BLJSKE /1=SEND PLEASE END 34317 100400 7 SPL /0 OR <0? 34320 103305 7 JMP BLSJAM I /<0=RESET TIMEOUT, DO NOTHING 34321 005650 7 LDA (-19.) /500 MS (19. FAST TICKS) 34322 011277 7 STA BLSNKJ /FOR PIECE # RESET TIMEOUT 34323 020000 7 JST BLSKJC 34324 177774 7 -10+BLNORM+BLPLES+BLREGL /SEND PLEASE #N TYPE 34325 000000 7 BLJSKC: 0 34326 025305 7 IRS BLSJAM /SEND LEADER 34327 005300 7 LDA BLSSRC 34330 021307 7 JST BLSKJR 34331 021307 7 JST BLSKJR 34332 105325 7 LDA BLJSKC I /SEND TYPE 34333 021307 7 JST BLSKJR 34334 005263 7 LDA BLSAPP /SEND PASSWORD 34335 021307 7 JST BLSKJR 34336 005301 7 LDA BLSPCN /SEND PIECE # 34337 003311 7 JMP BLJSKF /AS LAST WORD 34340 005651 7 BLJSKE: LDA (-1) /RESET SINK FLAG 34341 011276 7 STA BLSNKF 34342 020000 7 JST BLSKJC 34343 177775 7 -10+BLNORM+BLPLES+BLBEGE /SEND PLEASE END TYPE ^L PAGE 286 IMP,3147,IMP 4:35 PM 7/19/1974 /FONT JAM COROUTINE - SHARED BY BLOCK FAKE HOST AND S.A. C'DE /RETURNS, ETC. JUST LIKE BLSJAM 34344 000000 7 BLFJAM: 0 /RETURN LOC IN CALLING PROGRAM 34345 103346 7 JMP BLFNJR I /RESUME OPERATION 34346 000000 7 BLFNJR: 0 /*** MUST BE INITIALIZED 34347 103344 7 JMP BLFJAM I /RETURN TO CALLING PROGRAM 34350 025344 7 BLJFNF: IRS BLFJAM /FINAL OUTPUT RETURN 34351 021346 7 JST BLFNJR /LEAVE OFF RIGHT BEFORE BEGINNING 34352 005265 7 BLJFNS: LDA BLFNTJ /GET FONT JAM FLAQ 34353 100400 7 SPL /ANYTHING TO DO? 34354 103344 7 JMP BLFJAM I /NO 34355 005652 7 LDA (BLFNTO) /RESET FONT TIMEOUT 34356 011270 7 STA BLFTMO 34357 025344 7 IRS BLFJAM /SEND LEADER 34360 005266 7 LDA BLFSRC 34361 021346 7 JST BLFNJR 34362 005264 7 LDA BLFNTF 34363 021346 7 JST BLFNJR 34364 005265 7 LDA BLFNTJ /HERE IS #N TO BE SENT? 34365 100040 7 SZE 34366 003433 7 JMP BLJFNE /NO, HERE IS B/E 34367 005653 7 LDA (-10+BLNORM+BLHRIS+BLREGL) /SEND HERE IS # 34370 021346 7 JST BLFNJR 34371 005263 7 LDA BLSAPP /SEND PASSWORD 34372 021346 7 JST BLFNJR 34373 005267 7 LDA BLFPCN /SEND PIECE # 34374 021346 7 JST BLFNJR 34375 025267 7 IRS BLFPCN /AND INCREMENT PIECE # 34376 005275 7 LDA BLWRDC /GET -# OF WORDS REMAINING 34377 017654 7 SUB (-BLCHKS) /ADD MAX CHUNK SIZE 34400 011275 7 STA BLWRDC /AND UPDATE 34401 101400 7 SMI /IF >0 OR =0 34402 003427 7 JMP BLJFNO /THEN DO SOMETHING SPECIAL 34403 005654 7 LDA (-BLCHKS) /OTHERWISE USE -CHUNK SIZE 34404 011272 7 BLJFNC: STA BLFTMC /AS BUFFER FILL COUNT 34405 140407 7 TCA 0"A"BLWRDS /SEND +CORE WORD COUNT 34406 021346 7 JST BLFNJR 34407 005273 7 LDA BLSADR /SEND SINK CURPENT ADDRESS 34410 017654 7 SUB (-BLCHKS) 34411 027273 7 IMA BLSADR /AND UPDATE 34412 021346 7 JST BLFNJR 34413 005274 7 LDA BLFADR /USE CURRENT FONT ADDRESS 34414 011271 7 STA BLFTMP /AS CORE POINTER 34415 017654 7 SUB (-BLCHKS) 34416 011274 7 STA BLFADR /AND UPDATE 34417 003423 7 JMP BLJFNB /GO TO BOTTOM OF LOOP (LAST WORD SP C 34420 105271 7 BLJFNL: LDA BLFTMP I /GET NEXT CORE WORD 34421 021346 7 JST BLFNJR /SEND IT 34422 025271 7 IRS BLFTMP /BUMP PTR 34423 025272 7 BLJFNB: IRS BLFTMC /BUMP COUNT 34424 003420 7 JMP BLJFNL /LOOP 34425 105271 7 LDA BLFTMP I /GET LAST WORD 34426 003350 7 JMP BLJFNF /SEND IT 34427 005647 7 BLJFNO: LDA (1) /SET FONT JAM FLAG TO OUTPUT 34430 011265 7 STA BLFNTJ /HERE IS END 34431 005275 7 LDA BLWRDC /GET -# OF WORDS LEFT 34432 003404 7 JMP BLJFNC /AND USE THEM INSTEAD OF CHUNK SIZE ^L PAGE 287 IMP,3147,IMP 4:35 PM 7/19/1974 34433 005651 7 BLJFNE: LDA (-10+BLNORM+BLHRIS+BLBEGE) /SEND HERE IS B 34434 021346 7 JST BLFNJR 34435 005263 7 LDA BLSAPP /SEND PASSWORD 34436 021346 7 JST BLFNJR 34437 005267 7 LDA BLFPCN /PIECE - 0? 34440 100040 7 SZE 34441 003444 7 JMP BLJFNH /NO, HERE IS END 34442 011265 7 STA BLFNTJ /YES, BEGIN, SET FONT JAM FLAG TO OUT' 34443 003350 7 JMP BLJFNF /SEND PIECE # 34444 005651 7 BLJFNH: LDA (-1) /SET FONT JAM FLAG TO DO NOTHING 34445 011265 7 STA BLFNTJ 34446 005267 7 LDA BLFPCN /SEND PIECE # 34447 003350 7 JMP BLJFNF ^L PAGE 288 IMP,3147,IMP 4:35 PM 7/19/1974 /BLOCK TO CORE ROUTINE - SHARED BY BLOCK FAKE HOST AND S.A C /ENTERED WITH BUFFER POINTER IN X /NON-SKIP RETURN FOR MAGIC MODEM OUTPUT, HAS CHAN # IN X, /PTR TO FIRST DATA WORD IN A, AND BLSCNT CHANGED /TO INDICATE THE #OF DATA WORDS - 2 /SKIP RETURN FOR NORMAL EXIT (TRANSACTION ACOMPLISHED) 34450 000000 7 BL2COR: 0 34451 044011 7 LDA BLTYPE X /GET DISPATCH 34452 015655 7 ADD (JMP BL2DIS+BLRANG I) /FORM INSTRUCTION 34453 011454 7 STA .+1 34454 7 BSS 1 /EXECUTE IT 34455 034502 7 BL2DIS: BL2EXT /I CAN HEAR BLOCKS - IGNORED 34456 034502 7 BL2EXT /GO DOWN - IGNORED 34457 034504 7 BL2PLN /PLEASE #N 34460 034463 7 BL2PLS /PLEASE BEGIN/END 34461 034550 7 BL2HSN /HERE IS #N 34462 034532 7 BL2HSS /HERE IS BEGIN/END /PLEASE BEGIN/END 34463 044013 7 BL2PLS: LDA BLPECE X /PIECE #0? 34464 100040 7 SZE 34465 003502 7 JMP BL2EXT /NO, END 34466 011267 7 STA BLFPCN /YES, SET PIECE # TO 0 34467 044007 7 LDA BLSORC X 34470 011266 7 STA BLFSRC /SAVE SOURCE 34471 044015 7 LDA BLADDR X 34472 011273 7 STA BLSADR /SAVE SINK START ADDRESS 34473 044022 7 LDA BLFNTA X 34474 011274 7 STA BLFADR /SAVE FONT START ADDRESS 34475 044023 7 LDA BLLENG X 34476 140407 7 TCA 34477 011275 7 STA BLWRDC /SAVE -WORD COUNT 34500 005647 7 LDA (1) /SET FONT JAM FLAG 34501 011265 7 STA BLFNTJ /TO OUTPUT HERE IS BEGIN 34502 025450 7 BL2EXT: IRS BL2COR /SKIP RETURN 34503 103450 7 JMP BL2COR I /NORMAL EXIT ^L PAGE 289 IMP,3147,IMP 4:35 PM 7/19/1974 /PLEASE #N 34504 044013 7 BL2PLN: LDA BLPECE X /GET PIECE # DESIRED 34505 017267 7 SUB BLFPCN /-CURRENT PIECE # 34506 101400 7 SMI /IF DESIRED IS NOT < CURRENT 34507 003502 7 JMP BL2EXT /THEN IGNORE 34510 066013 7 IMA BLPECE X /SAVE DIFFERENCE, GET NEW PIECE # 34511 011267 7 STA BLFPCN /AND UPDATE 34512 173656 7 LDX (BLPECE 0 X) I /GET DIF INTO COUNTER 34513 140040 7 CRA /INITIAL VALUE FOR DISPLACEMENT 34514 011264 7 STA BLFNTF /ALSO SET FONT JAM FLAG TO OUTPUT H'R: 34515 015654 7 BL2PLL: ADD (-BLCHKS) /INCREMENT BY ONE CHUNK PER PIECE * 34516 024000 7 IRS 0 /BUILD DISPLACEMENT 34517 003515 7 JMP BL2PLL /AND LOOP 34520 027275 7 IMA BLWRDC /BACK UP -WORD COUNT 34521 015275 7 ADD BLWRDC 34522 027275 7 IMA BLWRDC 34523 027273 7 IMA BLSADR /BACK UP SINK ADDRESS 34524 015273 7 ADD BLSADR 34525 027273 7 IMA BLSADR 34526 027274 7 IMA BLFADR /BACK UP FONT ADDRESS 34527 015274 7 ADD BLFADR 34530 011274 7 STA BLFADR 34531 003502 7 JMP BL2EXT /EXIT /HERE IS BEGIN/END 34532 044013 7 BL2HSS: LDA BLPECE X /PIECE #0? 34533 100040 7 SZE 34534 003541 7 JMP BL2HSE /NO, END 34535 011301 7 STA BLSPCN /BEGIN, SAVE AS PIECE # 34536 044007 7 LDA BLSORC X 34537 011300 7 STA BLSSRC /SAVE SOURCE 34540 003502 7 JMP BL2EXT /EXIT 34541 044013 7 BL2HSE: LDA BLPECE X /GET PIECE # 34542 017301 7 SUB BLSPCN /CORRECT VALUE? 34543 100040 7 SZE 34544 003614 7 JMP BL2HSM /NO, CHECK FOR MISSING HERE IS 34545 141206 7 AOA /SET SINK JAM FLAG 34546 011277 7 STA BLSNKJ /TO OUTPUT PLEASE END 34547 003502 7 JMP BL2EXT /EXIT ^L PAGE 290 IMP,3147,IMP 4:35 PM 7/19/1974 /HERE IS #N 34550 044013 7 BL2HSN: LDA BLPECE X /GET PIECE # 34551 017301 7 SUB BLSPCN /SAME AS EXPECTED? 34552 100040 7 SZE 34553 003614 7 JMP BL2HSM /NO, CHECK FOR MISSING HERE IS 34554 025301 7 IRS BLSPCN /YES, INCREMENT PIECE # 34555 005657 7 LDA (2) /SET SINK JAM FLAG 34556 011277 7 STA BLSNKJ /TO DO NOTHING 34557 005276 7 LDA BLSNKF /GET SINK FLAG 34560 100100 7 SLZ /MM BIT ON? 34561 003602 7 JMP BL2MGM /YES, DO MAGIC MODEM STUFF 34562 044014 7 LDA BLMACH X /NO, GET # OF CORE WORDS 34563 013660 7 ERA (BLWRDS) 34564 140407 7 TCA /SET NEGATIVE 34565 011304 7 STA BLSTMC /FOR LOOP COUNT 34566 044015 7 LDA BLADDR X /GET ADDRESS FOR CODE 34567 011303 7 STA BLSTMP /AND SAVE IN CORE WORD POINTER 34570 004000 7 LDA 0 /FORM PTR TO CODE IN BUFFER 34571 015661 7 ADD (BLADDR+1) 34572 010000 7 STA 0 34573 044000 7 BL2HSL: LDA 0 X /GET WORD FROM BUF 34574 111303 7 STA BLSTMP I /STORE WORD IN CORE 34575 024000 7 IRS 0 /BUMP PTR 34576 025303 7 IRS BLSTMP 34577 025304 7 IRS BLSTMC /AND COUNT 34600 003573 7 JMP BL2HSL /LOOP 34601 003502 7 JMP BL2EXT /EXIT 34602 040467 7 BL2MGM: LGR 11 0"A"BLLINO /GET MODEM # 34603 015651 7 ADD (-1) /STARTING FROM 0 34604 100400 7 SPL /IS IT <0? 34605 003502 7 JMP BL2EXT /YES, TEST TRANSMISSION ONLY 34606 066004 7 IMA BLSCNT X /SAVE, REDUCE SIZE OF DATA 34607 017662 7 SUB (BLADDR-1) 34610 066004 7 IMA BLSCNT X 34611 026000 7 IMA 0 /RESTORE MODEM # IN X, GET BUF PTR 34612 015661 7 ADD (BLADDR+1) /BEGINNING OF DATA 34613 103450 7 JMP BL2COR I /NON-SKIP RETURN 34614 100400 7 BL2HSM: SPL /PIECE # < CURRENT? 34615 003502 7 JMP BL2EXT /YES, IGNORE 34616 005277 7 BL2HSB: LDA BLSNKJ /GET SINK JAM FLAG 34617 101400 7 SMI /IS IT TIMING OUT ON RESET ALREADY? 34620 140040 7 CRA /NO, SET TO OUTPUT PLEASE #N 34621 011277 7 STA BLSNKJ /RESTORE 34622 003502 7 JMP BL2EXT /EXIT ^L PAGE 291 IMP,3147,IMP 4:35 PM 7/19/1974 /SLOW TIMEOUT ROUTINE FOR BLOCKS 34623 000000 7 BLSLTO: 0 34624 005276 7 LDA BLSNKF /GET SINK OPEN FLAG 34625 101400 7 SMI /CLOSED? 34626 025302 7 IRS BLSTMO /NO, BUMP TIMER 34627 003632 7 JMP BLSLT1 /YES, OR TIMER DIDN'T KICK 34630 005651 7 LDA (-1) /TIMED OUT, CLOSE SINK 34631 011276 7 STA BLSNKF 34632 005264 7 BLSLT1: LDA BLFNTF /REPEAT FOR FONT 34633 101400 7 SMI 34634 025270 7 IRS BLFTMO 34635 103623 7 JMP BLSLTO I 34636 005651 7 LDA (-1) 34637 011264 7 STA BLFNTF 34640 103623 7 JMP BLSLTO I /RETURN /FAST TIMEOUT ROUTINE FOR BLOCKS 34641 000000 7 BLFSTO: 0 34642 005277 7 LDA BLSNKJ /GET SINK JAM FLAG 34643 100400 7 SPL /IN RESET MODE? 34644 025277 7 IRS BLSNKJ /YES, BUMP TIMER 34645 101000 7 NOP /NO, OR TIMER DIDN'T KICK 34646 103641 7 JMP BLFSTO I /RETURN 34647 000001 C LEV CON CONSTANTS 34650 177755 C 34651 177777 C 34652 177642 C 34653 177776 C 34654 177706 C 34655 103463 C 34656 040013 C 34657 000002 C 34660 000077 C 34661 000016 C 34662 000014 C 02532 176672 C PAGEND 34,UNCON,7 ^L PAGE 292 IMP,3147,IMP 4:35 PM 7/19/1974 LEV CON 02533 170004 C PAGEND 35,-0 TNB=NBUFS-1 P35FB=FB P35NB=NB 02534 170012 C PAGEND 36,-0 TNB1=NBUFS P36FB=FB P36NB=NB 02535 170020 C PAGEND 37,-0 P37NB=NB-1 /ALLOW FOR SAT CODE P37FB=FB LSTB=FB+P37NB"T"BUFL R 1IF VP 0 0 LSTB-2-P37LST,P37NB=P37NB-1 NMAXS=4"T"CH 100001/ TNB1+0+P37NB .ASCII / TOTAL BUFFERS"Z"/ 100001/ TNB .ASCII / TOTAL BUFFERS IF VDH PRESENT"Z"/ 100001/ NMAXS .ASCII / STORE AND FORWARD LIMIT"Z"/ 100001/ 0 0 [0 0 [NBUFS-NMAXS+10]"Q"10]"T"10+2 .ASCII / REASSEMBLY LIMIT"Z"/ 100001/ NITB .ASCII / IMP-TIP CONVERSION REGISTERS"Z"/ 100001/ NSTATS .ASCII / STATISTICS GATHERING PLACES"Z"/ ^L PAGE 293 IMP,3147,IMP 4:35 PM 7/19/1974 LEV INI /NOW FIX CHECKSUMS FOR LOAD TIME TMESS/ /THIS IS ZEROED AT INIT 32405 000011 0 DXA 32406 003407 0 JMP .+1 32407 140040 0 CRA 32410 010000 0 STA 0 32411 033435 0 CK.ONE: STX CK.IX 32412 044020 0 LDA CK.TAB X /GET NEXT CKSUM AREA 32413 101040 0 SNZ /DONE? 32414 002135 0 JMP DDT /YES 32415 015436 0 ADD (X) /MAKE POINTER 32416 011434 0 STA CK.PTR 32417 173437 0 LDX (CK.CNT 0 X) I /COUNT 32420 140040 0 CRA 32421 115434 0 ADD CK.PTR I /ADD WORDS 32422 024000 0 IRS 0 32423 003421 0 JMP .-2 32424 140407 0 TCA /MAKE CHECKSUM 32425 073435 0 LDX CK.IX 32426 150020 0 STA CK.TAB XI /AND STORE IT 32427 024000 0 IRS 0 32430 003411 0 JMP CK.ONE /DO NEXT CHECKSUM 32431 177723 0 CK.CNT: I2MCK1-0-I2MCK2 32432 177335 0 RSTCK1-0-RSTCK2 32433 177614 0 RTCLK1-0-RTCLK2 32434 0 CK.PTR: BSS 1 32435 0 CK.IX: BSS 1 32436 040000 0 CONSTANTS 32437 072431 0 20/ 00020 012366 0 CK.TAB: I2MCK2 00021 026552 0 RSTCK2 00022 027204 0 RTCLK2 00023 000000 0 0 ^L PAGE 294 IMP,3147,IMP 4:35 PM 7/19/1974 R 1IF P,[ /LOTS OF EXPUNGES EQUALS E,EXPUNGE E TIT,TTT,TST,TAT,THEAD,TQUE,TDONE E RID,RMAX,REAS,RSF E HSTMOD,INPCHN E ODEVEN,QUADAC,CHANUM,ACKBTS E MESSNO,ONEOR8,REQALL,RFNM,ORDNO,INCTRN,TRNREP,GVBALL,ALLOC E SNDCOR,RUTIMP,STUBIT,IHERDU,GETCOR,NULPKT E PRIBIT,FORIMP,TRACE,FOROCT,PKTN0,PKTN1,REPDED,DESTH,DEST E LSTPKT,FRMIMP,FRMOCT,IHCODE,HICODE,ENDBIT,SRCEH,SRCEI,SRCE E LINKNO,SUBCOD E MESSNO,MESS1,MSTO2,MSTO1,ORDNO,MESBTS E MESSNO,ORDNO,MESBTS E SRCEI E PPT0,PPT1,RETRAN E FHPTTY,FHPDDT,FHPTRC,FHPPRM,FHPSTS,FHPDIS,FHPCOR,FHPBLK E PLT0,PLT1,PLT2,PLT3 E CLRT1,CLRT2,CLRT3,CLRT4,CLRTX E CORBUF,CORIBF,CORPUT,CORTO1,CORTO2,CORMOD,CORCNT,CORHED,LO E TA1,TX1,TK1,TASKIN,ACKBIT,OURL,OURP,I2MSLT,I2MBIT,ACKCH,AC E E123,SPB,STB,ITB,IMB,NEIT,TSKTF E MESTAB,MESNUM,MESBIT,PKTN,MESSID,ORB,ORS,TEND,READY,READYE E ACK1,ACK2,ACK3,ACK4,ACK5,ACK6,ACK7 E OWGY,OWGA,OWGS,OWGT E TOK,TOT,TOA,TOCK,TOX,TOC,TOMK,TOM,TOS E DDSA,DDA3,DDA4,DOTI,DDA5,DCLR,LF,CLSE,LSE,DDTDIS,SS4ON E RUB,RUB1,RUB2,PAR1,PRS,SYL,LAST,PT,OPEN,DLO,DHI,VAL,CNT E SX,CHARIN,BBNF,DDSAX,LDIN,LDOT,CRLF,TAB,GP,DSNZ,GP1,CSL,LS E DIG,DIG1,DIG2,DECIN,EQS,PLUS,MIN,PTOP,STAR,BARR,BOP,TOP E DOTW,DOTA,DOTB,DOTX,DCNT E QT1,QT2,QT3,QT4 E QPCR,QPOP,QPTB,QPND,QPAC,QPC1,QPC2 ] START ^L PAGE 295 IMP,3147,IMP 4:35 PM 7/19/1974