PAGE 1 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /IMP SYSTEM - IMP/TIP COMPATIBLE. PRINTX "NETWORK VERSION 2514 " 00105 002514 VERS/ 2514 PAGE 2 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /516 OPCODES ACA=141216 ADD=14000 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 SCB=140600 SKP=100000 SLN=101100 SLZ=100100 SMI=101400 SNZ=101040 SPL=100400 SRC=100001 SR1=100020 SR2=100010 SR3=100004 SR4=100002 SSC=101001 SSM=140500 SSP=140100 SSR=100036 SSS=101036 SS1=101020 SS2=101010 SS3=101004 SS4=101002 STA=10000 STX=32000 SUB=16000 SZE=100040 TCA=140407 PAGE 3 IMPSYS,2514,IMP 6:49 PM 12/22/1971 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^A77 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 DEFINE DAC TAG 0 0 TAG TERMINATE IRP [NAME,,ABS,CF1,CF4,CF5,LOAD,MOR,REL,DBP,BCI,EXD,LXD,SETB, LIST,EJCT,NLST,CALL,XAC,SUBR,BES,EQU] DEFINE NAME REPEAT 0IF P,PRINT /INVALID PSEUDO-OP: NAME/ TERMINATE ENDIRP X=40000 I=100000 XI=140000 IX=140000 PAGE 4 IMPSYS,2514,IMP 6:49 PM 12/22/1971 DEFINE BSS N 200000 0 0 . N-1/ TERMINATE DEFINE BSZ N REPEAT 0+0+N,0 TERMINATE DEFINE OCT ARGLIST/TEMSYM TEMSYM=10 OCTAL IRP [N,,ARGLIST] N ENDIRP REPEAT 1IF VZ TEMSYM-10., DECIMAL EXPUNGE TEMSYM TERMINATE DEFINE DEC ARGLIST IRP [N,,ARGLIST] N'. ENDIRP TERMINATE DEFINE ORG N 0+0+N/ TERMINATE PZE=0 PAGE 5 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /SKS'S, OCP'S, ETC FOR PRODUCTION MACHINES IRP [NUM,,1,2,3,4,5] M'NUM'OUT=OCP 7'NUM M'NUM'UNXP=OCP 17'NUM M'NUM'LXP=OCP 27'NUM M'NUM'IXP=OCP 37'NUM M'NUM'IN=OCP 47'NUM M'NUM'ERR=SKS 47'NUM M'NUM'INIL=63 NUM M'NUM'OTIL=70 NUM M'NUM'INBP=16 NUM NUM M'NUM'OTBP=30 NUM NUM ENDIRP IRP [NUM,,1,2,3] H'NUM'ROUT=OCP 100-[10^TNUM] H'NUM'IN=OCP 200-[10^TNUM] H'NUM'FOUT=OCP 300-[10^TNUM] H'NUM'XP=OCP 400-[10^TNUM] H'NUM'UNXP=OCP 500-[10^TNUM] H'NUM'ENAB=OCP 600-[10^TNUM] H'NUM'ERR=SKS 100-[10^TNUM] H'NUM'RDY=SKS 200-[10^TNUM] H'NUM'EOM=SKS 300-[10^TNUM] H'NUM'FULL=SKS 500-[10^TNUM] H'NUM'OTIL=75 NUM H'NUM'INIL=77 NUM H'NUM'OTBP=42 NUM NUM H'NUM'INBP=46 NUM NUM ENDIRP 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 PAGE 6 IMPSYS,2514,IMP 6:49 PM 12/22/1971 CLKON=OCP 40 CLKOFF=OCP 1040 RDCLOK=INA 1040 CLOKIL=102 TASK=OCP 41 TASKIL=103 WDT=OCP 26 WDTIL=62 PFIL=60 LITES=OTA 26 RDIMPN=INA 1041 AMIMLC=SKS 42 AMI516=SKS 26 PAGE 7 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /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 TTTNA=INA 4 TTINB=INA 204 TTINAC=INA 1004 TTINBC=INA 1204 TTOTA=OTA 4 TTOTB=OTA 204 RDRON=OCP 1 RDROFF=OCP 101 RDRRDY=SKS 1 RDRIN=INA 1 RDRINC=INA 1001 PUNON=OCP 2 PUNOFF=OCP 102 PUNRDY=SKS 2 PUNENB=SKS 102 PUNOUT=OTA 2 PAGE 8 IMPSYS,2514,IMP 6:49 PM 12/22/1971 EQUALS EX,EXPUNGE EQUALS R,REPEAT EQUALS EI,ENDIRP EQUALS D,DEFINE EQUALS T,TERMINATE EQUALS P,PRINTX EQUALS PR,PRINT /MACRO TO PRINT OUT ITS ARG - IN OCTAL - 6 COLUMNS D PNTNUM NUM/A,B,C A=NUM C=0 IRP [F,,100000,10000,1000,100,10,1] B=0 0 A^QF A=0 0 A^RF C=C+0+F^R10 R 1IF VZ B,[R 1IF VZ C,P " " R 0IF VZ C,P "0"] R 0IF VZ B,[C=1 R 0IF VP B-4,[R 1IF VZ B-1,P "1" R 1IF VP B-2,[R 1IF VZ B-2,P "2" R 1IF VZ B-3,P "3"]] R 1IF VP B-4,[R 0IF VP B-6,[R 1IF VZ B-4,P "4" R 1IF VZ B-5,P "5"] R 1IF VP B-6,[R 1IF VZ B-6,P "6" R 1IF VZ B-7,P "7"]]] EI EX A,B,C T PNTNUM PAGE 9 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /MACROS TO TYPE OUT INTERESTING LOCATIONS D DEFPLC QQ R 1IF P,DEFPL1 QQ T DEFPLC D DEFPL1 RR,SS/TT,UU TT=0 0 . D UU SS TT/ PR "RR" T UU D DEFPLC QQ DEFPL1 QQ,UU T DEFPLC T DEFPL1 D DMPPLC R 1IF P,[ D DEFPL1 RR,SS SS T DEFPL1 P " USEFUL LOCATIONS " DEFPLC ] T DMPPLC PAGE 10 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /MACROS TO SET UP STATISTICS TABLES NSTATS=0 MAXSTAT=25. /CALL DEFSTAT , D DEFSTAT A,B/C,F C=0 0 . F=A A R 1IF P,[ SW1+NSTATS/ B SB1+NSTATS/ C SC1+NSTATS/ F C+1/ ] NSTATS=NSTATS+1 R 1IF VP NSTATS-MAXSTAT,[ PR "TOO MANY STATISTICS" NSTATS=NSTATS-1 ] EX C,F T DEFSTAT /ARRIVAL STATISTIC LOCATION D DEFARV INST/A,B A=0 0 . B=INST INST R 1IF P,[ ARVLOC/ A ARVINS/ B A+1/ ] EX A,B T DEFARV PAGE 11 IMPSYS,2514,IMP 6:49 PM 12/22/1971 NBUFS=0 /MACROS TO COLLECT FREE SPACE D PAGEND A/E,B,F R 1IF P,[ E=. F=E R 0IF VZ [0 0 A^T1000] 0-[0 0 E^A177000],E=0 0 A^T1000 777 B=0 0 [0 0 E^A177000+1000-E]^Q75. ENDPAG=B^T75.+0+E PNTNUM ENDPAG PNTNUM B NBUFS=NBUFS+B 0 0 SPAR A/ E R 0IF VZ 0 0 E-F,B=1 R 0IF VZ B,[ P " " PNTNUM F] P " " ] EX E,B,F T PAGEND D PATCHEND R 1IF P,[ PNTNUM . PNTNUM 0 P " " ] T PATCHEND D CORBLK LOW,HI/A,B R 1IF P,[ A=0 0 [HI+1]^T1000-ENDPAG B=A^Q75. P " " PNTNUM B P " " PNTNUM 0 0 ENDPAG P " =>" PNTNUM 0 0 ENDPAG+B^T75. P " " SPAR+LOW/ R HI-LOW+1,0 NBUFS=NBUFS+B ] EX A,B T CORBLK PAGE 12 IMPSYS,2514,IMP 6:49 PM 12/22/1971 R 1IF P,[ SPAR/ R 24.,[ 0 0 [.+1-SPAR]^T1000-1 ] P " PATCH BUFFS BOT " 14166 000777 ] 14167 001777 14170 002777 14171 003777 14172 004777 14173 005777 14174 006777 14175 007777 14176 010777 14177 011777 14200 012777 14201 013777 14202 014777 14203 015777 14204 016777 14205 017777 14206 020777 14207 021777 14210 022777 14211 023777 14212 024777 14213 025777 14214 026777 14215 027777 PAGE 13 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /MACROS FOR IMP/TIP INITIALIZATION NITB=0 MAXITB=20. /CALL TIPDEF , D TIPDEF A,B/X,Y,Z X=0 0 . Y=A A Z=B R 1IF P,[ ITBLOC+NITB/ X ITBIMP+NITB/ Y ITBTIP+NITB/ Z X+1/ ] NITB=NITB+1 R 1IF VP NITB-MAXITB,[ PR "TOO MANY IMP/TIP INSTRS" NITB=NITB-1 ] EX X,Y,Z T TIPDEF R 1IF P,[ ITBLOC/ R MAXITB,[ 1 ] 02604 000001 ] 02605 000001 02606 000001 02607 000001 02610 000001 02611 000001 02612 000001 02613 000001 02614 000001 02615 000001 02616 000001 02617 000001 02620 000001 02621 000001 02622 000001 02623 000001 02624 000001 02625 000001 02626 000001 02627 000001 PAGE 14 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /*** START OF COMMON STORE ORG 105 CH=5 NIMP=32. NH=4 /NUMBER OF HOSTS FH=4 /# FAKE HOSTS TH=FH+NH LRUT=NIMP+8 /LENGTH OF A ROUTE MESSAGE PTRA=1 /POINTER FOR CHAINING ACKNOWLEDGES PTRT=2 /POINTER TO TRACE TABLE IT=3 /INPUT TIME ST=3 /OUTPUT TIME INCH=4 /INPUT CHANNEL USED=5 /100000 MEANS PACKET ON EXACTLY 1 QUEUE ACKH=6 /ACKNOWLEDGE HEADER HEAD=7 /HEADER (4 WORDS) CNTL=9 /HOST/IMP CONTROL WORD DATA=11. /MESSAGE DATA (63 WORDS) BUFE=74. /BUFFER CONTROL WORD FOR END OF PACKET 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 OUEUE TDON=10. /TRACE DONE (100000=DONE,140000=RETRANSMIT) RID=1 /REASSEMBLY IDENTIFICATION RID1=2 /REASS. ID. CONT. RSF=3 /REASSEMBLY PACKETS IN SO FAR RMAX=4 /REASSEMBLY PACKETS MAXIMUM THIS MES RTMO=5 /REASSEMBLY TIMEOUT TIME REAS=6 /POINTERS TO THE 8 PACKETS OF THI, M MESS=202 /TO ACCESS MESSAGE TABLES NAPL=4 /NUMBER OF ACTUAL PHONE LINES PBUFS=NAPL+NH+FH+1 /NUMBER OF PERMANENTLY ASSIGNED B',F PAGE 15 IMPSYS,2514,IMP 6:49 PM 12/22/1971 CLOK=1040 /INA CLOCK TASK=041 /OCP SET TASK INTERRUPT INTM=120 /SMK TO SET THE PRIORITY INTERRUPT M TTSI=004 /TELETYPE SET INPUT MODE TTSO=104 /TELETYPE SET OUTPUT MODE TTSR=004 /SKIP IF TTY READY TTNB=104 /SKIP IF TTY NOT BUSY TTIN=1004 /TELETYPE DO AN IN IF READY TTOT=004 /TELETYPE DO AN OUT IF READY JUNK=1 NRT1=15000 NRT2=0+0+NRT1+LRUT NRT3=0+0+NRT2+LRUT NRT4=0+0+NRT3+LRUT NRT5=0+0+NRT4+LRUT DORG=16000 /ORIGIN OF DDT Q=16000 PAGE 16 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / CONSTANTS - THESE FIRST FEW MUST NOT MOVE 00105 VERS: BSS 1 /VERSION NUMBER 00106 000000 MINE: OCT 0 /MY IMP NUMBER 00107 OBIT: BSS 2 /BIT SHIFTED OVER "MINE" PLACES 00111 CBIT: BSS 2 /COMP OF OBIT 00113 100000 SIGN: OCT 100000 00114 000001 ONE: OCT 1 00115 000000 ZERO: OCT 0 00116 177773 MICH: DAC -CH 00117 RSFLAG: BSS 1 /FLAG TO DETECT WDT TIMOUTS AND REL( 00120 PRIM: BSS 1 /PRIORITY INTERRUPT MASK /END OF CONSTANTS WHICH MAY NOT MOVE 00121 000077 MSKR: OCT 77 /MASK FOR HOST # 00122 MAXS: BSS 1 /MAX NUMBER OF S/F PACKETS 00123 MAXR: BSS 1 /MAX NUMBER OF REASSEMBLY PACKETS 00124 001006 MINF: 1006 /MIN NUMBER OF PKTS ALLOWED ON FREE 00125 000441 FREP: DAC FREE /POINTER TO FREE 00126 015000 NRT: DAC NRT1 /NEIGHBORS' ROUTE TABLES 00127 015050 DAC NRT2 00130 015120 DAC NRT3 00131 015170 DAC NRT4 00132 015240 DAC NRT5 00133 ARVLOC: BSS 1 /WHERE ARRIVAL STATS ARE TAKEN 00134 ARVINS: BSS 1 /INSTRUCTION WHICH IS REPLACED 00135 020212 ARVTAK: ARST /WHERE TO GO FOR STAT 00136 017400 MKSK: 17400 /THESE ARE FOR THE LINK CYCLER 00137 000010 IGTH: 10 00140 030000 PLAC: 30000 /THIS MUST POINT TO A TABLE AREA 00141 000760 LIMT: 760 00142 OTIM: BSS 1 PAGE 17 IMPSYS,2514,IMP 6:49 PM 12/22/1971 00143 013645 MEST: MMF /INDITECT POINTER TO TRANSMIT MES"AG 00144 013343 MESR: NNF /IND. ^ TO RECEIVE MESS. TABLE 00145 000000 LEPI: PZE /ENTRY TO ONE WORD PUT 00146 102147 JMP .+1 I 00147 001406 DAC OWP 00150 006000 FLUS: FLU /FLUSH BUFFER 00151 012206 IRST: RSTX+1 /PTR TO RUT SEND TABLE 00152 052257 IXRSMS: RSTX+LRUT+2 X /PTR TO COMPUTE CHECK SUM VIA 00153 052247 IDHT: DHT 0 X /INDEXED PTR TO DEAD HOST TABLE 00154 014276 QGET: GETQ /GET FROM A QUEUE 00155 006325 II2M: RES /INITIALIZE I2M 00156 013053 AMTA: NNS1 /ACCESS MESSAGE TABLE TRANSMIT AND A 00157 013000 AMT: NNS /ACCESS MESSAGE TABLE TRANSMIT 00160 013121 MMTO: NNS2 /MESSAGE TABLE TIMEOUT 00161 017035 LDIN: DIN /DDT INPUT 00162 017167 LDOT: DOUT /DDT OUTPUT CHARACTER 00163 016000 LRET: DCLR /DDT ENTRANCE 00164 BBNF: BSS 1 /NON ZERO IF DDT MSG IS FROM BBN 00165 017602 MMII: NNI /INIT MESSAGE TABLES 00166 011071 TOII: TOI /INIT TIMEOUT 00167 004464 TSTO: TKTO /TASK-TIMEOUT ROUTINE 00170 005352 JAM: GAM /GIVE ONE FAKE HOST WORD 00171 002326 DOZE: BKX /JAM WAIT 00172 005304 SUCK: SUC /GET ONE FAKE HOST WORD 00173 002332 WAIT: BKW /SUCK WAIT 00174 010030 FIHE: IHSB /I TO H ENTRY 00175 012410 OWG: OWGE /ONE WORD GET 00176 012540 FHIE: HISB 00177 011316 HSTCHK: HSTDED 00200 QT: BSS 1 00201 QT5: BSS 1 00202 QT6: BSS 1 PAGE 18 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / VARIABLES WHICH START OUT WITH VALUE ZERO 00203 000000 TTO: PZE /TRACE TABLE OVERFLOW 00204 000000 TIME: PZE /TIME AS COUNTED BY THE TIMEOUT R"!] 00205 SLT: BSS CH /SEND LINE TEST IF NOT ZERO 00212 SIHY: BSS CH /SEND I HEARD YOU IF NOT ZERO 00217 DSRC: BSS 2 /DDT - LEADER FROM LAST FAKE HOST O! 00221 DDTI: BSS 1 /DDT INTERRUPT FLAG 00222 OVRDF: BSS 1 /SS4 IS OVERRIDDEN IF THIS IS NON-ZF DEFPLC [HOST & MODEM INTERFACE CONTROL] 00223 HTPAR: BSS 1 /MODEM TEST FLAG 00224 IHM: BSS 1 /IH MASK 00225 HIM: BSS 1 /HI MASK 00226 MOM: BSS 1 /MODEM OUT MASK DEFPLC [RUT] 00227 RUT: BSS NIMP /ROUTE USE TABLE 00267 TDHT: BSS 8 /TRANSITION DEAD HOST TABLE 00277 HDHT: BSS 8 /HOST'S DEAD HOST TABLE / TABLE OF STATISTICS PARAMETERS DEFPLC [PARAMTERS TABLE] 00307 TRON: BSS 1 /0-TRACE ON 00310 SNON: BSS 1 /1-SNAP ON 00311 SON: BSS 1 /2-10 SEC STATISTICS ON 00312 MGON: BSS 1 /3-MESSAGE GENERATOR ON 00313 TPON: BSS 1 /4-TROUBLE REPORT ON 00314 BSS 1 /5-SPARE 00315 SAON: BSS 1 /6-ARRIVAL STATISTICS ON (AND CHANNF 00316 TLNK: BSS 1 /7-TRACE LINK 00317 SNLK: BSS 1 /10-SNAP LINK 00320 SLNK: BSS 1 /11-10 SEC LINK 00321 MGLK: BSS 1 /12-MESS GEN LINK 00322 SALK: BSS 1 /13-ARRIVAL LINK 00323 LTRB: BSS 1 /14-TROUBLE REPORT LINK 00324 TDST: BSS 1 /15-TRACE DEST 00325 SND: BSS 1 /16-SNAP DEST 00326 SDST: BSS 1 /17-10 SEC DEST 00327 MGD: BSS 1 /20-MESS GEN DEST 00330 SAD: BSS 1 /21-ARRIVAL DEST 00331 DTRB: BSS 1 /22-TROUBLE REPORT DEST 00332 MGNF: BSS 1 /23-MESS GEN FREQUENCY 00333 TF: BSS 1 /24-AUTOTRACE FREQUENCY 00334 MGNL: BSS 1 /25-MESS GEN LENGTH 00335 ELIM: BSS 1 /26-TROUBLE REPORT ERROR LIMIT 00336 BSS TRON+32.-. 00346 BSS 2 /SPACE TO PLAY WITH PAGE 19 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / VARIABLES WHICH START OUT WITH VALUE ONE 00350 LAC: BSS CH /LINE ALIVE COUNT 00355 LINE: BSS CH /LINE DEAD*ALIVE STATUS 00362 NONE: BSS CH /MODEM RESTART / VARIABLES RESET TO SOME NON ZERO VALUE DEFPLC [NICE-STOP AND RELOAD FLAG] 00367 177777 SW3FG: OCT 177777 PAGE 20 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / OUEUE START POINTERS: EMPTY QUEUE MUST HAVE ZERO 00370 SHQ: BSS NH /HOST NORMAL 00374 BSS FH /FAKE HOSTS 00400 SHPQ: BSS TH /HOST PRIORITY 00410 SSQ: BSS CH /SENT 00415 SAQ: BSS CH /ACKNOWLEDGE 00422 SOQ: BSS CH /OUTPUT 00427 SPQ: BSS CH /PRIORITY 00434 SRFQ: BSS CH /RFNM 00441 000000 FREE: 0 /FREE BUFFERS 00442 000000 TTF: 0 /FREE TRACE 00443 000000 RASF: 0 /FREE REASSEMBLY BLOCKS 00444 000000 STQF: 0 /TASK FAST 00445 000000 STQM: 0 /TASK MEDIUM 00446 000000 STQS: 0 /TASK SLOW 00447 000000 SRQ: 0 /RETRANSMIT 00450 SHWQ: BSS NH+1 /HOST WORD 00455 000000 SHBQ: 0 /HOST ONE WORD BUFFERS 00456 000000 SHRQ: 0 /REASSEMBLY BLOCKS 00457 000000 STRQ: 0 /TRACE BLOCKS / OUEUE END POINTERS - THESE CORRESPOND TO THE START / ADDRESS 00460 EHQ: BSS NH 00464 EFHQ: BSS FH 00470 EHPQ: BSS TH 00500 ESQ: BSS CH 00505 EAQ: BSS CH 00512 EOQ: BSS CH 00517 EPQ: BSS CH 00524 ERFQ: BSS CH 00531 BSS 3 00534 000000 ETQF: 0 00535 000000 ETQM: 0 00536 000000 ETQS: 0 00537 000000 ERQ: 0 00540 EHWQ: BSS NH+1 00545 BSS 3 /SOME SPARE ROOM PAGE 21 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / QUEUE COUNTERS: ADD ONE WHENEVER A PACKET IS ADDED TO TH* Q / THESE ITEMS CORRESPOND TO THE QUEUE START POINTERS ABOV 00550 NHA: BSS NH 00554 NFHA: BSS FH 00560 BSS TH 00570 NSA: BSS CH 00575 NAA: BSS CH 00602 NOA: BSS CH 00607 NPA: BSS CH 00614 NRFA: BSS CH 00621 000000 NFA: 0 /THE ORDER OF THE NEXT TWO MATTER 00622 000000 NSFA: 0 00623 000000 NREA: 0 00624 THIS: BSS 1 /TASK BUFFER 00625 NXTR: BSS 1 /HOST NUMBER FOR MESSAGE TABLE 00626 NHEX: BSS 1 /REC MESS # 00627 000000 NRA: 0 00630 BSS NH+1 /SPARE ROOM! 00635 THD: BSS 1 /CHANNEL TO MAX IMP 00636 TWDP: BSS 1 /SECOND WORD IN ONE WORD QUEUE PUT 00637 TWDG: BSS 1 /SECOND WORD IN ONE WORD QUE UE G-T / QUEUE COUNTERS: ADD ONE WHENEVER A PACKET IS REMOVED FROM T / THESE ITEMS CORRESPOND TO THE QUEUE START POINTERS A"OV 00640 NHS: BSS NH 00644 BSS FH 00650 BSS TH 00660 NSS: BSS CH 00665 NAS: BSS CH 00672 NOS: BSS CH 00677 NPS: BSS CH 00704 NRFS: BSS CH 00711 000000 NFS: 0 00712 000000 NSFS: 0 00713 000000 NRES: 0 00714 000000 SYNC: PZE /TIME FOR STATISTICS ROUTINES 00715 TPEE: BSS 1 00716 TTFG: BSS 1 /TTY COMMUNICATION SWITCH 00717 000000 NRS: 0 00720 HIHD: BSS TH /OUR HOST SAYS HE IS DEAD /MUST FILL Q COUNTER SPACE WITH 0-STORAGE!!! /LENGTHS OF PIECES OF COMMON STORE LQUE=ETQF-STQF LCLR=LAC-TTO LONE=SW3FG-LAC PAGE 22 IMPSYS,2514,IMP 6:49 PM 12/22/1971 00730 MHD0: BSS 1 /DDT - TWO WORD LEADER FOR MESSAGE 00731 MHD1: BSS 1 00732 HED0: BSS 1 /DDT - DEFAULT DESTINATION 00733 HNUM: BSS 1 /ONE WORD PUT 00734 ONEW: BSS 1 00735 OWT3: BSS 1 00736 SW1: BSS MAXSTAT /ADDRESSES OF STAT GATHERING SUBRS 00767 000000 DAC 0 /END OF COMMON STORE 770/ 00770 TIPLNK: BSS 4 00774 010126 IHSP+2 00775 007130 EMFH 2 00776 012633 HITT 2 PATCHEND PAGE 23 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /WDT, POWER-FAIL, AND QUEUE PRINT /WATCHDOG TTMER AND POWER FAIL ROUTINES ORG 1000 / THESE 2 INSTRUCTIONS FOLLOW A COMPUTED SKS MODEM ERROR I" P 01000 003113 JMP LD10 01001 003031 JMP WDLUP 01002 001174 WDC4: DAC WDT1 01003 003021 JMP WDTM+1 /START HERE TO LOAD FROM THE NET 01004 003022 JMP WDLOD /START HERE TO LOAD FROM A LINE RSTR: ORG PFIL /POWER FAIL COMES HERE 00060 001005 DAC RSTR ORG RSTR 01005 000000 DAC 0 01006 030026 WDT /POKE WATCHDOG TIMER SO WE DON'T -OI 01007 005015 LDA RST0 01010 010554 STA NFHA /COPY SOME PROGRAM INTO PAGE 0 01011 005016 LDA RST2 /THESE ARE FOR WHEN THE POWER COM"S 01012 010550 STA NHA 01013 073017 LDX RST3 01014 002554 JMP NFHA /GO LOCK UP THE MACHINE 01015 000000 RST0: HLT 01016 002000 RST2: OCT '2000 01017 102550 RST3: JMP NHA I PAGE 24 IMPSYS,2514,IMP 6:49 PM 12/22/1971 WDTM: 00062 001020 WDTIL/ WDTM 01020 000000 WDTM/ 0 01021 140040 CRA /ENTER HERE FOR RANDOM RELOAD 01022 001001 WDLOD: INH /ENTER HERE WITH LINE # (1-4) IN .- 01023 030040 CLKON 01024 017671 SUB (1) 01025 041577 ALS 1 01026 010047 STA 47 01027 005207 LDA HOST34 /SAVE HOST CONFIGURATION 01030 010046 STA 46 01031 005037 WDLUP: LDA LD8 01032 010117 STA RSFLAG 01033 000201 IAB 01034 005672 LDA (-23) /DON'T LET CLOCK INTS IN 01035 000011 DXA 01036 003151 JMP CLEA 01037 001040 LD8: DAC .+1 01040 004047 LDA 47 01041 101400 SMI 01042 003046 JMP LD11 01043 131040 RDCLOK 01044 003043 JMP .-1 01045 007673 ANA (6) 01046 010000 LD11: STA 0 01047 005675 LDA ((40001)) 01050 050032 STA M1OTBP X 01051 015676 ADD (3) 01052 050033 STA M1OTBP+1 X 01053 005677 LDA (100060) 01054 050020 STA M1INBP X 01055 005700 LDA (122000) 01056 050021 STA M1INBP+1 X 01057 143141 JMP LDT I X 01060 000143 QTB3: MEST 01061 000144 MESR 01062 030071 LD1: M1OUT 01063 030471 M1IN 01064 003075 JMP LD5 01065 030072 LD2: M2OUT 01066 030472 M2IN 01067 003075 JMP LD5 01070 030073 LD3: M3OUT 01071 030473 M3IN 01072 003075 JMP LD5 01073 030074 LD4: M4OUT 01074 030474 M4IN 01075 005701 LD5: LDA (-1000.) 01076 010044 STA 44 PAGE 25 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01077 010045 LD6: STA 45 01100 024045 IRS 45 01101 003100 JMP .-1 01102 024044 IRS 44 01103 003077 JMP LD6 01104 044020 LDA M1INBP X 01105 013700 ERA (122000) 01106 100040 SZE 01107 003031 JMP WDLUP 01110 045142 LDA LDERR X 01111 010777 STA 777 01112 002777 JMP 777 01113 031040 LD10: CLKOFF 01114 004046 LDA 46 /RESTORE HOST CONFIGURATION 01115 011207 STA HOST34 01116 073702 LDX (56-104) /SAVE INTERRUPT ENTRANCES 01117 044104 LDA 104 X 01120 111703 STA (27100 0 X) I 01121 024000 IRS 0 01122 003117 JMP .-3 01123 005132 LDA LD9 01124 000201 IAB 01125 005704 LDA (-21) 01126 070042 AMIMLC 01127 005705 LDA (-1) /ENABLE ALL INTERRUPTS 01130 010117 STA RSFLAG /MARK THAT WE'VE RELOADED 01131 003151 JMP CLEA 01132 001133 LD9: DAC .+1 01133 073702 LDX (56-104) /RESTORE INTERRUPT ENTRANCES 01134 105703 LDA (27100 0 X) I 01135 050104 STA 104 X 01136 024000 IRS 0 01137 003134 JMP .-3 01140 103706 JMP (2000) I 01141 001062 LDT: DAC LD1 01142 070471 LDERR: M1ERR 01143 001065 DAC LD2 01144 070472 M2ERR 01145 001070 DAC LD3 01146 070473 M3ERR 01147 001073 DAC LD4 01150 070474 M4ERR PAGE 26 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01151 170120 CLEA: SMK 120 01152 073707 LDX (-20) 01153 005002 LDA WDC4 01154 050104 STA 104 X /RESET ALL INTERRUPT ENTRANCES 01155 024000 IRS 0 01156 003154 JMP .-2 01157 073710 LDX (-2) /MUST UNPATCH TWICE !? 01160 030171 WDT2: M1UNXP 01161 030172 M2UNXP 01162 030173 M3UNXP 01163 030174 M4UNXP 01164 030175 M5UNXP 01165 030470 HUNXPT: H1UNXP /THESE MUST BE IN ORDER!! 01166 030460 H2UNXP 01167 030450 H3UNXP 01170 030451 H4UNXP 01171 024000 IRS 0 01172 003160 JMP WDT2 01173 021174 JST WDT1 /AND WAIT 01174 000000 WDT1: DAC 0 /NULL INTERRUPT ENTRY 01175 000011 DXA 01176 000401 ENB 01177 073711 LDX (0) 01200 024000 IRS 0 01201 003200 JMP .-1 01202 000201 IAB 01203 026000 IMA 0 01204 170120 SMK 0120 /NOW WE BLOCK ALL FUTURE INTERRUP*S 01205 001001 INH 01206 042000 JMP 0 X 01207 000001 HOST34: 1 /0 FOR 5 MODEMS [FIX NAPL TOO] />0 FOR 4 MODEMS, 3 HOSTS /<0 FOR 3 MODEMS, 4 HOSTS /USE >0 FOR TIP/MLC PAGE 27 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /**** QUEUE PRINT ***** 01210 016000 QMBP: DAC Q /QUEUE, MESSAGE TABLE AND BUFFER -RI DEFPLC [QUEUE PRINT] 01211 021215 JST QP0 /PRINT QUEUES 01212 021273 QP9: JST QPS /PRINT RANDOM BUFFERS 01213 021345 QP10: JST QPQT /PRINT MESSAGE TABLE 01214 103210 QP11: JMP QMBP I NQUES=ETQS+0-STQS 01215 001212 QP0: QP9 01216 121402 JST QPCR I 01217 005712 LDA (-NQUES) 01220 010200 STA QT 01221 072200 QP2: LDX QT 01222 044460 LDA SHQ+NQUES X 01223 100040 SZE 01224 003235 JMP QP1 01225 004000 LDA 0 01226 017713 SUB (RASF+0-EHQ) /THIS QUEUE HAVE A COUN-? 01227 101400 SMI 01230 003270 JMP QP6 /NO 01231 044640 LDA NHA+NQUES X /QUEUE EMPTY? 01232 056730 SUB NHS+NQUES X 01233 101040 SNZ 01234 003270 JMP QP6 /YES 01235 005714 QP1: LDA (-6) 01236 010202 STA QT6 01237 004000 LDA 0 01240 015715 ADD (SHQ+NQUES) 01241 010201 STA QT5 01242 121405 JST QPAC I 01243 003252 JMP QP3 01244 104201 QP4: LDA QT5 I 01245 101040 SNZ 01246 003256 JMP QP5 01247 121403 JST QPTB I 01250 104201 LDA QT5 I 01251 121404 JST QPOP I 01252 104201 QP3: LDA QT5 I 01253 010201 STA QT5 01254 024202 IRS QT6 01255 003244 JMP QP4 01256 121403 QP5: JST QPTB I 01257 072200 LDX QT 01260 044550 LDA EHQ+NQUES X 01261 121404 JST QPOP I 01262 121403 JST QPTB I 01263 072200 LDX QT 01264 044640 LDA NHA+NQUES X 01265 056730 SUB NHS+NQUES X 01266 121404 JST QPOP I 01267 121402 JST QPCR I 01270 024200 QP6: IRS QT 01271 003221 JMP QP2 01272 103215 JMP QP0 I PAGE 28 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01273 001213 QPS: QP10 /PRINT RANDOM BUFFERS 01274 005716 LDA (-4) 01275 010200 STA QT 01276 072200 QPS4: LDX QT 01277 045341 LDA QTB1+4 X /NUMBER OF BUFFERS OF THIS TYPE 01300 010201 STA QT5 01301 045345 LDA QTB2+4 X /FIRST BUFFER OF THIS TYPE 01302 010202 STA QT6 01303 072202 QPS3: LDX QT6 01304 044000 LDA 0 X 01305 101040 SNZ /BUFFER THERE? 01306 003327 JMP QPS7 /NO 01307 121402 JST QPCR I 01310 004202 LDA QT6 01311 007717 ANA (37777) 01312 121404 JST QPOP I 01313 121403 JST QPTB I 01314 072202 LDX QT6 01315 004202 LDA QT6 01316 101400 SMI /BEGINNING OR END OF BUFFER? 01317 003325 JMP QPS5 01320 044001 LDA 1 X /PTR IS TO END OF BUFFER 01321 140100 SSP 01322 017720 SUB (112) 01323 024202 IRS QT6 /SUCH PTRS ARE IN ALTERNATE REGS, 01324 100000 SKP 01325 044000 QPS5: LDA 0 X 01326 121404 JST QPOP I 01327 024202 QPS7: IRS QT6 01330 024201 IRS QT5 01331 003303 JMP QPS3 01332 024200 IRS QT 01333 003276 JMP QPS4 /GET NEXT TYPE OF BUFFER 01334 103273 JMP QPS I 01335 177770 QTB1: -TH /NUMBER OF BUFFERS TO LOOK FOR 01336 177770 -TH 01337 177773 -CH 01340 177773 -CH 01341 007043 QTB2: HISP /WHERE TO LOOK 01342 010124 IHSP 01343 006436 OLDP 01344 100020 100020 PAGE 29 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01345 001214 QPQT: QP11 01346 005710 LDA (-2) 01347 010200 STA QT 01350 121402 QP12: JST QPCR I 01351 072200 LDX QT 01352 045062 LDA QTB3+2 X /GET BOTTOM OF PROPER MSG TABLE 01353 010000 STA 0 01354 172000 LDX 0 I 01355 005721 LDA (-100) 01356 010201 STA QT5 01357 044202 QP7: LDA 202 X 01360 100400 SPL 01361 003374 JMP QP8 01362 032202 STX QT6 01363 121402 JST QPCR I 01364 072202 LDX QT6 01365 044102 LDA 102 X 01366 121404 JST QPOP I 01367 121403 JST QPTB I 01370 072202 LDX QT6 01371 044202 LDA 202 X 01372 121404 JST QPOP I 01373 072202 LDX QT6 01374 024000 QP8: IRS 0 01375 024201 IRS QT5 01376 003357 JMP QP7 01377 024200 IRS QT 01400 003350 JMP QP12 /GO GET OTHER MESSAGE TABLE 01401 103345 JMP QPQT I 01402 016065 QPCR: CRLF 01403 016073 QPTB: TAB 01404 016262 QPOP: OPT 01405 016204 QPAC: PAC PAGE 30 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /PUT A TWO-WORD MESSAGE /THESE REGISTERS SHOULD NOT MOVE AROUND TOO MUCH... /...OR ELSE THE PROTECTED PAGE WILL CHANGE: /SHBQ /LEPI /FREE /NFS /ENDS OF THE HOST TWO-WORD QUEUES (EHWQ) /TWDP 01406 032733 OWP: STX HNUM 01407 010734 STA ONEW 01410 004733 LDA HNUM 01411 017722 SUB (NH+1) /ALLOW TTY ALSO 01412 101400 SMI 01413 003506 JMP OWP6 01414 073723 LDX (SHBQ) 01415 005716 LDA (-4) 01416 010715 STA TPEE 01417 003425 JMP OWP4 01420 010000 OWP0: STA 0 01421 064003 IRS 3 X 01422 003471 JMP OWP3 01423 005705 LDA (-1) 01424 050003 STA 3 X 01425 024715 OWP4: IRS TPEE /ALLOWED TO HAVE ANOTHER BUFFER? 01426 100000 SKP 01427 003436 JMP OWP7 /NO! 01430 044000 LDA 0 X 01431 100040 SZE 01432 003420 JMP OWP0 01433 004441 LDA FREE 01434 100040 SZE 01435 003440 JMP .+3 01436 024145 OWP7: IRS LEPI 01437 003505 JMP OWP5 01440 104441 LDA FREE I 01441 026441 IMA FREE 01442 024711 IRS NFS 01443 050000 STA 0 X 01444 010715 STA TPEE 01445 026000 IMA 0 01446 050001 STA 1 X 01447 005704 LDA (-17.) /(DECIMAL) 01450 010735 STA OWT3 01451 050003 STA 3 X 01452 140040 CRA 01453 050000 STA 0 X 01454 004715 LDA TPEE 01455 015724 ADD (4) 01456 050002 STA 2 X 01457 003461 JMP .+2 PAGE 31 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01460 044000 OWP2: LDA 0 X 01461 010000 STA 0 01462 015724 ADD (4) 01463 050000 STA 0 X 01464 004715 LDA TPEE 01465 050003 STA 3 X 01466 024735 IRS OWT3 01467 003460 JMP OWP2 01470 072715 LDX TPEE 01471 144002 OWP3: LDA 2 I X 01472 066002 IMA 2 X 01473 072733 LDX HNUM 01474 150540 STA EHWQ I X 01475 050540 STA EHWQ X 01476 010000 STA 0 01477 140040 CRA 01500 050000 STA 0 X 01501 004734 LDA ONEW 01502 050001 STA 1 X 01503 004636 LDA TWDP 01504 050002 STA 2 X 01505 072733 OWP5: LDX HNUM 01506 000401 OWP6: ENB 01507 102145 JMP LEPI I PAGE 32 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /MESSAGE GENERATOR 01510 004327 GENM: LDA MGD 01511 121725 JST (GIVE) I 01512 004321 LDA MGLK 01513 101000 NOP /"SKP" TO RUN LINK CYCLER 01514 003545 JMP GNME 01515 101040 SNZ 01516 003535 JMP LC1 01517 015726 LC3: ADD (400) 01520 010321 STA MGLK 01521 100040 SZE 01522 003544 JMP LC2 01523 004204 LDA TIME 01524 016142 SUB OTIM 01525 110140 STA PLAC I 01526 024140 IRS PLAC 01527 004334 LDA MGNL 01530 014137 ADD IGTH 01531 010334 STA MGNL 01532 016141 SUB LIMT 01533 101400 SMI 01534 103541 JMP LC44 I 01535 004204 LC1: LDA TIME 01536 010142 STA OTIM 01537 004321 LDA MGLK 01540 003517 JMP LC3 01541 140040 LC44: CRA /WHEN DONE, SHUT MGEN OFF 01542 010312 STA MGON 01543 103727 JMP (SP91) I 01544 006136 LC2: ANA MKSK 01545 121725 GNME: JST (GIVE) I 01546 004334 LDA MGNL 01547 007730 ANA (777) 01550 101040 SNZ 01551 003557 JMP LC45 01552 140407 TCA 01553 010000 STA 0 01554 121725 JST (GIVE) I 01555 024000 IRS 0 01556 003554 JMP .-2 01557 121731 LC45: JST (GIVD) I 01560 103727 JMP (SP91) I PAGE 33 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01561 001400 BLKTBL: 1400 /1400 TO GIVE ERROR IF LINK BLOCKED 01562 001400 1400 /0 TO HANG 01563 001400 1400 01564 001400 1400 01565 001400 1400 /TTY WILL HANDLE ERROR MSGS! 01566 000000 0 01567 000000 0 01570 000000 0 01571 DTAB: BSS 100 01671 000001 CONSTANTS 01672 177755 01673 000006 01674 040001 01675 001674 01676 000003 01677 100060 01700 122000 01701 176030 01702 177752 01703 067100 01704 177757 01705 177777 01706 002000 01707 177760 01710 177776 01711 000000 01712 177710 01713 177763 01714 177772 01715 000460 01716 177774 01717 037777 01720 000112 01721 177700 01722 000005 01723 000455 01724 000004 01725 006463 01726 000400 01727 020062 01730 000777 01731 006471 PATCHEND PAGE 34 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /INITIALIZATION AND BACKGROUND TPINIT=37000 TIPBKG=37002 CLOCK=37004 TOUT=37006 02000 000011 2000/ DXA 02001 070042 AMIMLC 02002 100000 SKP 02003 121653 JST (TPINIT) I / CLEAR COMMON STORE 02004 073654 LDX (-LONE) 02005 004114 LDA ONE 02006 050367 STA LAC+LONE X 02007 024000 IRS 0 02010 003006 JMP .-2 02011 073655 LDX (-LCLR) 02012 140040 CRA 02013 050350 GO3: STA TTO+LCLR X 02014 024000 IRS 0 02015 003013 JMP GO3 / INITIALIZE OBIT 02016 005656 LDA (-1) 02017 010111 STA CBIT 02020 010112 STA CBIT+1 02021 072115 LDX ZERO 02022 032107 STX OBIT 02023 032110 STX OBIT+1 02024 131041 RDIMPN 02025 003024 JMP .-1 /THIS IS IMPOSSIBLE 02026 010106 STA MINE 02027 007657 ANA (20) 02030 100040 SZE 02031 024000 IRS 0 02032 004106 LDA MINE 02033 007660 ANA (17) 02034 015661 ADD (LGL 15. 02035 011037 STA .+2 02036 004114 LDA ONE 02037 000000 0 0 02040 050107 STA OBIT X 02041 140401 CMA 02042 050111 STA CBIT X / INITIALIZE POINTER TO FREE 02043 005662 LDA (FREE) 02044 010125 STA FREP / INITIALIZE NICE-STOP 02045 005663 LDA (NS1) 02046 011533 STA NSRR / INITIALIZE COPY OF MAXS 02047 005630 LDA IMAXS 02050 010122 STA MAXS PAGE 35 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /INITIALIZE MESSAGE TABLE 02051 120165 JST MMII I /MESS TABLE / CLEAR PAGE 15 02052 073664 LDX (-1000) 02053 140040 CRA 02054 111665 STA (56000) I 02055 024000 IRS 0 02056 003054 JMP .-2 / INITIALIZE ALL QUEUES 02057 073666 LDX (-LQUE) 02060 005667 LDA (SHQ) 02061 050550 GO0: STA EHQ+LQUE X 02062 140040 CRA 02063 050460 STA SHQ+LQUE X 02064 050640 STA NHA+LQUE X 02065 050730 STA NHS+LQUE X 02066 044550 LDA EHQ+LQUE X 02067 141206 AOA 02070 024000 IRS 0 02071 003061 JMP GO0 /FIX UF TIP/HOST3 OPTION LOCATIONS 02072 005670 LDA (ITBTIP MAXITB X) 02073 070042 AMIMLC 02074 005671 LDA (ITBIMP MAXITB X) 02075 011635 STA IT1 02076 073672 LDX (-MAXITB) 02077 105635 LDA IT1 I 02100 151630 STA ITBLOC MAXITB IX 02101 024000 IRS 0 02102 003077 JMP .-3 /CLEAR OUT HOST THROUGHPUT TABLES 02103 073673 LDX (-[8^TNH]) 02104 140040 CRA 02105 111674 STA (HTPTBL+8^TNH X) I 02106 024000 IRS 0 02107 003105 JMP .-2 PAGE 36 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / CREATE THE FREE STORAGE LIST 02110 005675 LDA (1000) 02111 010623 STA NREA 02112 010622 STA NSFA 02113 010621 STA NFA 02114 005676 LDA (1000-75.) 02115 011637 STA IT3 02116 073677 LDX (-24.) 02117 033635 BL1: STX IT1 02120 105700 LDA (SPAR+24. X) I 02121 101040 SNZ 02122 005636 LDA IT2 02123 011636 BL3: STA IT2 02124 023637 CAS IT3 02125 003141 JMP BL2 02126 101000 NOP 02127 073636 LDX IT2 02130 004441 LDA FREE 02131 050000 STA 0 X 02132 004113 LDA SIGN 02133 050006 STA ACKH X 02134 032441 STX FREE 02135 024621 IRS NFA 02136 005636 LDA IT2 02137 015701 ADD (75.) 02140 003123 JMP BL3 02141 073635 BL2: LDX IT1 02142 005637 LDA IT3 02143 015675 ADD (1000) 02144 011637 STA IT3 02145 024000 IRS 0 02146 003117 JMP BL1 PAGE 37 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / CREATE THE FREE TRACE LIST 02147 005702 LDA (-8) 02150 011635 STA IT1 02151 005703 LDA (NRT5+LRUT) 02152 010442 STA TTF 02153 010000 GO10: STA 0 02154 015704 ADD (TDON+1) 02155 050000 STA 0 X 02156 025635 IRS IT1 02157 003153 JMP GO10 02160 140040 CRA 02161 066000 IMA 0 X / CREATE THE FREE REASSEMBLY LIST 02162 010443 STA RASF 02163 005705 LDA (-5) 02164 011635 STA IT1 02165 004443 LDA RASF 02166 010000 GO11: STA 0 02167 015706 ADD (REAS+8) 02170 050000 STA 0 X 02171 025635 IRS IT1 02172 003166 JMP GO11 02173 140040 CRA 02174 050000 STA 0 X PAGE 38 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /SET UP MODEM 5 ENTRANCE & MASKS 02175 105707 LDA (HOST34) I /THIS IS <>0 IF 3 OR 4 HOSTS 02176 073710 LDX (-100) 02177 100040 SZE 02200 073652 LDX IHM.I 02201 100400 SPL 02202 073711 LDX (-14400) 02203 032224 STX IHM 02204 073712 LDX (-20) 02205 100040 SZE 02206 073651 LDX HIM.I 02207 100400 SPL 02210 073713 LDX (-420) 02211 032225 STX HIM 02212 073714 LDX (-4000) 02213 100040 SZE 02214 073715 LDX (-10000) 02215 100400 SPL 02216 073716 LDX (-20000) 02217 032226 STX MOM 02220 073717 LDX (M2I5) 02221 100040 SZE 02222 073720 LDX (IH2E) 02223 032070 STX M5INIL 02224 073721 LDX (M2I4) 02225 100400 SPL 02226 073722 LDX (IH3E) 02227 032067 STX M4INIL 02230 073723 LDX (I2M5) 02231 100040 SZE 02232 073724 LDX (HI2E) 02233 032075 STX M5OTIL 02234 073725 LDX (I2M4) 02235 100400 SPL 02236 073726 LDX (HI3E) 02237 032074 STX M4OTIL 02240 005656 LDA (-1) 02241 010367 STA SW3FG 02242 010120 STA PRIM 02243 170120 SMK INTM / INITIALIZE DOZE/WAIT RETURNS 02244 073702 LDX (0 0-2^TFH) 02245 105727 LDA (TTOI+FH+FH 0 X) I 02246 051651 STA DZTB+FH+FH X 02247 024000 IRS 0 02250 003245 JMP .-3 /INITIALIZE ALL HOSTS (FAKES, TOO) TO COME UP DEAD 02251 005730 LDA (-47.) 02252 073702 LDX (-TH) 02253 050730 STA HIHD+TH X 02254 024000 IRS 0 02255 003253 JMP .-2 PAGE 39 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / START MODEM INPUT 02256 005657 LDA (M1INBP) 02257 011635 STA IT1 02260 005731 LDA (-NAPL) 02261 011636 STA IT2 02262 005732 LDA (M1IN) 02263 011275 STA GO13 02264 104441 GO12: LDA FREE I 02265 026441 IMA FREE 02266 024711 IRS NFS 02267 015733 ADD (HEAD 0 I) 02270 111635 STA IT1 I 02271 025635 IRS IT1 02272 015734 ADD (103) 02273 111635 STA IT1 I 02274 025635 IRS IT1 02275 000000 GO13: 0 02276 025275 IRS GO13 02277 025636 IRS IT2 02300 003264 JMP GO12 /START THE HOST/IMP AND IMP/HOST ROUTINES 02301 005702 LDA (-TH) 02302 011635 STA IT1 02303 005635 GO4: LDA IT1 02304 017702 SUB (-TH) 02305 010000 STA 0 02306 121735 JST (IHIN) I /** MUST BE IS THIS ORDER 02307 121736 JST (HIST) I /** 02310 025635 IRS IT1 02311 003303 JMP GO4 02312 120166 JST TOII I /INITIALIZE TIMEOUT 02313 004714 LDA SYNC 02314 117737 SUB (FREQ+3) I 02315 111740 STA (OLDS+3) I 02316 121741 JST (CLRDHT) I /SET UP DEAD HOST TABLES 02317 000401 ENB PAGE 40 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /BACKGROUND LOOP 02320 005731 BACK: LDA (-FH) 02321 011635 STA IT1 02322 005635 BKV: LDA IT1 02323 017731 SUB (-FH) 02324 010000 STA 0 02325 143641 JMP DZTB I X 02326 000000 BKX: DAC 0 02327 005326 LDA .-1 02330 051641 STA DZTB X 02331 143645 JMP WTTB I X 02332 000000 BKW: DAC 0 02333 005332 LDA .-1 02334 051645 STA WTTB X 02335 025635 IRS IT1 02336 003322 JMP BKV 02337 005702 LDA (-TH) /THIS INST MAY BE A BUG 02340 011635 STA IT1 02341 072115 LDX ZERO 02342 001001 BKWZ: INH 02343 105742 LDA (IHLO+0+X) I 02344 017743 SUB (IH61) 02345 101040 SNZ 02346 120174 JST FIHE I 02347 000011 DXA 02350 003351 JMP . 1 02351 001001 INH 02352 105744 LDA (HILO+0+X) I 02353 017745 SUB (HI9T+1) 02354 101040 SNZ 02355 120176 JST FHIE I 02356 000011 DXA 02357 003360 JMP . 1 02360 024000 IRS 0 02361 000401 ENB 02362 025635 IRS IT1 02363 003342 JMP BKWZ 02364 140040 CRA 02365 100004 SR3 02366 010367 STA SW3FG /DO NICE STOP IF SS3 02367 004367 LDA SW3FG /REMOTE NICE-STOP+RELOAD 02370 101400 SMI 02371 021531 JST NSRT /NICE-STOP IF SW3FG>=0 02372 121746 JST (LITE) I /LIGHTS DISPLAY 02373 021425 JST CWDT /CHECK IF WE SHOULD POKE WDT 02374 003320 TIPDEF JMP+0+1000+BACK^A777, INH 02604 002374 05573 003320 14252 001001 02375 121747 JST (TIPBKG) I 02376 000401 ENB 02377 003320 JMP BACK PAGE 41 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TRACE INPUT, STATISTICS INPUT, AND MESSAGES TO DISCARD 02400 120172 BTR1: JST SUCK I 02401 003400 JMP BTR1 02402 120172 BEST: JST SUCK I 02403 120172 JST SUCK I 02404 120172 BTR4: JST SUCK I 02405 100000 SKP 02406 003402 JMP BEST 02407 100400 SPL 02410 003400 JMP BTR1 02411 007750 ANA (37) 02412 015751 ADD (TRON) 02413 011421 STA BTR2 02414 120172 JST SUCK I 02415 100000 SKP 02416 003402 JMP BEST 02417 111421 STA BTR2 I 02420 003404 JMP BTR4 02421 000000 BTR2: DAC 0 / DISCARD 02422 120172 STXY: JST SUCK I 02423 003422 JMP .-1 02424 003422 JMP .-2 / CHECK IF FREE IS AT LEAST 20 LONG 02425 000000 CWDT: DAC 0 02426 001001 INH 02427 004621 LDA NFA 02430 016711 SUB NFS 02431 000401 ENB 02432 017752 SUB (1020) 02433 101400 SMI 02434 030026 WDT 02435 103425 JMP CWDT I PAGE 42 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / BACKGROUND TRACE 02436 140500 BTRE: SSM /START HERE 02437 011632 STA T3BX 02440 003456 JMP BTRF 02441 000401 BTD: ENB 02442 005632 LDA T3BX 02443 101040 SNZ 02444 003467 JMP BTRD 02445 004113 LDA SIGN 02446 073753 LDX (100002) 02447 120170 JST JAM I 02450 120171 BTRC: JST DOZE I 02451 004457 BTRB: LDA STRQ /START HERE 02452 101040 SNZ 02453 003450 JMP BTRC /QUIT IF TRACE QUEUE EMPTY 02454 140040 CRA 02455 011632 STA T3BX 02456 004324 BTRF: LDA TDST 02457 120170 JST JAM I 02460 004316 LDA TLNK 02461 120170 JST JAM I 02462 004114 LDA ONE 02463 120170 JST JAM I 02464 140040 CRA 02465 026203 IMA TTO 02466 120170 JST JAM I 02467 073754 BTRD: LDX (2) 02470 120171 JST DOZE I 02471 005756 BRL2: LDA ((STRQ)) 02472 011633 STA OLD2 02473 001001 INH PAGE 43 IMPSYS,2514,IMP 6:49 PM 12/22/1971 02474 105633 BTRL: LDA OLD2 I /SEARCH TRACE OUEUE 02475 011633 STA OLD2 02476 105633 LDA OLD2 I 02477 011634 STA OLD1 02500 101040 SNZ 02501 003441 JMP BTD /JUMP IF DONE WITH TRACE QUEUE 02502 010000 STA 0 02503 044012 LDA TDON X 02504 101400 SMI 02505 003474 JMP BTRL 02506 044000 LDA 0 X 02507 111633 STA OLD2 I /REMOVE FROM TRACE QUEUE 02510 000401 ENB 02511 025632 IRS T3BX 02512 005757 LDA (-10.) 02513 011631 STA T2BX 02514 073754 LDX (2) 02515 025634 IRS OLD1 02516 105634 LDA OLD1 I 02517 120170 JST JAM I 02520 025631 IRS T2BX 02521 003515 JMP .-4 02522 005634 LDA OLD1 02523 015757 ADD (-10.) 02524 001001 INH 02525 026442 IMA TTF /PUT ON FREE TRACE QUEUE 02526 110442 STA TTF I 02527 000401 ENB 02530 003471 JMP BRL2 /LOOP SEARCHING TRACE QUEUE PAGE 44 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / NICE STOP ROUTINE 02531 000000 NSRT: DAC 0 02532 103533 JMP NSRR I 02533 000000 NSRR: DAC 0 02534 103531 JMP NSRT I 02535 005702 NS1: LDA (-TH) 02536 011636 STA IT2 02537 005636 NS2: LDA IT2 02540 017702 SUB (-TH) 02541 010000 STA 0 02542 005675 LDA (1000) /IMP GOING DOWN MESSAGE 02543 001001 INH 02544 020145 JST LEPI 02545 101000 NOP 02546 025636 IRS IT2 02547 003537 JMP NS2 02550 021572 JST NSWT /WAIT 02551 005760 LDA (ZERO) 02552 010125 STA FREP /MAKE FREE POINT TO ZERO 02553 010720 STA HIHD /MARK HOSTS DEAD 02554 010721 STA HIHD+1 02555 010722 STA HIHD+2 02556 010723 STA HIHD+3 02557 021572 JST NSWT /WAIT 02560 005761 LDA (-11) /A NEGATIVE NUMBER 02561 010122 STA MAXS /MAKE MAXS COPY SMALL 02562 021572 JST NSWT /WAIT 02563 001001 INH /HANG FOREVER 02564 004367 LDA SW3FG 02565 101004 SS3 /STOP OR RELOAD? 02566 103762 JMP (WDLOD) I 02567 030026 WDT 02570 000000 HLT 02571 003567 JMP .-2 PAGE 45 IMPSYS,2514,IMP 6:49 PM 12/22/1971 02572 000000 NSWT: DAC 0 /WAIT 5 SECONDS 02573 004204 LDA TIME 02574 011640 STA NSTM 02575 021533 NS5: JST NSRR 02576 004204 LDA TIME 02577 017640 SUB NSTM 02600 007763 ANA (177400) /WAIT FIVE SECONDS 02601 101040 SNZ 02602 003575 JMP NS5 02603 103572 JMP NSWT I 02604 ITBLOC: BSS MAXITB 02630 IMAXS: BSS 1 PAGE 46 IMPSYS,2514,IMP 6:49 PM 12/22/1971 02631 T2BX: BSS 1 /FOR TRACE 02632 T3BX: BSS 1 /FOR TRACE 02633 OLD2: BSS 1 /FOR TRACE 02634 OLD1: BSS 1 /FOR TRACE 02635 IT1: BSS 1 /FOR INIT AND LOOP 02636 IT2: BSS 1 /FOR INIT AND LOOP 02637 IT3: BSS 1 02640 NSTM: BSS 1 /FOR STOP DEFPLC [DZTB - GOES WITH JAM] 02641 DZTB: BSS FH DEFPLC [WTTB - GOES WITH SUCK] 02645 WTTB: BSS FH 02651 177660 HIM.I: TIPDEF -120, -174 02605 002651 05574 177660 14253 177604 02652 173600 IHM.I: TIPDEF -4200, -4174 02606 002652 05575 173600 14254 173604 02653 037000 CONSTANTS 02654 177761 02655 177633 02656 177777 02657 000020 02660 000017 02661 041461 02662 000441 02663 002535 02664 177000 02665 056000 02666 177710 02667 000370 02670 054276 02671 045617 02672 177754 02673 177740 02674 045704 02675 001000 02676 000665 02677 177750 02700 054216 02701 000113 02702 177770 02703 015310 02704 000013 02705 177773 02706 000016 02707 001207 02710 177700 02711 163400 02712 177760 02713 177360 02714 174000 02715 170000 02716 160000 02717 005110 02720 010006 02721 005066 02722 010000 02723 006016 02724 012516 02725 006022 02726 012510 02727 044732 02730 177721 02731 177774 02732 030471 02733 100007 02734 000103 02735 010241 02736 012641 02737 020351 02740 020343 02741 004666 02742 050046 02743 010654 02744 052560 02745 007317 02746 005416 02747 037002 02750 000037 02751 000307 02752 001020 02753 100002 02754 000002 02755 000457 02756 002755 02757 177766 02760 000115 02761 177767 02762 001022 02763 177400 14170 002764 PAGEND 2 15000+0+5^TLRUT+8^T[TDON+1]+5^T[REAS+8]/ 14203 015546 PAGEND 15 PAGE 47 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TASK INTERRUPT ("TASK") ORG TASKIL 00103 003000 DAC TSK ORG 3000 /** PART 1 - CONTROL *** 03000 016000 TSK: DAC Q 03001 000011 DXA 03002 003003 JMP . 1 03003 011710 STA TA1 /SAVE AND CHANGE PRIORITIES 03004 033712 STX TX1 03005 000043 INK 03006 011711 STA TK1 03007 005735 LDA (-2) 03010 170120 SMK INTM 03011 010120 STA PRIM 03012 000401 TSKL: ENB /ALL TASKS RETURN TO HERE 03013 004444 LDA STQF 03014 001001 INH 03015 100040 SZE 03016 003215 JMP TSKF /JUMP IF ANY TASK ON FAST TASK QUEUF 03017 004445 LDA STQM 03020 100040 SZE 03021 003037 JMP TSKM /JUMP IF ANY TASK ON MEDIUM TASK QUF 03022 004446 LDA STQS 03023 100040 SZE 03024 003070 JMP TSKS /JUMP IF ANY TASK ON SLOW TASK QUEUF 03025 001001 INH 03026 005736 LDA (-1) 03027 010120 STA PRIM /RESTORE AND QUIT 03030 170120 SMK INTM 03031 073712 LDX TX1 03032 005711 LDA TK1 03033 171020 OTK 03034 005710 LDA TA1 03035 000401 ENB 03036 103000 JMP TSK I PAGE 48 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03037 030026 TSKM: WDT 03040 010000 STA 0 /MEDIUM TASKS COME HERE 03041 010624 STA THIS 03042 004113 LDA SIGN 03043 050005 STA USED X /USED = SIGN MEANS DON'T ACKNOWLE*-F 03044 140040 CRA 03045 050001 STA PTRA X 03046 050002 STA PTRT X 03047 066000 IMA 0 X 03050 010445 STA STQM /GET THE FIRST TASK ON THE MEDIUM TA 03051 101040 SNZ 03052 003062 JMP TSKY 03053 000401 P99: ENB 03054 044010 LDA HEAD+1 X 03055 006121 ANA MSKR 03056 016106 SUB MINE 03057 100040 SZE 03060 003601 JMP FUS 03061 003116 JMP P98 03062 005737 TSKY: LDA (STQM) 03063 010535 STA ETQM 03064 003053 JMP P99 03065 005740 TSKZ: LDA (STQS) 03066 010536 STA ETQS 03067 003103 JMP P10 03070 030026 TSKS: WDT 03071 010000 STA 0 /SLOW TASKS COME HERE 03072 010624 STA THIS 03073 140040 CRA 03074 050001 STA PTRA X 03075 050002 STA PTRT X 03076 050005 STA USED X /USED = 0 MEANS ACKNOWLEDGE 03077 066000 IMA 0 X 03100 010446 STA STQS /GET THE FIRST TASK ON THE SLOW TASK 03101 101040 SNZ 03102 003065 JMP TSKZ 03103 000401 P10: ENB 03104 044112 LDA BUFE X 03105 016000 SUB 0 03106 017741 SUB (12) /THROW AWAY IF BUFFER TOO SAMLL 03107 100400 SPL 03110 003332 JMP FQ 03111 044010 LDA HEAD+1 X 03112 006121 ANA MSKR 03113 016106 SUB MINE 03114 100040 SZE 03115 003475 JMP SF /JUMP IF THE TASK IS A STORE AND FOR 03116 044007 P98: LDA HEAD X 03117 041675 ALR 3 03120 100400 SPL 03121 003373 JMP RFNM /JUMP IF THE TASK IS A RFNM FOR U- 03122 103742 JMP (MESG) I PAGE 49 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03123 001001 TSKH: INH /HELLO'S COME HERE 03124 173743 LDX (INCH 0 X) I 03125 050211 STA SIHY-1 X /MARK TO SEND I HEARD YOU 03126 007744 ANA (40000) /SEND CORE? 03127 100040 SZE 03130 003332 JMP FQ /YES, NO ROUTING WITH SEND CORE 03131 004624 LDA THIS 03132 015745 ADD (LRUT+HEAD+2 X) 03133 011713 STA T10 03134 141206 AOA 03135 011714 STA T11 03136 073746 LDX (-[LRUT+3]) /CHECK CHECKSUM 03137 005736 LDA (-1) 03140 141206 AOA 03141 115714 ADD T11 I 03142 024000 IRS 0 03143 003140 JMP .-3 03144 072624 LDX THIS 03145 101040 SNZ 03146 003153 JMP TSKH1 03147 173743 LDX (INCH 0 X) I /NO GOOD!, KILL LINE 03150 050354 STA LINE-1 X 03151 011203 STA BLF 03152 003332 JMP FQ 03153 044007 TSKH1: LDA HEAD X /OK, COPY INFO INTO TABLES 03154 007742 ANA (4000) 03155 173743 LDX (INCH 0 X) I 03156 065204 IRS E123-1 X 03157 101000 NOP 03160 100040 SZE 03161 064347 IRS LAC-1 X 03162 044125 LDA NRT-1 X 03163 015747 ADD (LRUT 0 X) 03164 011714 STA T11 03165 073750 LDX (-LRUT) 03166 105713 LDA T10 I 03167 111714 STA T11 I 03170 024000 IRS 0 03171 003166 JMP .-3 03172 004624 LDA THIS /CHECK FOR "LOOPED" LIGHT 03173 014106 ADD MINE 03174 010000 STA 0 03175 044011 LDA HEAD+2 X 03176 100040 SZE 03177 003332 JMP FQ /NOT LOOPED 03200 005751 LDA (17) /SET LOOPED LIGHT FOR APPROX 8 SE- 03201 011204 STA LUUP 03202 003332 JMP FQ 03203 BLF: BSS 1 /BAD MODEM INTERFACE IF NON-ZERO 03204 LUUP: BSS 1 03205 E123: BSS CH 03212 005752 TSKX: LDA (STQF) 03213 010534 STA ETQF 03214 003223 JMP TSF1 PAGE 50 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03215 010000 TSKF: STA 0 /FAST TASKS COME HERE 03216 010624 STA THIS 03217 044000 LDA 0 X 03220 010444 STA STQF 03221 101040 SNZ 03222 003212 JMP TSKX 03223 000401 TSF1: ENB 03224 044007 LDA HEAD X 03225 101400 SMI 03226 003123 JMP TSKH /NOT AN ACKNOWLEDGE / TASK ACKNOWLEDGE 03227 044010 LDA HEAD+1 X 03230 011715 STA HH1 03231 044011 LDA HEAD+2 X 03232 011716 STA HH2 03233 044012 LDA HEAD+3 X 03234 011717 STA HH3 03235 044013 LDA HEAD+4 X 03236 011720 STA HH4 03237 005753 LDA (JMP NSSX) /NOTHING TO RETRANSMIT YET 03240 011276 STA RC 03241 011734 STA RCC /SET UP COUNTER 03242 044004 LDA INCH X /FIND SENT QUEUE 03243 001001 INH 03244 017754 SUB (CH+1) 03245 011731 STA HOCH 03246 010000 STA 0 03247 044415 LDA SSQ+CH X 03250 101040 ACKS: SNZ 03251 003332 JMP FQ /JUMP IF REST OF SENT QUEUE EMPTY / ASSUMPTION IS THAT ACKNOWLEDGEMENT IS DUPLICATE 03252 010000 STA 0 03253 044007 LDA HEAD X 03254 013715 ERA HH1 03255 007755 ANA (174777) /DON'T CHECK DISCARD OR CEASE BITS 03256 100040 SZE 03257 003351 JMP ACK0 03260 044010 LDA HEAD+1 X 03261 013716 ERA HH2 03262 100040 SZE 03263 003351 JMP ACK0 03264 044011 LDA HEAD+2 X 03265 013717 ERA HH3 03266 100040 SZE 03267 003351 JMP ACK0 03270 044012 LDA HEAD+3 X 03271 013720 ERA HH4 03272 100040 SZE 03273 003351 JMP ACK0 PAGE 51 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03274 033722 STX SENT /SAVE PTR TO MATCHING BUFFER 03275 073731 LDX HOCH /SET UP CHANNEL NUMBER 03276 000000 RC: 0 /JUMP AWAY IF NOTHING TO RETRANSMIT 03277 017753 SUB (JMP NSSX) /UN-OFFSET COUNTER 03300 054665 ADD NSS+CH X 03301 050665 STA NSS+CH X 03302 140040 CRA 03303 111721 STA TEND I 03304 044415 LDA SSQ+CH X /PUT BAD ONES ON RETRANSMIT QUEUE 03305 110537 STA ERQ I 03306 005721 LDA TEND 03307 010537 STA ERQ 03310 125756 NSSX: IRS (THRUPT+CH X) I 03311 101000 NOP 03312 073722 LDX SENT 03313 044002 LDA PTRT X 03314 100040 SZE 03315 003357 JMP TSKTR /GO TRACE THIS GUY PAGE 52 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03316 044005 NOT: LDA USED X 03317 100400 SPL 03320 003344 JMP NOT1 03321 140024 CHS 03322 050005 STA USED X 03323 044000 LDA 0 X 03324 073731 NOT2: LDX HOCH 03325 050415 STA SSQ+CH X 03326 101040 SNZ 03327 003340 JMP NOT4 03330 064665 NOT5: IRS NSS+CH X 03331 024712 DEFSTAT IRS NSFS,TSK1 00736 021223 20300 003331 20255 024712 03332 001001 FQ: INH 03333 004624 LDA THIS /PUT BUFFER BACK ON FREE 03334 026441 IMA FREE 03335 110441 STA FREE I 03336 024621 IRS NFA 03337 003012 JMP TSKL 03340 005757 NOT4: LDA (SSQ+CH) 03341 014000 ADD 0 03342 050505 STA ESQ+CH X 03343 003330 JMP NOT5 03344 004441 NOT1: LDA FREE 03345 066000 IMA 0 X 03346 032441 STX FREE 03347 024621 IRS NFA 03350 003324 JMP NOT2 PAGE 53 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /RANDOM BITS OF CODE 03351 033721 ACK0: STX TEND /SAVE LAST BAD ONE 03352 005760 LDA (LDA RCC) /SET RC TO RETRANSMIT 03353 011276 STA RC 03354 025734 IRS RCC /COUNT ANOTHER BAD ONE 03355 044000 LDA 0 X /CONTINUE DOWN THE SENT QUEUE 03356 003250 JMP ACKS 03357 033722 TSKTR: STX SENT /ACK FOR A TRACED PKT 03360 011723 STA OTP 03361 044003 LDA ST X /SAVE SENT TIME 03362 073723 LDX OTP 03363 050003 STA TST X 03364 131040 INA CLOK /SAVE ACK TIME 03365 003364 JMP .-1 03366 050004 STA TAT X 03367 004113 LDA SIGN /MARK TRACE PKT AS COMPLETED 03370 050012 STA TDON X 03371 073722 LDX SENT 03372 003316 JMP NOT PAGE 54 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /* TASK RFNM 03373 044010 RFNM: LDA HEAD+1 X 03374 011713 STA T10 03375 041667 ALR 9 03376 052007 ERA HEAD X 03377 007761 ANA (137777) 03400 052007 ERA HEAD X 03401 040675 ARR 3 03402 052011 ERA HEAD+2 X 03403 007761 ANA (137777) 03404 052011 ERA HEAD+2 X 03405 001001 INH 03406 010625 STA NXTR 03407 044011 LDA HEAD+2 X 03410 052012 ERA HEAD+3 X 03411 141044 CAR 03412 052011 ERA HEAD+2 X 03413 072143 LDX MEST 03414 120157 JST AMT I 03415 003420 JMP .+3 03416 000401 ENB 03417 021463 JST RFN2 /NO ENTRY IN TABLE -- RELEASE BUFFER 03420 000401 ENB 03421 044202 LDA MESS X 03422 141340 ICA 03423 013713 ERA T10 03424 007762 ANA (37400) 03425 100040 SZE 03426 021463 JST RFN2 /JUMP IF MESSAGE # INCORRECT PAGE 55 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03427 044202 DEFSTAT LDA MESS X,HS5 00737 021250 20301 003427 20256 044202 03430 141206 AOA 03431 007763 ANA (177477) 03432 050202 STA MESS X /INCREMENT MESS # AND CLEAR BLOCKED 03433 072624 LDX THIS 03434 001001 INH 03435 044012 LDA HEAD+3 X 03436 010636 STA TWDP 03437 044007 LDA HEAD X 03440 007764 ANA (3000) 03441 101040 SNZ 03442 003446 JMP ZOW 03443 007765 ANA (2000) /(DISCARD) 03444 101040 SNZ 03445 005766 LDA (2400) 03446 052011 ZOW: ERA HEAD+2 X 03447 015766 ADD (2400) /(RFNM) 03450 011713 STA T10 03451 044007 LDA HEAD X /SET UP PROPER HOST NUMBER 03452 041476 LGL 2 /"FOR IMP" TO C BIT 03453 044010 LDA HEAD+1 X 03454 007767 ANA (300) 03455 100001 SRC 03456 015770 ADD (0 0 NH^T100) 03457 040472 LGR 6 03460 010000 STA 0 03461 005713 LDA T10 03462 103771 JMP (DOG) I /GO PUT RFNM ON 2 WD QUEUE PAGE 56 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03463 000000 RFN2: 0 /HALTING (?) SUBR FOR DEBUGGING 03464 101000 NOP 03465 072624 RACK: LDX THIS 03466 044005 LDA USED X 03467 100400 SPL 03470 003332 JMP FQ 03471 140500 SSM 03472 050005 STA USED X 03473 121772 JST (DOA) I /NOT FROM HOST SO DO ACKNOWLEDGEMENT 03474 003012 JMP TSKL /EXIT TO DO NEXT TASK PAGE 57 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /** TASK STORE AND FORWARD 03475 001001 SF: INH 03476 004622 LDA NSFA 03477 016712 SUB NSFS 03500 022122 CAS MAXS /=MAXIMUM S/F 03501 003332 JMP FQ /JUMP IF S/F COUNT TOO BIG 03502 003332 JMP FQ 03503 004621 LDA NFA 03504 016711 SUB NFS 03505 016124 SUB MINF 03506 100400 SPL 03507 003332 JMP FQ /JUMP IF FREE COUNT TOO SMALL 03510 000401 ENB 03511 024622 IRS NSFA 03512 044007 LDA HEAD X 03513 011730 STA OURH 03514 007773 ANA (20000) 03515 100040 SZE 03516 021630 JST TSUB /CALL TSUB IF TRACE BIT SET 03517 044010 LDA HEAD+1 X /FIND ROUTE 03520 006121 ANA MSKR 03521 010000 STA 0 03522 044227 LDA RUT X 03523 011724 STA OURR 03524 072624 LDX THIS 03525 101040 SNZ 03526 003566 JMP SF0C /JUMP IF DESTINATION IMP DOWN 03527 121772 JST (DOA) I 03530 005724 LDA OURR PAGE 58 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03531 010000 SF2: STA 0 03532 005730 LDA OURH 03533 041675 ALR 3 03534 100400 SPL 03535 003560 JMP SF4 /JUMP IF RFNM 03536 041677 ALR 1 03537 100400 SPL 03540 003547 JMP SF3 /JUMP IF PRIORITY 03541 004624 LDA THIS 03542 001001 INH 03543 150511 STA EOQ-1 I X /PUT ON MESSAGE OUTPUT QUEUE 03544 050511 STA EOQ-1 X 03545 064601 IRS NOA-1 X 03546 003554 JMP SF5 03547 004624 SF3: LDA THIS /PUT ON PRIORITY QUEUE 03550 001001 INH 03551 150516 STA EPQ-1 I X 03552 050516 STA EPQ-1 X 03553 064606 IRS NPA-1 X 03554 044361 SF5: LDA NONE-1 X 03555 100040 SZE 03556 121774 JST (FUNR) I /RESTART OUTPUT IF IT HAS LANGUISHED 03557 003012 JMP TSKL 03560 004624 SF4: LDA THIS /PUT ON RFNM QUEUE 03561 001001 INH 03562 150523 STA ERFQ-1 I X 03563 050523 STA ERFQ-1 X 03564 064613 IRS NRFA-1 X 03565 003554 JMP SF5 03566 140500 SF0C: SSM 03567 050005 STA USED X 03570 121772 JST (DOA) I 03571 024712 IRS NSFS 03572 044002 LDA PTRT X 03573 101040 SNZ 03574 003012 JMP TSKL 03575 010000 STA 0 03576 004113 LDA SIGN 03577 050012 STA TDON X 03600 003012 JMP TSKL PAGE 59 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03601 044007 FUS: LDA HEAD X 03602 011730 STA OURH 03603 044010 LDA HEAD+1 X /COME HERE IF TASK WAS FROM US 03604 006121 ANA MSKR / (THERE IS NO ACK TO SEND) 03605 010000 STA 0 03606 044227 LDA RUT X /FIND ROUTE 03607 011724 STA OURR 03610 005730 LDA OURH 03611 007773 ANA (20000) 03612 072624 LDX THIS 03613 100040 SZE 03614 021630 JST TSUB 03615 005724 LDA OURR 03616 100040 SZE 03617 003531 JMP SF2 /RETURN TO MAINLNE TO PUT ON QUEUL 03620 024712 IRS NSFS 03621 044002 LDA PTRT X 03622 101040 SNZ 03623 003332 JMP FQ 03624 010000 STA 0 03625 004113 LDA SIGN 03626 050012 STA TDON X 03627 003332 JMP FQ PAGE 60 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /* TSUB DOES THE TASK PART OF TRACING 03630 016000 TSUB: DAC Q 03631 004307 LDA TRON 03632 101040 SNZ 03633 103630 JMP TSUB I 03634 001001 INH 03635 004442 LDA TTF 03636 100040 SZE 03637 003644 JMP TS2 /JUMP IF THERE ARE FREE TRACE BLOCKS 03640 141206 AOA 03641 010203 STA TTO /MARK TRACE TABLE OVERFLOW 03642 000401 ENB 03643 103630 JMP TSUB I 03644 033725 TS2: STX STXX 03645 011726 STA STB 03646 050002 STA PTRT X /SET UP TRACE POINTER 03647 026457 IMA STRQ 03650 127726 IMA STB I 03651 010442 STA TTF 03652 004457 LDA STRQ 03653 000401 ENB 03654 015775 ADD (THED+4 X) 03655 011727 STA ITB 03656 044010 LDA HEAD+1 X 03657 006121 ANA MSKR 03660 010000 STA 0 03661 044227 LDA RUT X 03662 011724 STA OURR 03663 004624 LDA THIS 03664 015776 ADD (HEAD+4 X) 03665 011732 STA IMB 03666 073777 LDX (-4) 03667 105732 LDA IMB I 03670 111727 STA ITB I 03671 024000 IRS 0 03672 003667 JMP .-3 03673 072624 LDX THIS 03674 044003 LDA IT X /SAVE INPUT TIME IN TRACE TABLE 03675 073726 LDX STB 03676 050001 STA TIT X 03677 131040 INA CLOK 03700 003677 JMP .-1 /SAVE TASK TIME IN TRACE TABLE 03701 050002 STA TTT X 03702 005724 LDA OURR 03703 050011 STA TQUE X /SAVE OUR ROUTE IN TRACE TABLE 03704 140040 CRA 03705 050012 STA TDON X 03706 073725 LDX STXX 03707 103630 JMP TSUB I PAGE 61 IMPSYS,2514,IMP 6:49 PM 12/22/1971 03710 TA1: BSS 1 /TEMP A 03711 TK1: BSS 1 /TEMP K 03712 TX1: BSS 1 /TEMP X 03713 T10: BSS 1 /TEMP 03714 T11: BSS 1 /TEMP 03715 HH1: BSS 1 /STORAGE FOR HEADER - ALSO RFNM TEMP 03716 HH2: BSS 1 03717 HH3: BSS 1 03720 HH4: BSS 1 03721 TEND: BSS 1 /TEMP END 03722 SENT: BSS 1 /^ SENT QUEUE BUFFER 03723 OTP: BSS 1 /OUTPUT TRACE POINTER 03724 OURR: BSS 1 /OUR ROUTE 03725 STXX: BSS 1 03726 STB: BSS 1 /SAVE TRACE BUFFER 03727 ITB: BSS 1 /INDIRECT TO TRACE BUFFER 03730 OURH: BSS 1 /OUR HEADER FIRST WORD 03731 HOCH: BSS 1 /HOLD CHANNEL 03732 IMB: BSS 1 03733 SFH: BSS 1 /TEMP FOR SF 03734 RCC: BSS 1 /RETRANSMIT COUNTER 03735 177776 CONSTANTS 03736 177777 03737 000445 03740 000446 03741 000012 03742 004000 03743 040004 03744 040000 03745 040061 03746 177725 03747 040050 03750 177730 03751 000017 03752 000444 03753 003310 03754 000006 03755 174777 03756 046656 03757 000415 03760 005734 03761 137777 03762 037400 03763 177477 03764 003000 03765 002000 03766 002400 03767 000300 03770 000400 03771 014216 03772 004562 03773 020000 03774 004614 03775 040011 03776 040013 03777 177774 14171 003777 PAGEND 3 PAGE 62 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / PROCESS A MESSAGE FOR US ORG 4000 04000 044010 MESG: LDA HEAD+1 X 04001 011701 STA PKTW 04002 001001 INH 04003 141340 ICA 04004 010626 STA NHEX 04005 041677 ALR 1 04006 052007 ERA HEAD X 04007 007732 ANA (137777) 04010 052007 ERA HEAD X 04011 040675 ARR 3 04012 052011 ERA HEAD+2 X 04013 007732 ANA (137777) 04014 052011 ERA HEAD+2 X 04015 010625 STA NXTR 04016 007733 ANA (74000) 04017 011700 STA MID1 04020 044012 LDA HEAD+3 X 04021 052011 ERA HEAD+2 X 04022 141050 CAL 04023 052012 ERA HEAD+3 X 04024 011677 STA MID 04025 072144 LDX MESR 04026 120156 JST AMTA I 04027 003032 JMP MES2 04030 021045 JST MESX 04031 103734 JMP (FQ) I 04032 033703 MES2: STX OURM 04033 141340 ICA 04034 100400 SPL 04035 003050 JMP FIXM 04036 000401 ENB 04037 013701 ERA PKTW 04040 007735 ANA (037400) 04041 101040 SNZ 04042 003056 JMP GUDM /JUMP IF MESSAGE NUMBER IS GOOD 04043 021045 JST MESX 04044 103736 JMP (RACK) I / FOR DEBUGGING. 04045 000000 MESX: DAC 0 04046 101000 NOP 04047 103045 JMP MESX I 04050 013701 FIXM: ERA PKTW 04051 007737 ANA (140377) 04052 013701 ERA PKTW 04053 141340 ICA 04054 050202 STA MESS X 04055 000401 ENB PAGE 63 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04056 072624 GUDM: LDX THIS 04057 044012 LDA HEAD+3 X 04060 007740 ANA (7) 04061 011702 STA PKTN /EXTRACT PACKET NUMBER 04062 100040 SZE 04063 003067 JMP .+4 04064 005701 LDA PKTW 04065 100400 SPL 04066 003314 JMP OOFO /JUMP IF THIS IS A 1 OF 1 PACKET 04067 073741 LDX (SHRQ) /LOOK AT REASSEMBLY BLOCKS 04070 001001 INH 04071 044000 PKTL: LDA 0 X 04072 101040 SNZ 04073 003357 JMP NEW /JUMP IF THERE ARE NO MORE BLOCKS TC 04074 033714 STX PKBK 04075 010000 STA 0 04076 044001 LDA RID X 04077 023677 CAS MID 04100 003071 JMP PKTL 04101 003103 JMP PK1 /JUMP IF THIS PACKET BELONGS TO T"I, 04102 003071 JMP PKTL /LOOP BACK TO TRY NEXT BLOCK 04103 044002 PK1: LDA RID1 X 04104 017700 SUB MID1 04105 100040 SZE 04106 003071 JMP PKTL PAGE 64 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04107 005742 PKTF: LDA (-40) 04110 050005 STA RTMO X 04111 000401 ENB 04112 033704 STX ORB 04113 005743 LDA (REAS 0 X) 04114 015702 ADD PKTN 04115 011705 STA ORS /BUILD POINTER TO CORRECT SLOT IN RE 04116 105705 LDA ORS I 04117 100040 SZE 04120 103736 JMP (RACK) I /JUMP IF IT IS ALREADY FILLED 04121 004624 LDA THIS 04122 111705 STA ORS I /PUT PACKET IN REASSEMBLY BLOCK 04123 005701 LDA PKTW 04124 101400 SMI 04125 003147 JMP NOTL /JUMP IF THIS IS NOT THE LAST PACKET 04126 005702 LDA PKTN 04127 050004 STA RMAX X /SAVE PACKET NUMBER 04130 017740 SUB (7) 04131 140407 TCA 04132 011706 STA SURP /RELEASE SURPLUS PACKETS 04133 072624 LDX THIS 04134 044005 LDA USED X 04135 100040 SZE 04136 003156 JMP TRAC 04137 005706 LDA SURP 04140 001001 INH 04141 014713 ADD NRES 04142 010713 STA NRES 04143 004621 LDA NFA 04144 015706 ADD SURP 04145 010621 STA NFA 04146 003153 JMP NL1 04147 072624 NOTL: LDX THIS 04150 044005 LDA USED X 04151 100040 SZE 04152 003156 JMP TRAC 04153 001001 NL1: INH 04154 024621 IRS NFA 04155 021562 JST DOA 04156 004204 TRAC: LDA TIME /SET FOR THIS PKT TO DIE IN 30 SEC 04157 015744 ADD (1200.) 04160 050004 STA INCH X 04161 044007 LDA HEAD X 04162 007745 ANA (020000) 04163 100040 SZE 04164 121746 JST (TSUB) I 04165 073704 LDX ORB 04166 044003 LDA RSF X 04167 062004 CAS RMAX X 04170 003172 JMP .+2 04171 003175 JMP DONE /JUMP IF REASSEMBLY DONE 04172 141206 AOA 04173 050003 STA RSF X 04174 103747 JMP (TSKL) I /JUMP TO GET THE NEXT TASK PAGE 65 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04175 044006 DONE: LDA REAS X 04176 011711 STA CP 04177 005750 LDA (-8) 04200 011707 STA T12 04201 044007 CHN: LDA REAS+1 X 04202 150006 STA REAS I X 04203 024000 IRS 0 04204 101040 SNZ 04205 003214 JMP P11 04206 025707 IRS T12 04207 003201 JMP CHN 04210 140040 CRA 04211 150005 STA REAS-1 I X 04212 005751 LDA (-1) 04213 011707 STA T12 04214 044005 P11: LDA REAS-1 X 04215 010000 STA 0 04216 011712 STA CPE 04217 001001 INH 04220 105704 LDA ORB I 04221 111714 STA PKBK I 04222 005704 LDA ORB 04223 026443 IMA RASF 04224 110443 STA RASF I 04225 000401 ENB PAGE 66 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04226 044010 OOF1: LDA HEAD+1 X 04227 040672 ARR 6 04230 007752 ANA (3) 04231 011710 STA T13 04232 044007 LDA HEAD X 04233 007753 ANA (002000) 04234 100040 SZE 04235 003247 JMP DISC 04236 044007 LDA HEAD X 04237 007754 ANA (040000) 04240 101040 SNZ 04241 003245 JMP DON3 04242 005755 LDA (NH) /SET FOR FAKE HOST 04243 015710 ADD T13 04244 011710 STA T13 04245 140040 DON3: CRA 04246 003252 JMP DON5 04247 005740 DISC: LDA (NH+3) /DISCARDS ALL GO TO FH 3 04250 011710 STA T13 04251 005753 LDA (2000) /SET DISCARD BIT 04252 073711 DON5: LDX CP 04253 052007 ERA HEAD X 04254 007756 ANA (3000) 04255 052007 ERA HEAD X 04256 050007 STA HEAD X 04257 073703 LDX OURM 04260 044202 LDA MESS X /STEP MSG NUMBER 04261 141206 AOA 04262 007757 ANA (177477) /NOW MUST FLUSH CARRY 04263 050202 STA MESS X PAGE 67 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04264 073711 LDX CP 04265 044007 DON2: LDA HEAD X 04266 007760 ANA (4000) 04267 100040 SZE 04270 005761 LDA (EHPQ+0-EHQ) /PUT ON PRIORITY QUEUE 04271 015710 ADD T13 04272 010000 STA 0 04273 005711 LDA CP 04274 001001 INH 04275 150460 STA EHQ I X 04276 005712 LDA CPE 04277 050460 STA EHQ X 04300 005762 LDA (9) 04301 015707 ADD T12 04302 054550 ADD NHA X 04303 050550 STA NHA X 04304 073710 LDX T13 04305 001001 INH 04306 105763 LDA (IHLO 0 X) I 04307 017764 SUB (IH1) 04310 101040 SNZ 04311 120174 JST FIHE I 04312 000011 DXA 04313 103747 JMP (TSKL) I PAGE 68 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04314 044005 OOFO: LDA USED X 04315 100040 SZE 04316 003340 JMP OOF2 04317 001001 INH 04320 141206 AOA 04321 014623 ADD NREA 04322 016713 SUB NRES 04323 022123 CAS MAXR 04324 103734 JMP (FQ) I 04325 103734 JMP (FQ) I 04326 004621 LDA NFA 04327 016711 SUB NFS 04330 016114 SUB ONE 04331 016124 SUB MINF 04332 100400 SPL 04333 103734 JMP (FQ) I 04334 000401 ENB 04335 024623 IRS NREA 04336 001001 INH 04337 021562 JST DOA 04340 033711 OOF2: STX CP 04341 033712 STX CPE 04342 140040 CRA 04343 050000 STA 0 X 04344 004204 LDA TIME /THIS PKT DIES IN 30 SEC 04345 015744 ADD (1200.) 04346 050004 STA INCH X 04347 044007 LDA HEAD X 04350 007745 ANA (020000) 04351 100040 SZE 04352 121746 JST (TSUB) I 04353 072624 LDX THIS 04354 005750 LDA (-8) 04355 011707 STA T12 04356 003226 JMP OOF1 PAGE 69 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /* ENTER HERE WITH A NEW MESSAGE 04357 072624 NEW: LDX THIS 04360 044005 LDA USED X 04361 100040 SZE 04362 003456 JMP NEWM 04363 005701 LDA PKTW /ENTER HERE WITH A NEW MESSAGE 04364 100400 SPL 04365 003370 JMP NEW2 04366 005761 LDA (8) 04367 003372 JMP NEW3 04370 005702 NEW2: LDA PKTN /NUMBER WE NEED IS PACKET NUMBER+, I 04371 141206 AOA /...IS A LAST PACKET, OR OTHERWISE 8 04372 011713 NEW3: STA NWN 04373 001001 INH 04374 014623 ADD NREA 04375 016713 SUB NRES 04376 022123 CAS MAXR 04377 103734 JMP (FQ) I 04400 103734 JMP (FQ) I 04401 004621 LDA NFA 04402 016711 SUB NFS 04403 017713 SUB NWN 04404 016124 SUB MINF 04405 100400 SPL 04406 103734 JMP (FQ) I 04407 104443 LDA RASF I 04410 026443 IMA RASF /GET A REASSEMBLY BLOCK 04411 101040 SNZ 04412 003454 JMP NORB /JUMP IF THER ARE NONE 04413 010000 STA 0 04414 005713 LDA NWN 04415 014711 ADD NFS /ADD NUMBER WE NEED TO REASSEMBLY BL 04416 010711 STA NFS /IN USE AND SUBTRACT IT FROM FREE B! 04417 005713 LDA NWN 04420 014623 ADD NREA 04421 010623 STA NREA 04422 005741 P13A: LDA (SHRQ) 04423 011714 STA PKBK 04424 004000 LDA 0 04425 026456 IMA SHRQ 04426 050000 STA 0 X PAGE 70 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04427 140040 CRA 04430 050003 STA RSF X /CLEAR REASSEMBLY COUNT AND POINTER AND 8 PACKET POINTERS 04431 050006 STA REAS X 04432 050007 STA REAS+1 X 04433 050010 STA REAS+2 X 04434 050011 STA REAS+3 X 04435 050012 STA REAS+4 X 04436 050013 STA REAS+5 X 04437 050014 STA REAS+6 X 04440 050015 STA REAS+7 X 04441 027701 IMA PKTW 04442 006113 ANA SIGN 04443 140024 CHS 04444 101040 SNZ 04445 005702 LDA PKTN 04446 050004 STA RMAX X 04447 005677 LDA MID /REASSEMBLY MAX 04450 050001 STA RID X 04451 005700 LDA MID1 04452 050002 STA RID1 X 04453 003107 JMP PKTF 04454 010443 NORB: STA RASF /QUIT IF NO REASSEMBLY BUFFERS 04455 103734 JMP (FQ) I 04456 104443 NEWM: LDA RASF I 04457 026443 IMA RASF 04460 101040 SNZ 04461 003454 JMP NORB 04462 010000 STA 0 04463 003422 JMP P13A PAGE 71 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04464 016000 TKTO: DAC Q 04465 073741 LDX (SHRQ) 04466 033715 TKT1: STX TKTT 04467 044000 LDA 0 X 04470 101040 SNZ 04471 103464 JMP TKTO I /JUMP IF NO MORE BLOCKS 04472 010000 STA 0 04473 011716 STA TKTY 04474 044001 LDA RID X /THIS FROM A DEAD GUY? 04475 052002 ERA RID1 X 04476 007732 ANA (137777) 04477 052002 ERA RID1 X 04500 073765 LDX (DHT) 04501 001001 INH 04502 120177 JST HSTCHK I 04503 003507 JMP TKT3 04504 073716 LDX TKTY 04505 064005 IRS RTMO X 04506 003466 JMP TKT1 04507 073716 TKT3: LDX TKTY 04510 044001 LDA RID X /COMPUTE PROPER AMOUNT TO PUT BACK 04511 006121 ANA MSKR 04512 012106 ERA MINE 04513 001001 INH 04514 101040 SNZ 04515 003530 JMP TKT6 /FROM US 04516 044004 LDA RMAX X /DID WE GET LAST PKT? 04517 100400 SPL 04520 005740 LDA (7) /NO 04521 011546 STA TKTG /SAVE # TO PUT BACK 04522 141206 AOA 04523 056003 SUB RSF X /CORRECT FREE COUNT 04524 014621 ADD NFA /CALLS TO FLUS WILL GET REST 04525 010621 STA NFA 04526 005546 LDA TKTG 04527 003532 JMP TKT4 PAGE 72 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04530 044003 TKT6: LDA RSF X 04531 016114 SUB ONE 04532 014713 TKT4: ADD NRES 04533 010713 STA NRES 04534 005720 LDA TKTK /(TKTH) 04535 011546 STA TKTG 04536 005750 LDA (-8) 04537 011717 STA TKTC 04540 044006 TKT2: LDA REAS X 04541 101040 SNZ 04542 003550 JMP TKT5 04543 033721 STX TKTZ 04544 010000 STA 0 04545 103546 JMP TKTG I 04546 016000 TKTG: DAC Q 04547 073721 LDX TKTZ 04550 024000 TKT5: IRS 0 04551 025717 IRS TKTC 04552 003540 JMP TKT2 04553 000401 ENB 04554 105716 LDA TKTY I 04555 073715 LDX TKTT 04556 066000 IMA 0 X 04557 026443 IMA RASF 04560 110443 STA RASF I 04561 003466 JMP TKT1 PAGE 73 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /* DOA PUTS A BUFFER ON THE ACKNOWLEDGE QUEUE / X IN POINTS TO BUFFER 04562 016000 DOA: DAC Q 04563 044004 LDA INCH X 04564 011606 STA DOCH 04565 026000 IMA 0 04566 001001 INH 04567 066504 IMA EAQ-1 X 04570 064574 IRS NAA-1 X 04571 063606 CAS DOATB-1 X 04572 003574 JMP .+2 04573 016114 SUB ONE /=PTRA 04574 010000 STA 0 04575 004624 LDA THIS 04576 050001 STA PTRA X 04577 073606 LDX DOCH 04600 044361 LDA NONE-1 X 04601 100040 SZE 04602 021614 JST FUNR 04603 072624 LDX THIS 04604 000401 ENB 04605 103562 JMP DOA I 04606 DOCH: BSS 1 04607 000415 DOATB: SAQ 04610 000416 SAQ+1 04611 000417 SAQ+2 04612 000420 SAQ+3 04613 000421 SAQ+4 04614 000000 FUNR: 0 /RESTART A MODEM 04615 005766 LDA (-4) /LOCK OUT TIMEOUT 04616 170120 SMK INTM 04617 010120 STA PRIM 04620 000401 ENB 04621 120155 JST II2M I 04622 001001 INH 04623 005767 LDA (-2) /NOW RE-ENABLE TIMEOUT 04624 170120 SMK INTM 04625 010120 STA PRIM 04626 103614 JMP FUNR I PAGE 74 IMPSYS,2514,IMP 6:49 PM 12/22/1971 TINT: /TTY INTERRUPT 00063 004627 STDIL/ TINT 04627 000000 TINT/ 0 04630 011665 STA TINA 04631 000011 DXA 04632 003633 JMP . 1 04633 070004 TTSRDY 04634 003647 JMP TTRT /NOT REALLY A TTY INTERRUPT 04635 140040 CRA 04636 022716 CAS TTFG 04637 003662 JMP TIN1 /WE JUST TYPED A BACKSLASH 04640 003654 JMP TIN2 /NORMAL INTERRUPT 04641 030104 TTSOM /WE MUST TYPE A BACKSLASH 04642 005770 LDA (334) 04643 170004 TTOTA 04644 003662 JMP TIN1 04645 005751 LDA (-1) 04646 010716 TIN3: STA TTFG 04647 000043 TTRT: INK 04650 171020 OTK 04651 005665 LDA TINA 04652 000401 ENB 04653 103627 JMP TINT I 04654 105771 TIN2: LDA (OTGO) I 04655 100040 SZE 04656 003662 JMP TIN1 /THIS IS AN OUTPUT INTERRUPT 04657 131004 TTINAC 04660 003657 JMP .-1 04661 111772 STA (TTCR) I 04662 030004 TIN1: TTSIM 04663 004114 LDA ONE 04664 003646 JMP TIN3 04665 TINA: BSS 1 PAGE 75 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /CLEAR DEAD HOST TABLES 04666 CLRDHT: BSS 1 04667 073750 LDX (-8) 04670 005751 LDA (-1) 04671 111773 CRDHT1: STA (DHT+8 X) I 04672 050277 STA TDHT+8 X 04673 050307 STA HDHT+8 X 04674 024000 IRS 0 04675 003671 JMP CRDHT1 04676 103666 JMP CLRDHT I 04677 MID: BSS 1 /MESSAGE ID 04700 MID1: BSS 1 /MESSAGE ID: HOST ID 04701 PKTW: BSS 1 /MESSAGE: PACKET WORD 04702 PKTN: BSS 1 /MESSAGE: PACKET NUMBER 04703 OURM: BSS 1 /OUR MESSAGE NUMBER 04704 ORB: BSS 1 /OUR REASSEMBLY BUFFER 04705 ORS: BSS 1 /OUR REASSEMBLY SLOT 04706 SURP: BSS 1 /SURPLUS BUFFERS ASSIGNED TO REAS-=F 04707 T12: BSS 1 /TEMP 04710 T13: BSS 1 04711 CP: BSS 1 /CHAIN POINTER 04712 CPE: BSS 1 /CHAIN END POINTER 04713 NWN: BSS 1 /NUMBER WE NEED 04714 PKBK: BSS 1 04715 TKTT: BSS 1 04716 TKTY: BSS 1 04717 TKTC: BSS 1 04720 016611 TKTK: DAC TKTH 04721 TKTZ: BSS 1 04722 017221 TTOI: TTYI 04723 017146 DDOI: DOTI 04724 002436 BTOI: BTRE 04725 020000 STOI: STTI 04726 017407 TTII: TTO0 04727 017002 DDII: DIN4 04730 002402 PCII: BEST 04731 002422 STII: STXY PAGE 76 IMPSYS,2514,IMP 6:49 PM 12/22/1971 04732 137777 CONSTANTS 04733 074000 04734 003332 04735 037400 04736 003465 04737 140377 04740 000007 04741 000456 04742 177740 04743 040006 04744 002260 04745 020000 04746 003630 04747 003012 04750 177770 04751 177777 04752 000003 04753 002000 04754 040000 04755 000004 04756 003000 04757 177477 04760 004000 04761 000010 04762 000011 04763 050046 04764 010426 04765 012247 04766 177774 04767 177776 04770 000334 04771 017470 04772 017261 04773 052257 14172 004774 PAGEND 4 PAGE 77 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /** MODEM ROUTINES *** /* MODEM TO IMP INTERRUPT ROUTINE (M2I) 00064 005000 M1INIL/ M2I1 00065 005022 M2INIL/ M2I2 00066 005044 M3INIL/ M2I3 00067 005066 M4INIL/ M2I4 00070 005110 M5INIL/ M2I5 5000/ PAGE 78 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05000 000000 M2I1: 0 /MODEM 1 ENTRANCE 05001 000011 DXA 05002 033262 STX TX 05003 011261 STA TA 05004 072114 LDX ONE 05005 070471 DEFSTAT M1ERR,MI1 00740 021137 20302 005005 20257 070471 05006 003132 JMP M2I 05007 101000 NOP 05010 004021 DIS1: LDA M1INBP+1 05011 017704 SUB (67.) 05012 010020 STA M1INBP 05013 030471 M1IN /ERROR- NEW "IN" INTO SAME BUFFER 05014 000043 DPP1: INK 05015 171020 OTK 05016 005261 LDA TA 05017 073262 LDX TX 05020 000401 ENB 05021 103000 JMP M2I1 I 05022 000000 M2I2: 0 /MODEM 2 ENTRANCE 05023 000011 DXA 05024 033262 STX TX 05025 011261 STA TA 05026 073705 LDX (2) 05027 070472 DEFSTAT M2ERR,MI1A 00741 021167 20303 005027 20260 070472 05030 003132 JMP M2I 05031 101000 NOP 05032 004023 DIS2: LDA M2INBP+1 05033 017704 SUB (67.) 05034 010022 STA M2INBP 05035 030472 M2IN 05036 000043 DPP2: INK 05037 171020 OTK 05040 005261 LDA TA 05041 073262 LDX TX 05042 000401 ENB 05043 103022 JMP M2I2 I PAGE 79 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05044 000000 M2I3: 0 /MODEM 3 ENTRANCE 05045 000011 DXA 05046 033262 STX TX 05047 011261 STA TA 05050 073706 LDX (3) 05051 070473 DEFSTAT M3ERR,MI1B 00742 021176 20304 005051 20261 070473 05052 003132 JMP M2I 05053 101000 NOP 05054 004025 DIS3: LDA M3INBP+1 05055 017704 SUB (67.) 05056 010024 STA M3INBP 05057 030473 M3IN 05060 000043 DPP3: INK 05061 171020 OTK 05062 005261 LDA TA 05063 073262 LDX TX 05064 000401 ENB 05065 103044 JMP M2I3 I 05066 000000 M2I4: 0 /MODEM 4 ENTRANCE 05067 000011 DXA 05070 033262 STX TX 05071 011261 STA TA 05072 073707 LDX (4) 05073 070474 DEFSTAT M4ERR,MI1C 00743 021205 20305 005073 20262 070474 05074 003132 JMP M2I 05075 101000 NOP 05076 004027 DIS4: LDA M4INBP+1 05077 017704 SUB (67.) 05100 010026 STA M4INBP 05101 030474 M4IN 05102 000043 DPP4: INK 05103 171020 OTK 05104 005261 LDA TA 05105 073262 LDX TX 05106 000401 ENB 05107 103066 JMP M2I4 I 05110 000000 M2I5: 0 /MODEM 5 ENTRANCE 05111 000011 DXA 05112 033262 STX TX 05113 011261 STA TA 05114 073710 LDX (5) 05115 070475 DEFSTAT M5ERR,MI1D 00744 021214 20306 005115 20263 070475 05116 003132 JMP M2I 05117 101000 NOP 05120 004031 DIS5: LDA M5INBP+1 05121 017704 SUB (67.) 05122 010030 STA M5INBP 05123 030475 M5IN 05124 000043 DPP5: INK 05125 171020 OTK 05126 005261 LDA TA 05127 073262 LDX TX 05130 000401 ENB 05131 103110 JMP M2I5 I PAGE 80 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05132 033260 M2I: STX MP 05133 004441 LDA FREE 05134 101040 SNZ 05135 003265 JMP BT 05136 024711 IRS NFS 05137 104441 LDA FREE I 05140 026441 IMA FREE 05141 015711 P1: ADD (HEAD 0 I) 05142 143142 JMP DIP-1 XI 05143 005200 DIP: DP1 05144 005172 DP2 05145 005164 DP3 05146 005156 DP4 05147 005150 DP5 05150 072030 DP5: LDX M5INBP 05151 010030 STA M5INBP 05152 015704 ADD (67.) 05153 026031 IMA M5INBP+1 05154 030475 M5IN 05155 003205 JMP DIPE 05156 072026 DP4: LDX M4INBP 05157 010026 STA M4INBP 05160 015704 ADD (67.) 05161 026027 IMA M4INBP+1 05162 030474 M4IN 05163 003205 JMP DIPE 05164 072024 DP3: LDX M3INBP 05165 010024 STA M3INBP 05166 015704 ADD (67.) 05167 026025 IMA M3INBP+1 05170 030473 M3IN 05171 003205 JMP DIPE 05172 072022 DP2: LDX M2INBP 05173 010022 STA M2INBP 05174 015704 ADD (67.) 05175 026023 IMA M2INBP+1 05176 030472 M2IN 05177 003205 JMP DIPE PAGE 81 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05200 072020 DP1: LDX M1INBP 05201 010020 STA M1INBP 05202 015704 ADD (67.) 05203 026021 IMA M1INBP+1 05204 030471 M1IN 05205 017712 DIPE: SUB (67.+HEAD I) 05206 026000 IMA 0 05207 017713 SUB (100001) 05210 050112 STA BUFE X 05211 140040 DEFARV CRA 00133 005211 00134 140040 05212 050000 STA 0 X 05213 131040 RDCLOK 05214 003213 JMP .-1 05215 050003 STA IT X 05216 005260 LDA MP 05217 050004 STA INCH X 05220 044007 LDA HEAD X 05221 100400 SPL 05222 003246 JMP P2 /ACKNOWLEDGE 05223 100100 SLZ 05224 003230 JMP LT /LINETEST/ROUTING 05225 132536 STX ETQS I 05226 032536 STX ETQS 05227 003250 JMP P3 05230 141044 LT: CAR 05231 013260 ERA MP 05232 011264 STA CSY3 05233 004635 DEFSTAT LDA THD,MI2 00745 021146 20307 005233 20264 004635 05234 015714 ADD (CH+1) 05235 013264 ERA CSY3 05236 041477 LGL 1 05237 100400 SPL 05240 003246 JMP P2 /DON'T SYNC OFF OF SEND CORE 05241 041471 LGL 7 05242 100040 SZE 05243 003246 JMP P2 05244 044010 LDA HEAD+1 X 05245 010714 STA SYNC 05246 132534 P2: STX ETQF I 05247 032534 STX ETQF PAGE 82 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05250 030041 P3: OCP TASK 05251 073260 LDX MP 05252 143252 JMP DIPP-1 XI 05253 005014 DIPP: DPP1 05254 005036 DPP2 05255 005060 DPP3 05256 005102 DPP4 05257 005124 DPP5 05260 MP: BSS 1 /# OF MODEM RUNNING NOW 05261 TA: BSS 1 05262 TX: BSS 1 05263 TM: BSS 1 05264 CSY3: BSS 1 05265 004446 BT: LDA STQS 05266 101040 DEFSTAT SNZ,MI3 00746 021160 20310 005266 20265 101040 05267 143276 JMP DIS-1 XI 05270 104446 LDA STQS I 05271 100040 SZE 05272 003275 JMP P5 05273 073715 LDX (STQS) 05274 032536 STX ETQS 05275 026446 P5: IMA STQS 05276 003141 JMP P1 05277 005010 DIS: DIS1 05300 005032 DIS2 05301 005054 DIS3 05302 005076 DIS4 05303 005120 DIS5 PAGE 83 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05304 000000 SUC: DAC 0 05305 005304 LDA SUC 05306 051345 STA SUCT X 05307 105716 SUC1: LDA (IHBB 0 X) I 05310 100040 SZE 05311 003314 JMP SUC4 05312 120173 JST WAIT I DEFPLC [SUCK CALL TO WAIT] 05313 003307 JMP .-4 05314 105717 SUC4: LDA (IHBC 0 X) I 05315 117716 SUB (IHBB 0 X) I 05316 101400 SMI 05317 003331 JMP SUC2 05320 033344 STX SUCX 05321 004000 LDA 0 05322 015707 ADD (NH) 05323 010000 STA 0 05324 001001 INH 05325 120174 JST FIHE I 05326 073344 LDX SUCX 05327 000011 DXA 05330 003307 JMP SUC1 05331 100040 SUC2: SZE 05332 003341 JMP SUC3 05333 105720 LDA (IHSP+NH X) I 05334 015721 ADD (10) /(HEADER+1) 05335 011351 STA SCT2 05336 105351 LDA SCT2 I 05337 100400 SPL 05340 065345 IRS SUCT X 05341 105722 SUC3: LDA (IHBB 0 XI) I 05342 125716 IRS (IHBB 0 X) I 05343 143345 JMP SUCT I X 05344 000000 SUCX: DAC 0 DEFPLC [SUCT] 05345 SUCT: BSS FH 05351 SCT2: BSS 1 PAGE 84 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05352 000000 GAM: DAC 0 05353 111723 STA (HIBB 0 XI) I 05354 005352 LDA GAM 05355 051411 STA GAMT X 05356 125724 IRS (HIBB 0 X) I 05357 004000 LDA 0 05360 100400 SPL 05361 003407 JMP GAM2 05362 105725 LDA (HIBC 0 X) I 05363 117724 SUB (HIBB 0 X) I 05364 101400 SMI 05365 143411 JMP GAMT I X 05366 005726 LDA (NOP) 05367 111727 GAM1: STA (EMFH+NH X) I 05370 004000 LDA 0 05371 140100 SSP 05372 011415 STA GAMX 05373 015707 ADD (NH) 05374 010000 STA 0 05375 001001 INH 05376 120176 JST FHIE I /(HISB) 05377 000011 DXA 05400 003401 JMP . 1 05401 073415 LDX GAMX 05402 105730 GAM3: LDA (HITT+NH X) I 05403 101040 SNZ 05404 143411 JMP GAMT I X 05405 120171 JST DOZE I DEFPLC [JAM CALL TO DOZE] 05406 003402 JMP GAM3 05407 004113 GAM2: LDA SIGN 05410 003367 JMP GAM1 DEFPLC [GAMT] 05411 GAMT: BSS FH 05415 000000 GAMX: DAC 0 PAGE 85 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /LIGHTS DISPLAY *** 05416 000000 LITE: DAC 0 05417 070026 AMI516 /WHAT AM I? 05420 103416 JMP LITE I /IGNORE THIS ROUTINE ON H-316 05421 140040 CRA 05422 011440 STA LITS 05423 073731 LDX (-16.) 05424 145461 LIT2: LDA LITT+16. I X 05425 100040 SZE 05426 004113 LDA SIGN 05427 013440 ERA LITS 05430 041677 ALR 1 05431 011440 STA LITS 05432 024000 IRS 0 05433 003424 JMP LIT2 05434 013705 ERA (2) 05435 170026 LITES 05436 003435 JMP .-1 05437 103416 JMP LITE I DEFPLC [LITE DISPLAY WD - 516 ONLY] 05440 000000 LITS: PZE /LIGHTS TABLE AND CONDITION INDICATED BY LIT LIGHT DEFPLC [LITE REFERENCE ADDR TABLE] 05441 000355 LITT: LINE /1 - 1ST CHANNEL DEAD 05442 000356 LINE+1 /2 - 2D CHANNEL DEAD 05443 000357 LINE+2 /3 - 3D CHANNEL DEAD 05444 000360 LINE+3 /4 - 4TH CHANNEL DEAD 05445 000720 HIHD /5 - HOST 1 DEAD 05446 000721 HIHD+1 /6 - HOST 2 DEAD 05447 000722 HIHD+2 /7 - HOST 3 DEAD 05450 000723 HIHD+3 /8 - HOST 4 DEAD 05451 000115 ZERO /9 - SPARE 05452 000115 ZERO /10 - SPARE 05453 000115 ZERO /11 - SPARE 05454 000115 ZERO /12 - SPARE 05455 000115 ZERO /13 - SPARE 05456 000115 ZERO /14 - SPARE 05457 000441 FREE /]5 - FREE LIST EMPTY 05460 003204 LUUP /16 - ANY MODEM LOOPED 05461 000307 SWCHT: TRON /TABLE OF WHERE FLAGS ARE 05462 000310 SNON 05463 000311 SON 05464 000312 SON+1 /MGEN ON 05465 000315 SAON 05466 000200 SWCHB: 200 /TABLE OF WHAT BITS THEY MAP INTO 05467 000400 400 05470 001000 1000 05471 002000 2000 05472 004000 4000 PAGE 86 IMPSYS,2514,IMP 6:49 PM 12/22/1971 SWCHTL=SWCHB+0-SWCHT /NUMBER OF FLAGS 05473 000000 SWCH: 0 /SET UP SWITCH SETTINGS FOR TROUB.= 05474 004367 LDA SW3FG 05475 101400 SMI 05476 005732 LDA (-3) 05477 012222 ERA OVRDF 05500 100020 SR1 05501 007733 ANA (-11) 05502 100010 SR2 05503 007734 ANA (-5) 05504 100004 SR3 05505 007732 ANA (-3) 05506 100002 SR4 05507 007735 ANA (-2) 05510 140401 CMA 05511 011552 STA SWCHTM 05512 140040 CRA 05513 127736 IMA (BLF) I /CHECK FOR A SICK MODEM INTERFACE 05514 100040 SZE 05515 005737 LDA (40) /THERE IS ONE- SET SS "-1" 05516 013552 ERA SWCHTM 05517 011552 STA SWCHTM 05520 127740 IMA (1000) I /CHECK MEMORY PROTECT 05521 123740 CAS (1000) I 05522 100000 SKP 05523 003530 JMP SWCH1 05524 111740 STA (1000) I /MP IS OFF 05525 005741 LDA (100) 05526 013552 ERA SWCHTM 05527 011552 STA SWCHTM 05530 073734 SWCH1: LDX (-SWCHTL) 05531 145466 SWCH4: LDA SWCHT+SWCHTL XI 05532 101040 SNZ 05533 003537 JMP SWCH3 05534 045473 LDA SWCHB+SWCHTL X /SET THE BIT 05535 013552 ERA SWCHTM 05536 011552 STA SWCHTM 05537 024000 SWCH3: IRS 0 05540 003531 JMP SWCH4 05541 005552 LDA SWCHTM 05542 127742 IMA (SWS) I 05543 113742 ERA (SWS) I 05544 101040 SNZ 05545 103473 JMP SWCH I 05546 004714 LDA SYNC 05547 117743 SUB (FREQ+3) I 05550 111744 STA (OLDS+3) I 05551 103473 JMP SWCH I 05552 SWCHTM: BSS 1 PAGE 87 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /SEND 10 SECOND STATISTICS 05553 004326 SEST: LDA SDST 05554 121745 JST (GIVE) I 05555 004320 LDA SLNK 05556 121745 JST (GIVE) I 05557 005705 LDA (2) 05560 121745 JST (GIVE) I 05561 004204 LDA TIME 05562 121745 JST (GIVE) I 05563 073746 LDX (-NST) 05564 105747 LDA (STTB+NST X) I 05565 121745 JST (GIVE) I 05566 024000 IRS 0 05567 003564 JMP .-3 05570 121750 JST (CLST) I 05571 121751 JST (GIVD) I 05572 103752 JMP (SP91) I /INITIALIZATION TABLE FOR REGUALR IMP 05573 ITBIMP: BSS MAXITB 05617 070270 EMIT: H1EOM /TABLE OF ENDS OF MESSAGES 05620 070260 H2EOM 05621 070250 TIPDEF H3EOM,SKP 02607 005621 05576 070250 14255 100000 05622 070251 H4EOM 05623 100000 SKP 05624 100000 SKP 05625 100000 SKP 05626 100000 SKP PAGE 88 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /HOST THROUGHPUT TABLES AND COUNT ROUTINE 05627 000000 HTPIRS: 0 /TBL IN A, HOST NUM IN X 05630 011643 STA HTPIR1 05631 004000 LDA 0 05632 017707 SUB (NH) 05633 101400 SMI 05634 003641 JMP HTPIR2 05635 105643 LDA HTPIR1 I 05636 141206 AOA 05637 101400 SMI 05640 111643 STA HTPIR1 I 05641 000401 HTPIR2: ENB 05642 103627 JMP HTPIRS I 05643 HTPIR1: BSS 1 HTPTBL: /TABLE OF HOST THROUGHPUTS 05644 HTPMTN: BSS NH 05650 HTPMFN: BSS NH 05654 HTPPTN: BSS NH 05660 HTPPFN: BSS NH 05664 HTPMTL: BSS NH 05670 HTPMFL: BSS NH 05674 HTPPTL: BSS NH 05700 HTPPFL: BSS NH PAGE 89 IMPSYS,2514,IMP 6:49 PM 12/22/1971 05704 000103 CONSTANTS 05705 000002 05706 000003 05707 000004 05710 000005 05711 100007 05712 100112 05713 100001 05714 000006 05715 000446 05716 050221 05717 050235 05720 050130 05721 000010 05722 150221 05723 152717 05724 052717 05725 052723 05726 101000 05727 047132 05730 052635 05731 177760 05732 177775 05733 177767 05734 177773 05735 177776 05736 003203 05737 000040 05740 001000 05741 000100 05742 020400 05743 020351 05744 020343 05745 006463 05746 177477 05747 061755 05750 011551 05751 006471 05752 020062 14173 005763 PAGEND 5 PAGE 90 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /IMP TO MODEM (I2M) /OA,OM,OL OLD ACKNOWLEDGE,MESSAGE AND LINE TEST /NA,NM,NL NEW ACKNOWLEDGE,MESSAGE AND LINE TEST /NH,NIH,NP,NRF NEW HELLO, I HEARD YOU, PRIORITY, AND RFNM 00071 006036 M1OTIL/ DAC I2M1 00072 006032 M2OTIL/ DAC I2M2 00073 006026 M3OTIL/ DAC I2M3 00074 006022 M4OTIL/ DAC I2M4 00075 006016 M5OTIL/ DAC I2M5 ORG 6000 /** A SUBROUTINE TO RELEASE A RELEASABLE PACKET, AND TO /** UPDATE THE RELEASE COUNT ON OTHER PACKETS. /** INDEX REG CONTAINS POINTER TO THE PACKET. LOCK INTERRU-TS 06000 016000 FLU: DAC Q 06001 044005 LDA USED X 06002 100400 SPL 06003 003010 JMP P60A 06004 140024 CHS 06005 050005 STA USED X 06006 000401 ENB 06007 103000 JMP FLU I 06010 004441 P60A: LDA FREE 06011 050000 STA 0 X 06012 032441 STX FREE 06013 024621 IRS NFA 06014 000401 ENB 06015 103000 JMP FLU I PAGE 91 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /** IMP TO MODEM INTERRUPTS COME TO THIS PAGE. 06016 016000 I2M5: DAC Q 06017 033432 STX TXTX 06020 073701 LDX (4) 06021 003041 JMP I2M 06022 016000 I2M4: DAC Q 06023 033432 STX TXTX 06024 073702 LDX (3) 06025 003041 JMP I2M 06026 016000 I2M3: DAC Q 06027 033432 STX TXTX 06030 073703 LDX (2) 06031 003041 JMP I2M 06032 016000 I2M2: DAC Q 06033 033432 STX TXTX 06034 072114 LDX ONE 06035 003041 JMP I2M 06036 016000 I2M1: DAC Q 06037 033432 STX TXTX 06040 072115 LDX ZERO PAGE 92 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06041 033434 I2M: STX OCHN /SAVE AND CHANGE PRIORITIES 06042 011430 STA TATA 06043 000011 DXA 06044 003045 JMP . 1 06045 000043 INK 06046 011431 STA TCTC 06047 004226 LDA MOM 06050 170120 SMK INTM 06051 026120 IMA PRIM 06052 011433 STA TMTM 06053 000401 ENB 06054 143443 JMP OLDK I X 06055 045436 OA: LDA OLDP X 06056 010000 STA 0 06057 001001 INH /FREE HALF OF BUFFER 06060 021000 JST FLU 06061 003070 JMP OL 06062 140040 OM: CRA 06063 151436 STA OLDP I X 06064 045436 LDA OLDP X 06065 150500 STA ESQ I X 06066 050500 STA ESQ X 06067 064570 IRS NSA X 06070 073434 OL: LDX OCHN 06071 044205 LDA SLT X /WHAT IS THE NEW TRANSMISSION 06072 100040 SZE 06073 003111 JMP NL /JUMP IF NEW LINE TEST 06074 044415 LDA SAQ X 06075 100040 SZE 06076 003151 JMP NA /JUMP IF NEW ACKNOWLEDGE 06077 044427 LDA SPQ X 06100 100040 SZE 06101 003173 JMP NP 06102 044434 LDA SRFQ X 06103 100040 SZE 06104 003205 JMP NRF /JUMP IF NEW RFNM 06105 044422 LDA SOQ X 06106 101040 SNZ 06107 003305 JMP QUIT 06110 003221 JMP NM PAGE 93 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06111 005704 NL: LDA (OL) /WE HAVE A NEW LINE TEST TO SEND 06112 051443 STA OLDK X 06113 140040 CRA 06114 050205 STA SLT X 06115 051436 STA OLDP X 06116 066212 IMA SIHY X 06117 041677 ALR 1 06120 100400 SPL 06121 003145 JMP NCOR /GO SEND CORE 06122 100040 DEFSTAT SZE,IM2 00747 021076 20311 006122 20266 100040 06123 005705 LDA (4000) /SEND AN I HEARD YOU 06124 012114 ERA ONE 06125 111706 STA (RSTX) I 06126 004714 LDA SYNC 06127 110151 STA IRST I 06130 140040 CRA /COMPUTE CHECKSUM 06131 073707 LDX (-[LRUT+2]) 06132 141206 AOA 06133 114152 ADD IXRSMS I 06134 024000 IRS 0 06135 003132 JMP .-3 06136 140407 TCA 06137 111710 STA (RSCKSM) I 06140 073434 LDX OCHN 06141 005706 LDA (RSTX) 06142 151451 STA MOPX I X 06143 015711 ADD (LRUT+2) 06144 003260 JMP P63A 06145 005712 NCOR: LDA (60) 06146 151451 STA MOPX XI 06147 005713 LDA (21777) 06150 003257 JMP P63 PAGE 94 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06151 051436 NA: STA OLDP X 06152 010000 DEFSTAT STA 0,IM4 00750 021103 20312 006152 20267 010000 06153 044001 LDA PTRA X 06154 073434 LDX OCHN 06155 050415 STA SAQ X 06156 100040 SZE 06157 003163 JMP .+4 06160 005714 LDA (SAQ) 06161 015434 ADD OCHN 06162 050505 STA EAQ X 06163 064665 IRS NAS X 06164 005715 LDA (OA) 06165 051443 STA OLDK X 06166 045436 LDA OLDP X /SET UP OUTPUT OF ACKNOWLEDGE 06167 015716 ADD (ACKH) 06170 151451 STA MOPX I X 06171 015701 ADD (4) 06172 003257 JMP P63 PAGE 95 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06173 051436 NP: STA OLDP X /WE HAVE A NEW PRIORITY TO SEND 06174 145436 LDA OLDP I X /GET IT FROM QUEUE 06175 050427 STA SPQ X 06176 100040 SZE 06177 003203 JMP .+4 06200 005717 LDA (SPQ) 06201 015434 ADD OCHN 06202 050517 STA EPQ X 06203 064677 IRS NPS X 06204 003232 JMP PS61 06205 051436 NRF: STA OLDP X /WE HAVE A NEW RFNM TO SEND 06206 145436 LDA OLDP I X /GET IT FROM QUEUE 06207 050434 STA SRFQ X 06210 100040 SZE 06211 003215 JMP .+4 06212 005720 LDA (SRFQ) 06213 015434 ADD OCHN 06214 050524 STA ERFQ X 06215 064704 DEFSTAT IRS NRFS X,IM3 00751 021107 20313 006215 20270 064704 06216 045436 LDA OLDP X 06217 015721 ADD (HEAD) 06220 003234 JMP PS62 06221 051436 NM: STA OLDP X /WE HAVE A NEW MESSAGE TO SEND 06222 145436 LDA OLDP I X /GET IT FROM QUEUE 06223 050422 STA SOQ X 06224 100040 SZE 06225 003231 JMP .+4 06226 005722 LDA (SOQ) 06227 015434 ADD OCHN 06230 050512 STA EOQ X 06231 064672 IRS NOS X 06232 045436 PS61: LDA OLDP X 06233 015721 DEFSTAT ADD (HEAD),IM1 00752 021113 20314 006233 20271 015721 PAGE 96 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06234 151451 PS62: STA MOPX I X 06235 005723 LDA (OM) 06236 051443 STA OLDK X 06237 045436 LDA OLDP X 06240 010000 STA 0 06241 131040 INA CLOK 06242 003241 JMP .-1 06243 050003 STA ST X 06244 101020 SS1 /TO SWAP SOURCE AND DEST. 06245 003256 JMP SWP1+1 06246 044011 LDA HEAD+2 X 06247 052010 ERA HEAD+1 X 06250 141044 CAR 06251 052010 ERA HEAD+1 X 06252 066011 IMA HEAD+2 X 06253 052011 ERA HEAD+2 X 06254 052010 ERA HEAD+1 X 06255 050010 SWP1: STA HEAD+1 X 06256 044112 LDA BUFE X 06257 073434 P63: LDX OCHN 06260 151456 P63A: STA MOP1 I X 06261 001001 INH 06262 005433 LDA TMTM 06263 010120 STA PRIM 06264 170120 SMK INTM 06265 144071 LDA 71 IX 06266 011435 STA IRET 06267 045300 LDA MXOUT X 06270 011271 STA . 1 06271 000000 0 06272 005431 LDA TCTC 06273 171020 OTK 06274 005430 LDA TATA 06275 073432 LDX TXTX 06276 000401 ENB 06277 103435 JMP IRET I PAGE 97 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06300 030071 MXOUT: M1OUT 06301 030072 M2OUT 06302 030073 M3OUT 06303 030074 M4OUT 06304 030075 M5OUT 06305 141206 QUIT: AOA 06306 050362 STA NONE X 06307 005704 LDA (OL) 06310 051443 STA OLDK X 06311 005433 LDA TMTM 06312 001001 INH 06313 010120 STA PRIM 06314 170120 SMK INTM 06315 144071 LDA 71 I X 06316 011435 STA IRET 06317 005431 LDA TCTC 06320 171020 OTK 06321 005430 LDA TATA 06322 073432 LDX TXTX 06323 000401 ENB 06324 103435 JMP IRET I PAGE 98 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TIMEOUT COMES HERE EVERY FAST TIMEOUT 06325 016000 RES: DAC Q 06326 005724 LDA (-NAPL) 06327 011450 STA REST 06330 072115 LDX ZERO 06331 001001 RES1: INH /START UP OUTPUT IF IT'S WAITING 06332 140040 CRA 06333 066362 IMA NONE X 06334 101040 SNZ 06335 003343 JMP RES2 06336 005704 LDA (OL) 06337 051443 STA OLDK X 06340 160071 JST M1OTIL XI 06341 000011 DXA 06342 003343 JMP . 1 06343 000401 RES2: ENB 06344 024000 IRS 0 06345 025450 IRS REST 06346 003331 JMP RES1 06347 103325 JMP RES I PAGE 99 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06350 000000 HTEST: 0 /HOST & MODEM INTERFACE CONTROL 06351 004113 LDA SIGN 06352 027420 IMA INPROG 06353 100400 SPL /WERE WE DOING SOMETHING? 06354 003375 JMP HT1 /NO 06355 010000 STA 0 /YES, FINISH IT 06356 015725 ADD (M1IN-1) 06357 011415 STA HT5 06360 005417 LDA HTOLD /DID WE JUST UNPATCH A MODEM? 06361 007721 ANA (7) 06362 023702 CAS (3) /WHAT WERE WE DOING? 06363 103350 JMP HTEST I /A HOST THING - WE'RE DONE 06364 100000 SKP /MODEM UNPATCH, MORE TO DO 06365 003415 JMP HT5 /MODEM OTHER, WE'RE ALMOST THROUG" 06366 044362 LDA NONE X /YES, PUT THE OUT BACK UP 06367 100040 SZE 06370 003415 JMP HT5 /WEREN'T DOING ANYTHING ANYWAY 06371 001001 INH 06372 160071 JST M1OTIL XI 06373 000011 DXA 06374 003415 JMP HT5 06375 004223 HT1: LDA HTPAR /SOMETHING NEW TO DO? 06376 027417 IMA HTOLD 06377 013417 ERA HTOLD 06400 101040 SNZ 06401 103350 JMP HTEST I /NO 06402 005417 LDA HTOLD /GET FUNCTION REQUESTED 06403 007721 ANA (7) 06404 101040 SNZ 06405 103350 JMP HTEST I /NONE ?! 06406 010000 STA 0 06407 005417 LDA HTOLD /GET INTERFACE NUMBER 06410 040575 ARS 3 06411 007726 ANA (77) 06412 011420 STA INPROG 06413 055420 ADD HTTAB-1 X 06414 011415 STA HT5 06415 000000 HT5: 0 /EXECUTE PROPER OCP HERE 06416 103350 JMP HTEST I 06417 HTOLD: BSS 1 06420 INPROG: BSS 1 06421 030270 HTTAB: M1LXP-1 /1 - LINE CROSSPATCH 06422 030370 M1IXP-1 /2 - INTERFACE CROSSPATCH 06423 030170 M1UNXP-1 /3 - UNPATCH (RESTORE) 06424 030300 H1XP-70 /4 - CROSSPATCH HOST INTERFACE 06425 030500 H1ENAB-70 /5 - ENABLE NORMAL HOST TRAFFIC 06426 030400 H1UNXP-70 /6 - UNPATCH (CLEAR) HOST INTERFACE 06427 101000 NOP /7 PAGE 100 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06430 000000 TATA: 0 /TEMP A 06431 000000 TCTC: 0 /TEMP KEYS 06432 000000 TXTX: 0 /TEMP X 06433 000000 TMTM: 0 /TEMP M 06434 000000 OCHN: 0 06435 000000 IRET: 0 06436 OLDP: BSS CH /OLD POINTER TO THE BUFFER JUST SENT 06443 OLDK: BSS CH /DISPATCH OLD KIND. MUST FOLLOW O.DP /QP TO WORK 06450 000000 REST: 0 MOPX: IRPC [N,,12345] M'N'OTBP 06451 000032 ENDIRP 06452 000034 06453 000036 06454 000040 06455 000042 MOP1: IRPC [N,,12345] M'N'OTBP+1 06456 000033 ENDIRP 06457 000035 06460 000037 06461 000041 06462 000043 PAGE 101 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06463 000000 GIVE: 0 06464 033500 STX STT8 06465 073702 LDX (3) 06466 120170 JST JAM I 06467 073500 LDX STT8 06470 103463 JMP GIVE I 06471 000000 GIVD: DAC 0 06472 033500 STX STT8 06473 073727 LDX (100003) 06474 004113 LDA SIGN 06475 120170 JST JAM I 06476 073500 LDX STT8 06477 103471 JMP GIVD I 06500 STT8: BSS 1 PAGE 102 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06501 000000 NTR: 0 /NEW TROUBLE REPORTS 06502 005730 LDA (5) /HOST 0 AT SITE 5 06503 021463 JST GIVE 06504 005731 LDA (2000) 06505 021463 JST GIVE 06506 005732 LDA (102) 06507 011700 STA NTRCKS 06510 021463 JST GIVE 06511 140040 CRA 06512 026117 IMA RSFLAG 06513 100040 SZE 06514 005733 LDA (20) 06515 113734 ERA (SWS) I 06516 013735 ERA (170000) 06517 070170 H1RDY 06520 140100 SSP 06521 070160 H2RDY 06522 013736 ERA (40000) 06523 070150 H3RDY 06524 013737 ERA (20000) 06525 070151 H4RDY 06526 013740 ERA (10000) 06527 021671 JST NTGIVE 06530 001001 INH 06531 004621 LDA NFA 06532 016711 SUB NFS 06533 021671 JST NTGIVE 06534 001001 INH 06535 004622 LDA NSFA 06536 016712 SUB NSFS 06537 021671 JST NTGIVE 06540 001001 INH 06541 004623 LDA NREA 06542 016713 SUB NRES 06543 021671 JST NTGIVE 06544 004105 LDA VERS 06545 021671 JST NTGIVE 06546 105741 LDA (HLNM) I /NOW FOR HOST TEST INFO 06547 021671 JST NTGIVE 06550 140040 CRA 06551 127742 IMA (HLSNT) I 06552 021671 JST NTGIVE 06553 140040 CRA 06554 127743 IMA (HLRCVD) I 06555 021671 JST NTGIVE 06556 105744 LDA (RTSNTS) I 06557 021671 JST NTGIVE PAGE 103 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06560 072116 LDX MICH 06561 033667 NTR1: STX NTRTM2 06562 044362 LDA LINE+CH X 06563 100040 SZE 06564 004113 LDA SIGN 06565 113745 ERA (E321+CH X) I /GET GOOD COUNT 06566 100400 SPL 06567 003620 JMP NTR2 06570 011666 STA NTRTM1 06571 044133 LDA NRT+CH X /FIND GUY AT OTHER END 06572 015746 ADD (NIMP 0 X) 06573 011670 STA NTRTM3 06574 073747 LDX (-NIMP) 06575 105670 LDA NTRTM3 I 06576 101040 SNZ 06577 003604 JMP NTR3 /FOUND HIM 06600 024000 IRS 0 06601 003575 JMP .-4 06602 005666 LDA NTRTM1 /CAN'T GET HERE?! 06603 003620 JMP NTR2 06604 004000 NTR3: LDA 0 06605 015750 ADD (NIMP) 06606 010000 STA 0 06607 141340 ICA 06610 013666 ERA NTRTM1 06611 011666 STA NTRTM1 06612 004000 LDA 0 06613 012106 ERA MINE 06614 100040 SZE 06615 005736 LDA (40000) 06616 013736 ERA (40000) 06617 013666 ERA NTRTM1 06620 021671 NTR2: JST NTGIVE 06621 073667 LDX NTRTM2 06622 140040 CRA /THROUGHPUT 06623 067656 IMA THRUPT+CH X 06624 021671 JST NTGIVE 06625 024000 IRS 0 06626 003561 JMP NTR1 06627 073724 LDX (-NH) /NOW FOR HOST THROUGHPUTS 06630 005751 NTR5: LDA (-8) 06631 011666 STA NTRTM1 06632 005752 LDA (NTRTAB 0 I) 06633 011667 STA NTRTM2 06634 140040 NTR4: CRA 06635 127667 IMA NTRTM2 I 06636 021671 JST NTGIVE 06637 025667 IRS NTRTM2 06640 025666 IRS NTRTM1 06641 003634 JMP NTR4 06642 024000 IRS 0 06643 003630 JMP NTR5 06644 005700 LDA NTRCKS 06645 140407 TCA 06646 021463 JST GIVE 06647 021471 JST GIVD 06650 103501 JMP NTR I PAGE 104 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06651 THRUPT: BSS CH /THROUGHPUT CTRS 06656 045650 NTRTAB: HTPMTN+NH X 06657 045654 HTPMFN+NH X 06660 045660 HTPPTN+NH X 06661 045664 HTPPFN+NH X 06662 045670 HTPMTL+NH X 06663 045674 HTPMFL+NH X 06664 045700 HTPPTL+NH X 06665 045704 HTPPFL+NH X 06666 NTRTM1: BSS 1 06667 NTRTM2: BSS 1 06670 NTRTM3: BSS 1 06671 000000 NTGIVE: 0 /BUILD CHECKSUM 06672 000401 ENB 06673 027700 IMA NTRCKS 06674 015700 ADD NTRCKS 06675 027700 IMA NTRCKS 06676 021463 JST GIVE 06677 103671 JMP NTGIVE I 06700 000000 NTRCKS: 0 PAGE 105 IMPSYS,2514,IMP 6:49 PM 12/22/1971 06701 000004 CONSTANTS 06702 000003 06703 000002 06704 006070 06705 004000 06706 012205 06707 177726 06710 012257 06711 000052 06712 000060 06713 021777 06714 000415 06715 006055 06716 000006 06717 000427 06720 000434 06721 000007 06722 000422 06723 006062 06724 177774 06725 030470 06726 000077 06727 100003 06730 000005 06731 002000 06732 000102 06733 000020 06734 020400 06735 170000 06736 040000 06737 020000 06740 010000 06741 011404 06742 011403 06743 011402 06744 020337 06745 060336 06746 040040 06747 177740 06750 000040 06751 177770 06752 106656 14174 006754 PAGEND 6 PAGE 106 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / H=>I AND I=>H, NOT TO MENTION SUCK AND JAM /HOST TO IMP ROUTINES ORG 7000 07000 000000 HIWM: DAC 0 /DEBREAK AND WAKE ME UP 07001 005677 LDA (-1) 07002 111700 STA (HITT 0 X) I /SET TIMEOUT TO WAIT 1 PER 07003 005000 LDA HIWM 07004 103701 JMP (HIDD) I 07005 000000 HIDB: DAC 0 /DEBREAK 07006 004000 LDA 0 07007 017042 SUB HINH 07010 100400 SPL 07011 003021 JMP HIDO 07012 105702 LDA (HIB1 0 XI) I 07013 140100 SSP 07014 111702 STA (HIB1 0 XI) I 07015 105703 LDA (HIB2 0 XI) I 07016 140100 SSP 07017 111703 STA (HIB2 0 XI) I 07020 003022 JMP HIDO+1 07021 000000 HIDO: 0 0 07022 005005 LDA HIDB 07023 103701 JMP (HIDD) I PAGE 107 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07024 047043 HIXX: DAC HISP X 07025 000000 HIP: DAC 0 /(HOST) PARAMETER SAVE 07026 070070 HER: H1ERR /SKIP ON ERROR FROM HOST 07027 070060 H2ERR 07030 070050 TIPDEF H3ERR,NOP 02610 007030 05577 070050 14256 101000 07031 070051 H4ERR 07032 101000 NOP 07033 101000 NOP 07034 101000 NOP 07035 101000 NOP 07036 030170 HIN: H1IN /DO IN FROM HOST 07037 030160 H2IN 07040 030150 TIPDEF H3IN,NOP 02611 007040 05600 030150 14257 101000 07041 030151 H4IN 07042 000004 HINH: TIPDEF NH, 2 02612 007042 05601 000004 14260 000002 07043 HISP: BSS TH /POINTER TO CURRENT BUFFER 07053 000000 HIT1: OCT 0 /TEMP 07054 000000 HIT2: OCT 0 07055 HIH0: BSS TH /SAVED HEADERS 07065 HIH1: BSS TH 07075 HIH2: BSS TH 07105 HIH3: BSS TH 07115 HINWAT: BSS TH /HOLD UP HOST INPUT PAGE 108 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07125 HITF: BSS 1 07126 EMFH: BSS TH 07136 HI9A: BSS 1 PAGE 109 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07137 045043 HI1: LDA HISP X 07140 015704 ADD (CNTL) 07141 140500 SSM 07142 111702 STA (HIB1 0 XI) I 07143 015705 ADD (64.) 07144 111703 STA (HIB2 0 XI) I /SET UP INPUT EXPECTING CO 07145 045036 LDA HIN X 07146 011021 STA HIDO /DO INPUT 07147 021005 JST HIDB /DEBREAK / WAITING FOR INPUT OF FIRST PACKET OF MESSAGE DEFPLC [HI - WAITING FOR FIRST PKT] 07150 045115 LDA HINWAT X /INPUT TO BE BLOCKED? 07151 101040 SNZ 07152 003156 JMP HI73 /NO 07153 021000 JST HIWM /YES, DELAY DEFPLC [HI - INPUT BEING BLOCKED BY OUTPUT] 07154 003150 JMP .-4 PAGE 110 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07155 021000 HI72: JST HIWM DEFPLC [HI - DELAYING WHILE HOST COMES ALIVE] 07156 045026 HI73: LDA HER X 07157 011212 STA HI4R 07160 100040 SZE /IN LOOP MODE? 07161 003173 JMP HI4S /NO 07162 105706 LDA (HBTS 0 X) I 07163 012106 ERA MINE 07164 173024 LDX HIXX I 07165 050011 STA CNTL X 07166 005677 LDA (-1) 07167 050012 STA CNTL+1 X 07170 050013 STA CNTL+2 X 07171 050014 STA CNTL+3 X 07172 073025 LDX HIP 07173 105707 HI4S: LDA (HLNM) I /IN TEST MODE? 07174 013025 ERA HIP 07175 100040 SZE 07176 003212 JMP HI4R /NO 07177 173024 LDX HIXX I 07200 044011 LDA CNTL X /MSG A NOP? 07201 007710 ANA (7400) 07202 013711 ERA (2000) 07203 100040 SZE 07204 003654 JMP HI60 07205 044012 LDA CNTL+1 X /DATA WORD MATCH? 07206 113712 ERA (HL2WD) I 07207 101040 SNZ 07210 125713 IRS (HLRCVD) I /YES, COUNT A GOOD ONE 07211 003654 JMP HI60 /AND FLUSH MSG PAGE 111 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07212 000000 HI4R: 0 /ERROR? 07213 003215 JMP HI12 /NO 07214 003306 JMP HI99 /YES, FLUSH MESSAGE AND COMPLAIN 07215 105702 HI12: LDA (HIB1 0 XI) I 07216 140100 SSP 07217 057043 SUB HISP X 07220 017714 SUB (14) 07221 100400 SPL 07222 003306 JMP HI99 /NOT 32 BIT LEADER (NOT COUNTING PAD 07223 017715 SUB (5) 07224 006113 ANA SIGN 07225 040474 LGR 4 07226 051055 STA HIH0 X /SAVE PRIORITY LIST 07227 173024 LDX HIXX I 07230 044011 LDA CNTL X /SAVE CONTROL WORDS 07231 011054 STA HIT2 07232 044012 LDA CNTL+1 X 07233 073025 LDX HIP 07234 051075 STA HIH2 X 07235 005054 LDA HIT2 07236 007716 ANA (170377) 07237 051065 STA HIH1 X 07240 013054 ERA HIT2 07241 141140 DEFSTAT ICL,HS2 00753 021066 20315 007241 20272 141140 07242 015717 ADD (HI2 0 I) 07243 011136 STA HI9A 07244 117720 SUB (HIDE) I 07245 101400 SMI 07246 003306 JMP HI99 07247 044720 LDA HIHD X /HOST STILL LOGICALLY DEAD? 07250 100400 SPL 07251 003155 JMP HI72 /YES 07252 101040 SNZ 07253 003257 JMP HI11 /NO, AWAY WE GO 07254 005721 LDA (-47.) /TERMINATING A VOLUNTARY DOWN 07255 050720 STA HIHD X 07256 003155 JMP HI72 07257 005054 HI11: LDA HIT2 07260 007722 ANA (60000) /FOR IMP AND TRACE BITS (NOT CONV R 07261 103136 JMP HI9A I PAGE 112 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07262 013711 HI15: ERA (2000) /SET DISCARD BIT ON REGULAR MESSAGE 07263 053055 HI20: ERA HIH0 X 07264 051055 STA HIH0 X 07265 045065 HI9O: LDA HIH1 X /SS2 MUST BE UP TO SEND PARAMETER CH 07266 007723 ANA (40300) 07267 013724 ERA (40200) 07270 100040 SZE 07271 003274 JMP .+3 07272 101010 SS2 07273 003304 JMP HI19 07274 045065 LDA HIH1 X 07275 073725 LDX (HDHT) 07276 001001 INH 07277 120177 JST HSTCHK I 07300 003304 JMP HI19 07301 001001 INH 07302 073025 LDX HIP 07303 003320 JMP HI21 07304 005726 HI19: LDA (3400) 07305 003342 JMP HI16 07306 140040 HI99: CRA 07307 051065 STA HIH1 X 07310 005727 LDA (400) 07311 003342 JMP HI16 PAGE 113 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07312 073025 HI23: LDX HIP 07313 105730 LDA (BLKTBL 0 X) I 07314 100040 SZE 07315 003342 JMP HI16 /SEND ERROR MESSAGE 07316 021000 HI9T: JST HIWM /HERE TO HANG IF LINK BLOCKED DEFPLC [HI - LINK BLOCKED OR NO REAS SPACE] 07317 003265 JMP HI9O 07320 105706 HI21: LDA (HBTS 0 X) I 07321 041667 ALR 9 07322 113706 ERA (HBTS 0 X) I 07323 007731 ANA (137777) 07324 113706 ERA (HBTS 0 X) I 07325 040675 ARR 3 07326 053055 ERA HIH0 X 07327 007731 ANA (137777) 07330 053055 ERA HIH0 X 07331 010625 STA NXTR /SAVE HOST NUMBER FOR LINK ACCESSING 07332 045065 LDA HIH1 X /GET LINK INFO 07333 053075 ERA HIH2 X 07334 141050 CAL 07335 053075 ERA HIH2 X 07336 072143 LDX MEST 07337 120156 JST AMTA I 07340 103732 JMP (HI22) I 07341 005733 HI41: LDA (3000) 07342 073025 HI16: LDX HIP 07343 051055 STA HIH0 X 07344 001001 INH 07345 045075 LDA HIH2 X 07346 010636 STA TWDP 07347 045065 LDA HIH1 X 07350 053055 ERA HIH0 X 07351 020145 JST LEPI 07352 003654 JMP HI60 07353 021000 JST HIWM 07354 003343 JMP HI16+1 PAGE 114 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07355 000401 HI9B: ENB 07356 073136 LDX HI9A 07357 044202 LDA MESS X 07360 013734 ERA (200) /BLOCK THE LINK 07361 050202 STA MESS X 07362 141340 ICA 07363 007735 DEFSTAT ANA (37400),HS4 00754 021233 20316 007363 20273 007735 07364 011053 STA HIT1 /NOW BUILD REAL HEADER 07365 073025 LDX HIP 07366 045075 LDA HIH2 X 07367 141044 CAR 07370 051105 STA HIH3 X /SAVE LINK AND CLEAR PKT # 07371 045065 LDA HIH1 X 07372 007736 ANA (10000) /PRESERVE OCTAL PRINT BIT 07373 012106 ERA MINE 07374 113706 ERA (HBTS 0 X) I 07375 051075 STA HIH2 X /SET UP SOURCE 07376 045065 LDA HIH1 X 07377 141050 CAL 07400 013053 ERA HIT1 07401 051065 STA HIH1 X /SAVE MSG # AND DEST 07402 004333 LDA TF 07403 101040 SNZ 07404 003413 JMP HI91 07405 025125 IRS HITF 07406 003426 JMP HI24 07407 045055 LDA HIH0 X 07410 007737 ANA (157777) 07411 013740 ERA (20000) 07412 051055 STA HIH0 X 07413 004333 HI91: LDA TF 07414 140401 CMA 07415 011125 STA HITF 07416 045065 LDA HIH1 X /COUNT A MESSAGE OF THROUGHPUT 07417 012106 ERA MINE 07420 006121 ANA MSKR 07421 100040 SZE 07422 005741 LDA (HTPMTN^XHTPMTL) 07423 013742 ERA (HTPMTL 0 X) 07424 001001 INH 07425 121743 JST (HTPIRS) I PAGE 115 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TOP OF PACKET LOOP 07426 045043 HI24: LDA HISP X /COPY HEADER 07427 015744 ADD (HEAD) 07430 011053 STA HIT1 07431 045055 LDA HIH0 X 07432 111053 STA HIT1 I 07433 025053 IRS HIT1 07434 045065 LDA HIH1 X 07435 111053 STA HIT1 I 07436 025053 IRS HIT1 07437 045075 LDA HIH2 X 07440 111053 STA HIT1 I 07441 025053 IRS HIT1 07442 045105 LDA HIH3 X 07443 111053 STA HIT1 I 07444 105702 LDA (HIB1 0 XI) I /SAVE LENGTH 07445 140100 SSP /* THESE MUST NOT BECOME SUB='10000 07446 016114 SUB ONE /* 07447 173024 LDX HIXX I 07450 050112 STA BUFE X 07451 131040 INA CLOK /SAVE TIME 07452 003451 JMP .-1 07453 050003 STA IT X 07454 005025 LDA HIP 07455 050004 STA INCH X 07456 140040 CRA 07457 050000 STA 0 X /CLEAR CHAIN POINTER 07460 073025 LDX HIP /IS ERROR BIT SET 07461 045115 LDA HINWAT X /INPUT BEING BLOCKED? 07462 101040 SNZ 07463 003466 JMP .+3 07464 021000 JST HIWM DEFPLC [HI - INPUT BEING BLOCKED BY OUTPUT] 07465 003461 JMP .-4 07466 045026 LDA HER X 07467 011470 STA .+1 07470 000000 0 0 07471 003473 JMP .+2 07472 003515 JMP HI86 /YES PAGE 116 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07473 045065 LDA HIH1 X /COUNT A PACKET OF THROUGHPUT 07474 012106 ERA MINE 07475 006121 ANA MSKR 07476 100040 SZE 07477 005741 LDA (HTPPTN^XHTPPTL) 07500 013745 ERA (HTPPTL 0 X) 07501 001001 INH 07502 121743 JST (HTPIRS) I 07503 045126 LDA EMFH X /IS EOM SET? 07504 011507 STA HI88 07505 045105 LDA HIH3 X /GET PACKET # 07506 141050 CAL 07507 000000 HI88: 0 07510 003512 JMP .+2 07511 003541 JMP HI85 07512 017744 SUB (7) /IS PACKET #=7 07513 100040 SZE 07514 003567 JMP HI25 07515 001001 HI86: INH 07516 045105 LDA HIH3 X 07517 010636 STA TWDP 07520 045065 LDA HIH1 X 07521 053055 ERA HIH0 X 07522 141050 CAL 07523 053055 ERA HIH0 X 07524 007716 ANA (170377) 07525 013746 ERA (4000) 07526 020145 JST LEPI /SEND FORMAT ERROR 07527 003532 JMP .+3 07530 021000 JST HIWM /WAIT FOR CONTROL WORD PUT 07531 003515 JMP HI86 07532 173024 LDX HIXX I 07533 005711 LDA (2000) /SET DISCARD BIT 07534 054007 ADD HEAD X 07535 050007 STA HEAD X 07536 073025 LDX HIP 07537 045105 LDA HIH3 X /GET PKT # BACK 07540 141050 CAL PAGE 117 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07541 011054 HI85: STA HIT2 /SAVE # OF PACKETS IN THIS MSG 07542 045065 LDA HIH1 X /SET LAST PACKET BIT 07543 173024 LDX HIXX I 07544 006121 ANA MSKR 07545 012106 ERA MINE 07546 100040 SZE 07547 003563 JMP HI87 07550 005054 LDA HIT2 07551 001001 INH 07552 026621 IMA NFA 07553 015744 ADD (7) 07554 016621 SUB NFA 07555 026621 IMA NFA 07556 016713 SUB NRES 07557 017744 SUB (7) 07560 140407 TCA 07561 010713 STA NRES 07562 000401 ENB 07563 044010 HI87: LDA HEAD+1 X 07564 140500 DEFSTAT SSM,HS0 00755 021000 20317 007564 20274 140500 07565 050010 STA HEAD+1 X 07566 100000 SKP 07567 045065 HI25: LDA HIH1 X 07570 073025 LDX HIP 07571 006121 ANA MSKR 07572 012106 ERA MINE /TEST FOR OUR DESTINATION 07573 101040 SNZ 07574 003606 JMP HI28 07575 004622 LDA NSFA /IS THERE SF SPACE 07576 016712 SUB NSFS 07577 016122 SUB MAXS 07600 100400 SPL 07601 003604 JMP HI27 07602 021000 JST HIWM / WAITING FOR STORE AND FORWARD SPACE DEFPLC [HI - NO S/F SPACE] 07603 003567 JMP HI25 07604 024622 HI27: IRS NSFA 07605 024711 IRS NFS 07606 045043 HI28: LDA HISP X /PUT PACKET ON MIDDLE TASK QUEUE 07607 001001 INH 07610 110535 STA ETQM I 07611 010535 STA ETQM 07612 030041 OCP TASK /POKE TASK INTERRUPT 07613 000401 ENB PAGE 118 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07614 140040 HI53: CRA 07615 051043 STA HISP X 07616 045065 LDA HIH1 X 07617 006121 ANA MSKR 07620 012106 ERA MINE 07621 001001 INH 07622 101040 SNZ 07623 003631 JMP HI56 07624 004621 LDA NFA /IS THERE A FREE BUFFER 07625 016711 SUB NFS 07626 016124 SUB MINF 07627 100400 SPL 07630 003634 JMP HI54 07631 104125 HI56: LDA FREP I 07632 100040 SZE / WAITING TO GET A FREE BUFFER OFF FREE LIST 07633 003636 JMP HI55 07634 021000 HI54: JST HIWM DEFPLC [HI - NO FREE SPACE] 07635 003614 JMP HI53 07636 104441 HI55: LDA FREE I /GET FREE BUFFER 07637 026441 IMA FREE 07640 000401 ENB 07641 051043 STA HISP X /SAVE POINTER TO BUFFER 07642 065105 IRS HIH3 X 07643 045105 LDA HIH3 X 07644 007747 ANA (370) /IS PACKET # = 7 07645 100040 SZE 07646 003654 JMP HI60 07647 021657 JST HI61 07650 021005 JST HIDB / WAITING FOR INPUT OF MIDDLE PACKET OF MESSAGE DEFPLC [HI - WAITING FOR MIDDLE PKT] 07651 003426 JMP HI24 PAGE 119 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07652 004114 HI31: LDA ONE 07653 050720 STA HIHD X /MARK HOST GOING DOWN 07654 021657 HI60: JST HI61 07655 021005 JST HIDB / WAITING FOR INPUT OF PACKET TO BE THROWN AWAY DEFPLC [HI - WAITING FOR A PKT TO THROW AWAY] 07656 003654 JMP HI60 07657 000000 HI61: DAC 0 07660 073025 LDX HIP 07661 045126 LDA EMFH X /IS EOM SET 07662 011663 STA .+1 07663 000000 0 0 07664 003666 JMP .+2 07665 003137 JMP HI1 07666 045043 LDA HISP X 07667 015750 ADD (DATA) 07670 140500 SSM 07671 111702 STA (HIB1 0 XI) I 07672 015751 ADD (62.) 07673 111703 STA (HIB2 0 XI) I 07674 045036 LDA HIN X 07675 011021 STA HIDO /DO IN 07676 103657 JMP HI61 I PAGE 120 IMPSYS,2514,IMP 6:49 PM 12/22/1971 07677 177777 CONSTANTS 07700 052631 07701 012570 07702 152677 07703 152707 07704 000011 07705 000100 07706 052727 07707 011404 07710 007400 07711 002000 07712 011405 07713 011402 07714 000014 07715 000005 07716 170377 07717 110726 07720 010737 07721 177721 07722 060000 07723 040300 07724 040200 07725 000277 07726 003400 07727 000400 07730 041561 07731 137777 07732 014323 07733 003000 07734 000200 07735 037400 07736 010000 07737 157777 07740 020000 07741 000020 07742 045664 07743 005627 07744 000007 07745 045674 07746 004000 07747 000370 07750 000013 07751 000076 14175 007767 PAGEND 7 PAGE 121 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /IMP TO HOST ROUTINES /INTERRUPT ENTRANCE REGISTERS 00076 010022 H1OTIL/ DAC IH0E 00077 010014 H2OTIL/ TIPDEF IH1E,CLOCK 02613 000077 05602 010014 14261 037004 00070 010006 H3OTIL/ IH2E 00067 010000 H4OTIL/ IH3E PAGE 122 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /ON INTERRUPT HARDWARE JST'S COME HERE ORG 10000 /HOST 3 INTERRUPT ROUTINE 10000 IH3E: BSS 1 10001 033112 STX IHX 10002 073000 LDX IH3E 10003 033030 STX IHSB 10004 073740 LDX (3) 10005 003032 JMP IHSB+2 /HOST 2 INTERRUPT ROUTINE 10006 000000 IH2E: DAC 0 10007 033112 STX IHX 10010 073006 LDX IH2E 10011 033030 STX IHSB 10012 073741 LDX (2) 10013 003032 JMP IHSB+2 /HOST 1 INTERRUPT ROUTINE 10014 000000 IH1E: DAC 0 10015 033112 STX IHX 10016 073014 LDX IH1E 10017 033030 STX IHSB 10020 072114 LDX ONE 10021 003032 JMP IHSB+2 /HOST 0 INTERRUPT ROUTINE 10022 000000 IH0E: DAC 0 10023 033112 STX IHX /SAVE INDEX REGISTER 10024 073022 LDX IH0E 10025 033030 STX IHSB 10026 072115 LDX ZERO /NOTE HOST WHICH CAUSED INTERRUPT 10027 003032 JMP IHSB+2 / TABLE OF I=>H ONE WORD MESSAGES / 0- REGULAR / 1- FORMAT ERROR / 2- IMP GOING DOWN / 3- BLOCKED LINK / 4- NO-OP / 5- RFNM / 6- LINK TABLE FULL / 7- DESTINATION DEAD / 8- FORMAT ERROR WITH I.D. / 9- UNSUCCESSFUL TRANSMISSION PAGE 123 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /FROM HERE ON IS COMMON TO ALL IMP=HOST INTERRUPT ROUTINES 10030 000000 IHSB: DAC 0 10031 033112 STX IHX 10032 000011 DXA 10033 003034 JMP . 1 10034 011110 STA IHA /SAVE AC 10035 000043 INK 10036 011111 STA IHK /SAVE EX-MODE 10037 033136 STX IHP /SAVE CURRENT HOST 10040 004224 LDA IHM /SET UP NEW INTERRUPT MASK (177700) 10041 170120 SMK INTM /OUTPUT IT 10042 026120 IMA PRIM /SAVE IT IN PRIM 10043 011113 STA IHMS /SAVE OLD PRIM 10044 000401 ENB 10045 143046 JMP IHLO I X /RESTART WHERE LAST LEFT OFF / IHLO INDICATES WHAT ROUTINES DID LAST DEFPLC [IHLO] 10046 IHLO: BSS TH 10056 000000 IHWM: DAC 0 /DEBREAK AND WAKE ME UP 10057 005742 LDA (-1) 10060 051322 STA IHTT X 10061 005056 LDA IHWM 10062 003075 JMP IHDD 10063 000000 IHDB: DAC 0 /DEBREAK 10064 004000 LDA 0 10065 017743 SUB (NH) 10066 100400 SPL 10067 003073 JMP IHDO /REAL HOST - DO THE OCP 10070 005744 LDA (-70176) /FAKE HOSTS ALWAYS GET 15 MINUTES 10071 051322 STA IHTT X 10072 100000 SKP /DON'T DO OCP FOR FAKE GUYS 10073 000000 IHDO: 0 10074 005063 LDA IHDB 10075 051046 IHDD: STA IHLO X 10076 005113 LDA IHMS /RESTORE INTERRUPT MASK 10077 001001 INH 10100 170120 SMK INTM 10101 010120 STA PRIM 10102 005111 LDA IHK 10103 171020 OTK /RESTORE EX-MODE 10104 073112 LDX IHX /RESTORE IR 10105 005110 LDA IHA /RESTORE AC 10106 000401 ENB 10107 103030 JMP IHSB I PAGE 124 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /IMP-HOST ROUTINES LOCAL STORAGE 10110 IHA: BSS 1 /AC SAVE 10111 IHK: BSS 1 /K SAVE 10112 IHX: BSS 1 /IR SAVE 10113 IHMS: BSS 1 /OLD PRIM SAVE 10114 030270 IHED: H1FOUT 10115 030260 H2FOUT 10116 030250 TIPDEF H3FOUT, NOP 02614 010116 05603 030250 14262 101000 10117 030251 H4FOUT 10120 030070 IHOT: H1ROUT 10121 030060 H2ROUT 10122 030050 TIPDEF H3ROUT, NOP 02615 010122 05604 030050 14263 101000 10123 030051 H4ROUT 10124 IHSP: BSS TH /SAVED BUFFER POINTERS 10134 IHTK: BSS 1 10135 IHT2: BSS 1 10136 IHP: BSS 1 /HOST PARAMETER SAVE 10137 OWO: BSS [[NH+1]^T2] /TWO WORD OUTPUT AREA OWOP: OWOTEM=OWO 10151 010137 REPEAT NH+1,0 0 OWOTEM OWOTEM=OWOTEM+2 10152 010141 10153 010143 10154 010145 10155 010147 OWOQ: OWOTEM=OWO+1 10156 010140 REPEAT NH+1,0 0 OWOTEM OWOTEM=OWOTEM+2 10157 010142 10160 010144 10161 010146 10162 010150 PAGE 125 IMPSYS,2514,IMP 6:49 PM 12/22/1971 10163 IHWQ: BSS TH /SAVE QUEUE POINTERS 10173 050124 IHXX: DAC IHSP X 10174 000400 IHC3: DAC SHPQ /CONSTANTS 10175 000370 IHC4: DAC SHQ 10176 000013 IHC6: DAC DATA 10177 000012 IHC8: DAC DATA-1 10200 FPSW: BSS TH 10210 177770 IHTR: DAC -TH 10211 000044 IHB1: H1OTBP 10212 000046 H2OTBP 10213 000054 TIPDEF H3OTBP,TIPLNK 02616 010213 05605 000054 14264 000770 10214 000030 H4OTBP 10215 010221 DAC .+FH 10216 010222 DAC .+FH 10217 010223 DAC .+FH 10220 010224 DAC .+FH 10221 IHBB: BSS FH 10225 000045 IHB2: H1OTBP+1 10226 000047 H2OTBP+1 10227 000055 TIPDEF H3OTBP+1,TIPLNK+1 02617 010227 05606 000055 14265 000771 10230 000031 H4OTBP+1 10231 010235 DAC .+FH 10232 010236 DAC .+FH 10233 010237 DAC .+FH 10234 010240 DAC .+FH 10235 IHBC: BSS FH PAGE 126 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /INITIALIZATION ROUTINE 10241 000000 IHIN: DAC 0 10242 140040 CRA 10243 051124 STA IHSP X 10244 140500 SSM /BLOCK INPUT! 10245 111745 STA (HINWAT 0 X) I 10246 021250 JST IHST 10247 103241 JMP IHIN I /RESTART ROUTINE 10250 000000 IHST: DAC 0 10251 005303 LDA IHS0 /(IHR1) 10252 051046 STA IHLO X 10253 001001 INH 10254 021030 JST IHSB 10255 000011 DXA 10256 103250 JMP IHST I 10257 000000 IHS1: DAC 0 10260 015136 ADD IHP 10261 011135 STA IHT2 10262 005135 IHS4: LDA IHT2 10263 001001 INH 10264 120154 JST QGET I 10265 101040 SNZ 10266 103257 JMP IHS1 I 10267 021271 JST IHS5 10270 003262 JMP IHS4 10271 000000 IHS5: DAC 0 10272 010000 STA 0 10273 044007 LDA HEAD X 10274 007746 ANA (175777) 10275 013747 ERA (2000) 10276 050007 STA HEAD X 10277 132467 STX EHQ+NH+3 I 10300 032467 STX EHQ+NH+3 10301 024557 IRS NHA+NH+3 10302 103271 JMP IHS5 I 10303 010350 IHS0: DAC IHR1 PAGE 127 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TIME OUT CHECK ROUTINE 10304 000000 IHTC: DAC 0 10305 005210 LDA IHTR /(-TH) 10306 011134 STA IHTK 10307 072115 LDX ZERO 10310 065322 IHTY: IRS IHTT X 10311 003316 JMP IHTZ 10312 001001 INH 10313 021030 JST IHSB 10314 000011 DXA 10315 003316 JMP . 1 10316 024000 IHTZ: IRS 0 10317 025134 IRS IHTK 10320 003310 JMP IHTY 10321 103304 JMP IHTC I 10322 IHTT: BSS TH /TIME OUT CHECK FLAGS 10332 000000 IHW256: 0 /SUBR TO WAIT 256 MS 10333 005750 LDA (-10.) /SET TO DELAY FOR 256MS IF CALLED A, 10334 051322 STA IHTT X 10335 005332 LDA IHW256 10336 003075 JMP IHDD 10337 030570 HENABT: H1ENAB 10340 030560 H2ENAB 10341 030550 H3ENAB 10342 030551 H4ENAB PAGE 128 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / CLEAN UP QUEUES 10343 004000 IHR2: LDA 0 10344 017751 SUB (7) /DON'T FLUSH STUFF ON DISCARD OUEUE 10345 101040 SNZ 10346 003605 JMP IH65 10347 111745 STA (HINWAT 0 X) I /DISCARD STUFF ON OTHER QL 10350 001001 IHR1: INH 10351 120175 JST OWG I 10352 003354 JMP .+2 10353 003350 JMP IHR1 10354 140040 CRA /FLUSH BUFFER CURRENTLY IN INTERF.CF 10355 151225 STA IHB2 XI 10356 151211 STA IHB1 XI 10357 067124 IMA IHSP X 10360 023752 CAS (SIGN 0-[HEAD+1]) 10361 003364 JMP IS44 /SOMETHING THERE 10362 003366 JMP IS40 /2 WORD GOING 10363 003366 JMP IS40 /NOTHING GOING 10364 024623 IS44: IRS NREA 10365 021271 JST IHS5 10366 005753 IS40: LDA (SHQ) /GET REGULAR QUEUE 10367 021257 JST IHS1 10370 005754 LDA (SHPQ) /GET PRIORITY QUEUE 10371 021257 JST IHS1 10372 073136 LDX IHP 10373 004000 LDA 0 10374 017743 SUB (NH) 10375 101400 SMI 10376 003412 JMP IS30 10377 105755 LDA (HUNXPT 0 X) I 10400 011404 STA IS50 10401 105745 LDA (HINWAT 0 X) I /WE BLOCKING INPUT? 10402 101040 SNZ 10403 003412 JMP IS30 /NO, DON'T DROP READY LINE 10404 000000 IS50: 0 0 10405 021332 JST IHW256 /WAIT FOR 256 MS DEFPLC [IH - WAITING FOR READY LINE TO DROP] 10406 045337 LDA HENABT X 10407 011410 STA .+1 10410 000000 0 0 10411 021332 JST IHW256 /WAIT FOR READY LINE TO GO UP DEFPLC [IH - WAITING FOR READY LINE TO GO UP] 10412 005756 IS30: LDA (-4) 10413 011135 STA IHT2 10414 005747 IS10: LDA (2000) /NOP 10415 001001 INH 10416 020145 JST LEPI /PUT 4 NOPS ON HOST TWO WORD QUEUE 10417 003421 JMP IS20 10420 101000 NOP 10421 025135 IS20: IRS IHT2 10422 003414 JMP IS10 10423 140040 CRA /RELEASE INPUT 10424 111745 STA (HINWAT 0 X) I PAGE 129 IMPSYS,2514,IMP 6:49 PM 12/22/1971 10425 021056 IH00: JST IHWM DEFPLC [IH - NOTHING TO DO] 10426 120175 IH1: JST OWG I /IS THERE ENTRY ON ONE WORD OUEUE 10427 003456 JMP IH2 /NO 10430 151151 STA OWOP I X /(OWO+2*IR) PUT WORD IN OUTPUT AREA 10431 004637 LDA TWDG 10432 151156 STA OWOQ I X /(OWO+1+2*IR) 10433 045151 LDA OWOP X /GET POINTER TO FRONT OF AREA 10434 151211 STA IHB1 I X /BUILD FIRST BUFFER CONTROL WORD 10435 141206 DEFSTAT AOA,HS3 00756 021072 20320 010435 20275 141206 10436 151225 STA IHB2 I X /BUILD SECOND BUFFER CONTROL WORD 10437 051200 STA FPSW X 10440 045114 LDA IHED X 10441 011073 STA IHDO /DO OUTPUT + END 10442 005752 LDA (SIGN+0-[HEAD+1]) 10443 051124 STA IHSP X /SO SUCK WILL WORK PROPERLY 10444 005757 LDA (-1200.) /ALWAYS 30 SEC FOR TWO WORD GUYS 10445 051322 STA IHTT X 10446 021063 JST IHDB / WAITING FOR INTERRUPT AFTER OUTPUT OF 2 WORD MESSAGE DEFPLC [IH - SENDING 2 WORD MSG] 10447 140040 CRA 10450 151211 STA IHB1 I X 10451 051124 STA IHSP X 10452 045322 LDA IHTT X 10453 101040 SNZ 10454 003343 JMP IHR2 10455 003426 JMP IH1 10456 044400 IH2: LDA SHPQ X /IS THERE SOMETHING IN THE PRIORITY 10457 101040 SNZ 10460 003463 JMP .+3 /NO 10461 005174 LDA IHC3 /(SHPQ) 10462 003467 JMP IH19 10463 044370 LDA SHQ X /IS THERE SOMETHING IN THE REGULA* ( 10464 101040 SNZ 10465 003425 JMP IH00 / WAITING FOR SOMETHING TO BE ON REGULAR OR PRIORITY OUEUE 10466 005175 LDA IHC4 /(SHQ) 10467 014000 IH19: ADD 0 10470 051163 STA IHWQ X /SAVE POINTER TO QUEUE 10471 005741 LDA (2) 10472 051200 STA FPSW X 10473 173760 LDX (IHWQ 0 XI) I 10474 044011 LDA HEAD+2 X 10475 073136 LDX IHP 10476 012106 ERA MINE 10477 006121 ANA MSKR 10500 100040 SZE 10501 005761 LDA (HTPMFN^XHTPMFL) 10502 013762 ERA (HTPMFL 0 X) 10503 121763 JST (HTPIRS) I PAGE 130 IMPSYS,2514,IMP 6:49 PM 12/22/1971 10504 145163 IH21: LDA IHWQ I X 10505 100040 SZE 10506 003511 JMP .+3 10507 021056 JST IHWM 10510 003504 JMP IH21 10511 051124 STA IHSP X /SAVE POINTER TO BUFFER 10512 045163 LDA IHWQ X 10513 010000 STA 0 10514 144000 LDA 0 I X /UPDATE QUEUE START POINTER 10515 050000 STA 0 X 10516 100040 SZE /IS THIS LAST ENTRY ON QUEUE 10517 003522 JMP .+3 10520 004000 LDA 0 10521 050070 STA EHQ-SHQ X /MAKE START PTR POINTED TO BY END ?T 10522 064250 IRS NHS-SHQ X 10523 073136 LDX IHP 10524 173173 LDX IHXX I 10525 044011 LDA HEAD+2 X 10526 073136 LDX IHP 10527 012106 ERA MINE 10530 006121 ANA MSKR 10531 073136 LDX IHP 10532 100040 SZE 10533 005764 LDA (HTPPFN^XHTPPFL) 10534 013765 ERA (HTPPFL 0 X) 10535 121763 JST (HTPIRS) I 10536 045124 LDA IHSP X 10537 015176 ADD IHC6 /(DATA) 10540 057200 SUB FPSW X /BUILD FIRST BUFFER CONTROL WORD 10541 151211 STA IHB1 XI 10542 173173 LDX IHXX I 10543 131040 RDCLOK 10544 003543 JMP .-1 10545 050003 STA ST X 10546 044112 LDA BUFE X 10547 073136 LDX IHP 10550 151225 STA IHB2 I X /MAKE SECOND BUFFER CONTROL WORD 10551 024713 IRS NRES /UPDATE REASSEMBLY COUNT 10552 173173 LDX IHXX I 10553 044010 LDA HEAD+1 X 10554 073136 LDX IHP 10555 100400 SPL /IS THIS LAST PACKET OF MESSAGE 10556 003563 JMP IH4 /YES 10557 045120 LDA IHOT X 10560 011073 STA IHDO /DO OUTPUT 10561 021567 JST IH6 / WAITING FOR INTERRUPT AFTER OUTPUT OF PACKET OTHER THAN .A 10562 003504 JMP IH21 10563 045114 IH4: LDA IHED X 10564 011073 DEFSTAT STA IHDO,HS1 00757 021017 20321 010564 20276 011073 10565 021567 JST IH6 / WAITING FOR INTERRUPT AFTER OUTPUT OF LAST PACKET OF MES A( 10566 003426 JMP IH1 PAGE 131 IMPSYS,2514,IMP 6:49 PM 12/22/1971 10567 000000 IH6: DAC 0 10570 173173 LDX IHXX I 10571 004204 LDA TIME /GET REMAINING LIFE OF THIS PKT 10572 056004 SUB INCH X 10573 073136 LDX IHP 10574 051322 STA IHTT X 10575 100400 SPL 10576 003603 JMP IH62 /SOME TIME LEFT - GO USE IT 10577 004000 LDA 0 /RUN OUT = FAKE HOST? 10600 017743 SUB (NH) 10601 100400 SPL 10602 003343 JMP IHR2 /NO - HAVE NO MERCY 10603 005567 IH62: LDA IH6 10604 051716 STA IH6R X 10605 021063 IH65: JST IHDB DEFPLC [IH - SENDING OUT A PKT] 10606 140040 CRA 10607 151211 STA IHB1 I X 10610 045322 LDA IHTT X 10611 101040 SNZ 10612 003343 JMP IHR2 10613 173173 LDX IHXX I 10614 044003 LDA ST X 10615 011135 STA IHT2 10616 044002 LDA PTRT X 10617 101040 SNZ /IS TRACE POINTER ZERO 10620 003633 JMP IHTX 10621 010000 STA 0 /NO 10622 131040 INA CLOK 10623 003622 JMP .-1 10624 050004 STA TAT X 10625 005135 LDA IHT2 10626 050003 STA TST X /PUT TIME IN TRACE TABLE 10627 004113 LDA SIGN 10630 050012 STA TDON X /MARK TRACE ENTRY DONE 10631 005136 LDA IHP /SAVE HOST NUMBER 10632 050011 STA TQUE X 10633 073136 IHTX: LDX IHP 10634 140040 CRA 10635 067200 IMA FPSW X 10636 100040 SZE 10637 003646 JMP IH63 10640 067124 IMA IHSP X 10641 010000 STA 0 10642 001001 INH 10643 120150 JST FLUS I 10644 073136 LDX IHP 10645 143716 JMP IH6R I X 10646 173173 IH63: LDX IHXX I 10647 044005 LDA USED X 10650 100400 SPL /IS PACKET IN USE 10651 003655 JMP IH52 /NO 10652 073136 IH64: LDX IHP 10653 021056 JST IHWM / WAITING FOR LAST PACKET FO FREE UP TO USE BUFFER FOR RFN" DEFPLC [IH - WAITING FOR RFNM BUFFER] 10654 003646 IH61: JMP IH63 PAGE 132 IMPSYS,2514,IMP 6:49 PM 12/22/1971 10655 044011 IH52: LDA HEAD+2 X 10656 006121 ANA MSKR 10657 016106 SUB MINE /IS RFNM FOR US 10660 100040 SZE 10661 024622 IRS NSFA /NO - STEP S/F COUNT 10662 044010 IH67: LDA HEAD+1 X /SWAP SOURCE AND DEST 10663 052011 ERA HEAD+2 X 10664 141044 CAR 10665 052011 ERA HEAD+2 X 10666 066010 IMA HEAD+1 X 10667 052010 ERA HEAD+1 X 10670 052011 ERA HEAD+2 X 10671 050011 STA HEAD+2 X 10672 052007 ERA HEAD X /SWAP FOR IMP AND FROM IMP BITS, 10673 007766 ANA (40000) /COPY DISCARD BIT, AND SET RFNM BIT 10674 052011 ERA HEAD+2 X 10675 066011 IMA HEAD+2 X 10676 052011 ERA HEAD+2 X 10677 052007 ERA HEAD X 10700 007767 ANA (43000) 10701 013770 ERA (10000) 10702 050007 STA HEAD X 10703 005177 LDA IHC8 /(DATA-1) SHORTEN BUFFER 10704 014000 ADD 0 10705 050112 STA BUFE X 10706 140040 CRA 10707 050000 STA 0 X 10710 132535 STX ETQM I /ADD TO MIDDLE TASK QUEUE 10711 032535 STX ETQM 10712 030041 OCP TASK /POKE TASK INTERRUPT 10713 073136 LDX IHP 10714 051124 STA IHSP X 10715 143716 JMP IH6R I X 10716 IH6R: BSS TH PAGE 133 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /DISPATCH TABLE FOR H=>I MESSAGE TYPFS 10726 007263 HI2: HI20 /0 - REGULAR 10727 007654 HI60 /1 - IMP FORMAT ERROR 10730 007652 HI31 /2 - HOST GOING DOWN 10731 007306 HI99 /3 - SEND STATUS 10732 007654 HI60 /4 - NOP 10733 007262 HI15 /5 - SET DISCARD BIT 10734 007306 HI99 /6 - UNASSIGNED 10735 007306 HI99 /7 - UNASSIGNED 10736 007654 HI60 /8 - IMP FORMAT ERROR WITH ID 10737 110737 HIDE: . 0 I 10740 000003 CONSTANTS 10741 000002 10742 177777 10743 000004 10744 107602 10745 047115 10746 175777 10747 002000 10750 177766 10751 000007 10752 000103 10753 000370 10754 000400 10755 041165 10756 177774 10757 175520 10760 150163 10761 000020 10762 045670 10763 005627 10764 000160 10765 045700 10766 040000 10767 043000 10770 010000 14176 010771 PAGEND 10 PAGE 134 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /******** TIMEOUT ROUTINES ************ / CONTROL 00102 011000 CLOKIL/ DAC TO ORG 11000 11000 016000 TO: DAC Q /TIMEOUT INTERRUPT ENTRANCE 11001 000011 DXA 11002 003003 JMP . 1 11003 033117 STX TOT 11004 073116 LDX TOK /TOK IS INITIALIZED TO 1 11005 051120 STA TOA X /SAVE AC AND I/O 11006 005711 LDA (177776) 11007 170120 SMK INTM 11010 026120 IMA PRIM 11011 051704 STA TOMK X 11012 000043 INK 11013 051124 STA TOCK X 11014 005117 LDA TOT 11015 051130 STA TOX X 11016 005000 LDA TO /SAVE RETURN 11017 051134 STA TOC X 11020 140040 CRA /FIX TOK SO IF ANOTHER INTERRUPT -OM 11021 010627 STA NRA 11022 010717 STA NRS 11023 024204 IRS TIME 11024 101000 NOP 11025 024714 IRS SYNC 11026 101000 NOP 11027 005116 LDA TOK 11030 040577 ARS 1 11031 011116 STA TOK 11032 143065 JMP TOS XI PAGE 135 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11033 001001 TOR: INH 11034 005712 LDA (-5) 11035 051137 STA TOB-1 X 11036 004114 LDA ONE 11037 025141 IRS TOB+1 11040 003047 JMP TO1 11041 141206 AOA 11042 025142 IRS TOB+2 11043 003047 JMP TO1 11044 005712 LDA (-5) 11045 011141 STA TOB+1 11046 005713 LDA (3) 11047 011116 TO1: STA TOK 11050 045134 JOBN: LDA TOC X 11051 011000 STA TO 11052 045130 LDA TOX X 11053 011117 STA TOT 11054 045704 LDA TOMK X 11055 170120 SMK INTM 11056 010120 STA PRIM 11057 045124 LDA TOCK X 11060 171020 OTK 11061 045120 LDA TOA X 11062 073117 LDX TOT 11063 000401 ENB 11064 103000 JMP TO I 11065 011050 TOS: DAC JOBN /THIS SHOULDN'T HAPPEN - BUT JUST IN 11066 011143 DAC JOBF 11067 011152 DAC JOBM 11070 011215 DAC JOBS PAGE 136 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11071 016000 TOI: DAC Q /TIMEOUT INITIALIZATION 11072 005713 LDA (3) 11073 011116 STA TOK 11074 073714 LDX (-3) 11075 005712 LDA (-5) 11076 051143 STA TOB+3 X 11077 024000 IRS 0 11100 003076 JMP .-2 11101 005715 LDA (-10.) 11102 011470 STA DHTC 11103 111716 STA (INPROG) I /CLEAR INTERFACE CONTROL FLAG 11104 072116 LDX MICH 11105 033546 STX SENR 11106 051316 STA LTR+CH X 11107 024000 IRS 0 11110 003106 JMP .-2 11111 005717 LDA (-1) 11112 011404 STA HLNM /CLEAR HOST INTERFACE TEST 11113 111720 STA (RTSSNT) I 11114 030040 CLKON 11115 103071 JMP TOI I 11116 000001 TOK: OCT 1 11117 000000 TOT: PZE 11120 000000 TOA: BSZ 4 11121 000000 11122 000000 11123 000000 11124 000000 TOCK: BSZ 4 11125 000000 11126 000000 11127 000000 11130 000000 TOX: BSZ 4 11131 000000 11132 000000 11133 000000 11134 000000 TOC: BSZ 4 11135 000000 11136 000000 11137 000000 11140 177773 TOB: DEC -5 11141 177773 DEC -5 11142 177773 DEC -5 PAGE 137 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / FAST TIMEOUT JOBS - RESTART EVERYBODY 11143 000401 JOBF: ENB 11144 120155 JST II2M I /ATTEMPT TO RESTART MODEM OUTS 11145 121721 JST (IHTC) I /ATTEMPT TO RESTART HOST OUTS 11146 121722 JST (HITC) I /ATTEMPT TO RESTART HOST INS 11147 121723 JST (SWCH) I /MONITOR THINGS 11150 072114 LDX ONE 11151 003033 JMP TOR /MEDIUM TIMEOUT JOBS - RETRANSMIT AND DEAD CHANNELS 11152 000401 JOBM: ENB 11153 021422 JST JSRT 11154 021157 JST JRET 11155 073724 LDX (2) 11156 003033 JMP TOR 11157 000000 JRET: 0 11160 131040 INA CLOK /READ CLOCK 11161 003160 JMP .-1 11162 011710 STA TNOW 11163 005725 JM1: LDA (SRQ) 11164 001001 INH /FIRST TRANSMIT STUFF ON RETRANSM-T 11165 120154 JST QGET I /GET NEXT RFTRANSMIT QUEUE ENTRY 11166 021562 JST SOBR /CALL RETRANSMIT SUBROUTINE 11167 003163 JMP JM1 11170 072116 LDX MICH /=-CH 11171 044415 JM3: LDA SSQ+CH X /FOR EACH CHANNEL 11172 101040 SNZ /NOW CHECK SENT QUEUES FOR STUFF *O 11173 003204 JMP JM5 /JUMP IF NO MORE SENT MESSAGES THIS 11174 033547 STX SCH 11175 010000 STA 0 11176 005710 LDA TNOW 11177 056003 SUB ST X 11200 073547 LDX SCH 11201 023726 CAS (1000.) /MAX TIME ON QUEUE 11202 003207 JMP JM4 11203 003207 JMP JM4 /JUMP IF MESSAGE HAS TIMED OUT 11204 024000 JM5: IRS 0 11205 003171 JMP JM3 /GO ON TO NEXT CHANNEL 11206 103157 JMP JRET I 11207 005727 JM4: LDA (SSQ+CH) 11210 001001 INH 11211 121730 JST (GETX) I /GET NEXT ENTRY ON QUEUE 11212 021562 JST SOBR /CALL RETRANSMIT SUBROUTINE 11213 073547 LDX SCH 11214 003171 JMP JM3 /LOOP TO TRY NEXT MESSAGE PAGE 138 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / SLOW TIMEOUT SUBROUTINE 11215 000401 JOBS: ENB 11216 021237 JST DEDL 11217 121731 JST (DEDH) I 11220 021406 JST JED DEFPLC [NO-OP ROUTING HERE] 11221 121732 JST (RTGO) I 11222 001001 INH 11223 021422 JST JSRT 11224 125720 IRS (RTSSNT) I /COUNT ANOTHER ROUTING SENT 11225 101000 NOP 11226 021433 JST JUQC 11227 021471 JST JDCH 11230 121733 JST (HTEST) I /OCP INTERFACES IF NECESSARY 11231 021362 JST HPOKE /TEST HOST INTERFACE 11232 021451 JST DHTT /SHIFT ALIVE HOST INFORMATION 11233 120160 JST MMTO I /MESSAGE TABLE 11234 120167 JST TSTO I /REASSEMBLY PACKETS 11235 073713 LDX (3) 11236 003033 JMP TOR PAGE 139 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /DEAD LINES 11237 000000 DEDL: 0 /INVESTIGATE FOR LINE STATUS 11240 072116 LDX MICH 11241 044355 DED1: LDA LAC+CH X 11242 101040 SNZ 11243 003264 JMP NOC /NO INPUT ON THIS CHANNEL 11244 016114 SUB ONE 11245 100040 SZE 11246 004114 LDA ONE 11247 050355 STA LAC+CH X 11250 044362 LDA LINE+CH X 11251 101040 SNZ 11252 003261 JMP DED3 /LINE WAS ALREADY ALIVE 11253 065316 IRS LTR+CH X 11254 003302 JMP HEL1 /NOT TIME TO BRING LINE UP YET 11255 140040 CRA 11256 050362 STA LINE+CH X 11257 140500 SSM 11260 111734 STA (SWS) I 11261 005712 DED3: LDA (-5) 11262 051316 STA LTR+CH X 11263 003302 JMP HEL1 11264 044362 NOC: LDA LINE+CH X 11265 101040 SNZ 11266 003272 JMP UAL /WE CURRENTLY THINK LINE IS ALIVE 11267 005735 LDA (-30.) /LINE IS DEAD 11270 051316 STA LTR+CH X 11271 003302 JMP HEL1 11272 065316 UAL: IRS LTR+CH X 11273 003302 JMP HEL1 /NOT TIME TO KILL LINE YET 11274 033550 STX KILL 11275 005735 LDA (-30.) 11276 111734 STA (SWS) I 11277 051316 STA LTR+CH X 11300 050362 STA LINE+CH X 11301 103237 JMP DEDL I 11302 024000 HEL1: IRS 0 11303 003241 JMP DED1 /ON TO NEXT CHANNEL 11304 105736 LDA (LUUP) I /TIME OUT "LOOPED" LIGHT 11305 100040 SZE 11306 016114 SUB ONE 11307 111736 STA (LUUP) I 11310 103237 JMP DEDL I 11311 LTR: BSS CH PAGE 140 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11316 000000 HSTDED: 0 /CHECK IF A HOST IS DEAD 11317 011360 STA HSTD1 /SKIPS IF ALIVE 11320 015737 ADD (20) /XR IS WHICH TABLE TO CHECK 11321 141050 CAL 11322 040473 LGR 5 11323 014000 ADD 0 11324 011361 STA HSTD3 11325 005360 LDA HSTD1 11326 006121 ANA MSKR 11327 010000 STA 0 11330 023740 CAS (NIMP) 11331 003356 JMP HSTD6 /NUMBER TOO LARGE 11332 003356 JMP HSTD6 11333 007741 ANA (17) 11334 015742 ADD (LGR 15. 11335 011353 STA HSTD4 11336 005360 LDA HSTD1 /OUR OWN IMP IS ALWAYS UP 11337 012106 ERA MINE 11340 006121 ANA MSKR 11341 101040 SNZ 11342 003346 JMP HSTD7 11343 044227 LDA RUT X 11344 101040 SNZ 11345 003356 JMP HSTD6 11346 005360 HSTD7: LDA HSTD1 11347 041477 LGL 1 11350 100400 SPL 11351 003355 JMP HSTD5 11352 105361 LDA HSTD3 I 11353 000000 HSTD4: 0 11354 101100 SLN 11355 025316 HSTD5: IRS HSTDED 11356 000401 HSTD6: ENB 11357 103316 JMP HSTDED I 11360 HSTD1: BSS 1 11361 HSTD3: BSS 1 PAGE 141 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11362 000000 HPOKE: 0 /TEST HOST INTERFACE 11363 001001 INH 11364 005404 LDA HLNM /TESTER TURNED ON? 11365 100400 SPL 11366 003400 JMP HPOKE2 /OFF 11367 010000 STA 0 11370 044450 LDA SHWQ X /ROOM FOR ANOTHER TEST PROD? 11371 100040 SZE 11372 003400 JMP HPOKE2 /NO 11373 005405 LDA HL2WD 11374 010636 STA TWDP 11375 005743 LDA (2000) 11376 020145 JST LEPI 11377 025403 IRS HLSNT /COUNT ANOTHER POKE 11400 000401 HPOKE2: ENB 11401 103362 JMP HPOKE I 11402 HLRCVD: BSS 1 /# OF CORRECT RESPONSES 11403 HLSNT: BSS 1 /# OF TRIES DEFPLC [HOST INTERFACE TEST ENABLE] 11404 HLNM: BSS 1 /# OF INTERFACE BEING TESTED 11405 HL2WD: BSS 1 /SECOND WORD OF DATA PAGE 142 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /* COMPUTE OUR EFFECTIVE CHANNEL DELAY / S= 20L + (100+S) E/T WHERE T=20 /S' = [(L+5)(256/(20-E))-64] 11406 000000 JED: 0 11407 072116 LDX MICH 11410 001001 ED1: INH 11411 044607 LDA NOA+CH X 11412 056677 SUB NOS+CH X 11413 015713 ADD (3) 11414 111421 STA PCED I 11415 000401 ENB 11416 024000 IRS 0 11417 003410 JMP ED1 11420 103406 JMP JED I 11421 052265 PCED: DAC CED+CH X PAGE 143 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / MARK TO SEND ROUTING TABLES 11422 000000 JSRT: 0 11423 072116 LDX MICH 11424 025546 IRS SENR 11425 073546 LDX SENR 11426 033546 STX SENR 11427 004114 LDA ONE 11430 050212 STA SLT+CH X 11431 000401 ENB 11432 103422 JMP JSRT I / UPDATE QUEUE COUNTS CNTS=STQF+0-SHQ 11433 000000 JUQC: 0 11434 073744 LDX (-CNTS) 11435 001001 QC1: INH 11436 044624 LDA NHA+CNTS X 11437 056714 SUB NHS+CNTS X 11440 100400 SPL 11441 101000 NOP 11442 050624 STA NHA+CNTS X 11443 140040 CRA 11444 050714 STA NHS+CNTS X 11445 000401 ENB 11446 024000 IRS 0 11447 003435 JMP QC1 11450 103433 JMP JUQC I /SHIFT HOST ALIVE INFORMATION 11451 000000 DHTT: 0 11452 025470 IRS DHTC 11453 103451 JMP DHTT I /NOT TIME YET 11454 005745 LDA (-8.) 11455 011470 STA DHTC 11456 072115 LDX ZERO 11457 104153 LDA IDHT I 11460 066267 IMA TDHT X 11461 050277 STA HDHT X 11462 024000 IRS 0 11463 025470 IRS DHTC 11464 003457 JMP .-5 11465 005715 LDA (-10.) 11466 011470 STA DHTC 11467 103451 JMP DHTT I 11470 DHTC: BSS 1 PAGE 144 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / REROUTE THE DEAD LINE STUFF 11471 000000 JDCH: 0 11472 005550 LDA KILL 11473 101040 SNZ 11474 103471 JMP JDCH I 11475 005746 LDA (SPQ+CH) 11476 021526 JST MUFF 11477 005747 LDA (SRFQ+CH) 11500 021526 JST MUFF 11501 005750 LDA (SOQ+CH) 11502 021526 JST MUFF 11503 073550 JM9: LDX KILL 11504 001001 INH 11505 044422 LDA SAQ+CH X /FLUSH ALL BUFFERS FROM ACKNOWLEDGE 11506 101040 SNZ 11507 003517 JMP JM8 11510 010000 STA 0 11511 044001 LDA 1 X 11512 073550 LDX KILL 11513 066422 IMA SAQ+CH X 11514 010000 STA 0 11515 120150 JST FLUS I 11516 003503 JMP JM9 11517 005751 JM8: LDA (SAQ+CH) 11520 014000 ADD 0 11521 050512 STA EAQ+CH X 11522 140040 CRA 11523 011550 STA KILL 11524 000401 ENB 11525 103471 JMP JDCH I /QUIT 11526 000000 MUFF: DAC 0 11527 001001 INH 11530 015550 ADD KILL 11531 010000 STA 0 11532 140040 CRA 11533 050160 STA NPA-SPQ X 11534 050250 STA NPS-SPQ X 11535 066000 IMA 0 X 11536 101040 SNZ 11537 003544 JMP MUF1 11540 110537 STA ERQ I 11541 004000 LDA 0 11542 066070 IMA EPQ-SPQ X 11543 010537 STA ERQ 11544 000401 MUF1: ENB 11545 103526 JMP MUFF I PAGE 145 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11546 SENR: BSS 1 11547 000000 SCH: 0 /SENT CHANNEL 11550 000000 KILL: 0 /IF NOT ZERO , CH NO OF CHANNEL JUST 11551 000000 CLST: 0 /CLEAR OUT 10 SEC STAT TABLES (!!!) 11552 073752 LDX (-NST) 11553 140040 CRA 11554 001001 INH 11555 111753 STA (STTB+NST X) I 11556 024000 IRS 0 11557 003555 JMP .-2 11560 000401 ENB 11561 103551 JMP CLST I PAGE 146 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /RETRANSMIT SUBROUTINE - ENTER WITH PACKET IN A - ZERO SKIPS 11562 000000 SOBR: 0 11563 000401 ENB 11564 101040 SNZ 11565 025562 IRS SOBR 11566 101040 SNZ 11567 103562 JMP SOBR I /QUIT AND SKIP IF ZERO INPUT 11570 033703 STX RSAV 11571 010000 STA 0 11572 011676 STA RET 11573 140040 DEFSTAT CRA,TOY9 00760 021227 20322 011573 20277 140040 11574 050000 STA 0 X 11575 005710 LDA TNOW /PUT NEW INPUT TIME IN PACKET 11576 066003 IMA IT X 11577 011677 STA SST /SAVE OLD SENT TIME FOR TRACE 11600 044010 LDA HEAD+1 X /FIND ROUTE 11601 006121 ANA MSKR 11602 010000 STA 0 11603 044227 LDA RUT X 11604 011700 STA QFT 11605 073676 LDX RET 11606 044002 LDA PTRT X 11607 001001 INH 11610 101040 SNZ 11611 003654 JMP NOTR /JUMP IF NOT BEING TRACED 11612 010000 STA 0 11613 015754 ADD (THED+4 X) 11614 011702 STA YIHB 11615 005677 LDA SST 11616 050003 STA TST X /SAVE OLD SENT TIME 11617 005755 LDA (140000) 11620 050012 STA TDON X /MARK OLD TRACE PACKET DONE 11621 004307 LDA TRON 11622 101040 SNZ 11623 003654 JMP NOTR 11624 004442 LDA TTF /GET A NEW TRACE BUFFER PAGE 147 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11625 073676 LDX RET 11626 050002 STA PTRT X 11627 101040 SNZ 11630 003673 JMP NTB 11631 015754 ADD (THED+4 X) 11632 011701 STA YITB 11633 044000 LDA 0 X 11634 010442 STA TTF 11635 073756 LDX (-4) 11636 105702 LDA YIHB I 11637 111701 STA YITB I 11640 024000 IRS 0 11641 003636 JMP .-3 11642 072442 LDX TTF 11643 005710 LDA TNOW 11644 050001 STA TIT X /SAVE INPUT TIME 11645 050002 STA TTT X /SAVE TRACE TIME 11646 005700 LDA QFT 11647 050011 STA TQUE X 11650 100040 SZE 11651 003654 JMP NOTR 11652 004113 LDA SIGN 11653 050012 STA TDON X 11654 005700 NOTR: LDA QFT 11655 101040 SNZ 11656 003666 JMP RS1 /JUMP IF DEST DEAD 11657 010000 STA 0 11660 005676 LDA RET 11661 150511 STA EOQ-1 I X 11662 050511 STA EOQ-1 X 11663 064601 IRS NOA-1 X 11664 000401 ENB 11665 003671 JMP RS2 11666 073676 RS1: LDX RET 11667 120150 JST FLUS I 11670 024712 IRS NSFS 11671 073703 RS2: LDX RSAV 11672 103562 JMP SOBR I 11673 141206 NTB: AOA 11674 010203 STA TTO 11675 003654 JMP NOTR PAGE 148 IMPSYS,2514,IMP 6:49 PM 12/22/1971 11676 000000 RET: 0 /RETRANSMIT POINTER 11677 000000 SST: 0 /SAVE SENT TIME 11700 000000 QFT: 0 /QUEUE FOR TRANSMIT NEXT TIME 11701 000000 YITB: 0 /INDERECT TO TRACE BUFFER 11702 000000 YIHB: 0 /INDIRECT TO HOST BUFFER 11703 000000 RSAV: 0 11704 TOMK: BSS 4 /SAVED MASKS 11710 000000 TNOW: 0 11711 177776 CONSTANTS 11712 177773 11713 000003 11714 177775 11715 177766 11716 006420 11717 177777 11720 020336 11721 010304 11722 012607 11723 005473 11724 000002 11725 000447 11726 001750 11727 000415 11730 014316 11731 012265 11732 012000 11733 006350 11734 020400 11735 177742 11736 003204 11737 000020 11740 000040 11741 000017 11742 040461 11743 002000 11744 177724 11745 177770 11746 000434 11747 000441 11750 000427 11751 000422 11752 177477 11753 061755 11754 040011 11755 140000 11756 177774 14177 011761 PAGEND 11 PAGE 149 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / ROUTING SUBROUTINE ORG 12000 12000 016000 RTGO: DAC Q 12001 004113 LDA SIGN 12002 011202 STA RTB1 12003 140040 CRA 12004 011203 STA RTB2 12005 073737 LDX (-NIMP) 12006 033174 RT1: STX RDST 12007 004000 LDA 0 12010 017737 SUB (-NIMP) 12011 012106 ERA MINE 12012 101040 SNZ 12013 010635 STA THD 12014 101040 SNZ 12015 003120 JMP RT10 12016 140040 CRA 12017 011175 STA RHD 12020 005740 LDA (37) /MAX HOP 12021 011176 STA HOP 12022 005741 LDA (3777) /MAX DELAY 12023 011177 STA DEL 12024 072116 LDX MICH /=-NUMBER OF CHANNELS 12025 044362 RT2: LDA LINE+CH X 12026 100040 SZE 12027 003053 JMP RT3 /JUMP IF THIS LINE IS DEAD 12030 044133 LDA NRT+CH X 12031 015174 ADD RDST 12032 015742 ADD (NIMP) 12033 011200 STA ITRT 12034 105200 LDA ITRT I 12035 040465 LGR 11. 12036 023176 CAS HOP 12037 003043 JMP .+4 12040 003042 JMP .+2 12041 011176 STA HOP 12042 033173 STX THDQ 12043 105200 LDA ITRT I 12044 007741 ANA (3777) 12045 055265 ADD CED+CH X 12046 023177 CAS DEL 12047 003053 JMP RT3 12050 003052 JMP .+2 12051 011177 STA DEL 12052 033201 STX CHAN 12053 024000 RT3: IRS 0 12054 003025 JMP RT2 PAGE 150 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12055 073174 LDX RDST 12056 005176 LDA HOP 12057 023740 CAS (37) 12060 020000 JST 0 12061 003156 JMP RT5 /JUMP IF THIS IMP IS DEAD 12062 141206 AOA 12063 011176 STA HOP 12064 005201 LDA CHAN 12065 015743 ADD (CH+1) 12066 050267 STA RUT+NIMP X 12067 005177 LDA DEL 12070 100400 SPL 12071 101000 NOP 12072 141206 AOA 12073 023741 CAS (3777) 12074 140040 CRA 12075 005741 LDA (3777) 12076 011177 STA DEL 12077 073173 LDX THDQ 12100 032635 STX THD 12101 044133 LDA NRT+CH X 12102 015744 ADD (LRUT 0 X) 12103 011204 RT14: STA RTT1 12104 073745 LDX (-8) 12105 005202 RT6: LDA RTB1 12106 021162 JST RT12 12107 024000 IRS 0 12110 005203 LDA RTB2 12111 021162 JST RT12 12112 024000 IRS 0 12113 003105 JMP RT6 12114 073174 LDX RDST 12115 005176 LDA HOP 12116 040673 ARR 5 12117 013177 ERA DEL 12120 051247 RT10: STA RST+NIMP X 12121 005202 LDA RTB1 /SHIFT THE BIT 12122 040477 LGR 1 12123 011202 STA RTB1 12124 100040 SZE 12125 003133 JMP RT11 12126 005203 LDA RTB2 12127 040477 LGR 1 12130 101040 SNZ 12131 004113 LDA SIGN 12132 011203 STA RTB2 12133 024000 RT11: IRS 0 12134 003006 JMP RT1 PAGE 151 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12135 073745 LDX (-8) 12136 045257 RT15: LDA DHT+8 X 12137 140401 CMA 12140 011172 STA RT13 12141 044277 LDA TDHT+8 X 12142 140401 CMA 12143 007172 ANA RT13 12144 140401 CMA 12145 050277 STA TDHT+8 X 12146 044307 LDA HDHT+8 X 12147 140401 CMA 12150 007172 ANA RT13 12151 140401 CMA 12152 050307 STA HDHT+8 X 12153 024000 IRS 0 12154 003136 JMP RT15 12155 103000 JMP RTGO I 12156 140040 RT5: CRA 12157 050267 STA RUT+NIMP X 12160 005747 LDA ((-1)) 12161 003103 JMP RT14 12162 000000 RT12: 0 12163 011172 STA RT13 12164 105204 LDA RTT1 I 12165 053257 ERA DHT+8 X 12166 007172 ANA RT13 12167 053257 ERA DHT+8 X 12170 051257 STA DHT+8 X 12171 103162 JMP RT12 I 12172 RT13: BSS 1 PAGE 152 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12173 000000 THDQ: 0 12174 000000 RDST: 0 /ROUTE DESTINATION SAVE TEMP 12175 000000 RHD: 0 /ROUTE HOST DEAD 12176 000000 HOP: 0 /# HOPS 12177 000000 DEL: 0 /DELAY 12200 000000 ITRT: 0 /INDIRECT TO ROUTE TABLE 12201 000000 CHAN: 0 /CHANNEL OF MINIMUM DELAY 12202 000000 RTB1: 0 /HOST DEAD BITS FOR THIS DESTINAT-ON 12203 RTB2: BSS 1 12204 000000 RTT1: 0 /ROUTE TEMP 12205 000000 RSTX: 0 12206 000000 PZE /TIME FOR "SYNC" GOES HERE 12207 RST: BSS NIMP DEFPLC [DHT] 12247 000000 DHT: BSZ 8 12250 000000 12251 000000 12252 000000 12253 000000 12254 000000 12255 000000 12256 000000 12257 RSCKSM: BSS 1 /CHECKSUM GOES HERE 12260 CED: BSS CH /COMPUTED EFFECTIVE DELAY PAGE 153 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TEST FOR DEAD HOSTS 12265 000000 DEDH: 0 12266 005745 LDA (-TH) 12267 011407 STA DHC 12270 072115 LDX ZERO 12271 045336 TDH1: LDA SKST X 12272 011275 STA TDH4 12273 001001 INH 12274 044720 LDA HIHD X 12275 000000 TDH4: 0 12276 003306 JMP TDH2 /READY LINE IS DOWN 12277 100400 SPL 12300 141206 AOA 12301 050720 STA HIHD X /RESTORE OLD HOST HEALTH 12302 101400 SMI 12303 101040 SNZ 12304 003370 JMP TDH3 /MARK ALIVE 12305 003313 JMP TDH9 /MARK DEAD 12306 100040 TDH2: SZE /USED TO BE ALIVE? 12307 003313 JMP TDH9 /NO 12310 005750 LDA (-47.) /HOLD HIM "READY LINE DOWN" FOR 3* : 12311 050720 STA HIHD X 12312 121751 JST (IHST) I /AND CLEAR OUT HIS QUEUES 12313 004000 TDH9: LDA 0 12314 023752 CAS (NH) /FAKE HOST? 12315 003331 JMP TDH5 /YES, DON'T CLEAR BITS 12316 003331 JMP TDH5 / " 12317 041577 ALS 1 12320 010000 STA 0 12321 004107 LDA OBIT 12322 021346 JST TDH6 12323 024000 IRS 0 12324 004110 LDA OBIT+1 12325 021346 JST TDH6 12326 005407 LDA DHC 12327 017745 SUB (-TH) 12330 010000 STA 0 12331 000401 TDH5: ENB 12332 024000 IRS 0 12333 025407 IRS DHC 12334 003271 JMP TDH1 12335 103265 JMP DEDH I 12336 070170 SKST: H1RDY 12337 070160 H2RDY 12340 070150 TIPDEF H3RDY, SKP 02620 012340 05607 070150 14266 100000 12341 070151 H4RDY 12342 100000 SKP /FAKE HOSTS ALWAYS READY 12343 100000 SKP 12344 100000 SKP 12345 100000 SKP PAGE 154 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12346 000000 TDH6: 0 /SUBR TO MARK A HOST DEAD IN ALL TAB 12347 011367 STA TDH8 12350 140401 CMA /AC IS BIT TO SET 12351 011366 STA TDH7 /X IS WHICH WORD 12352 106153 ANA IDHT I 12353 013367 ERA TDH8 12354 110153 STA IDHT I 12355 005366 LDA TDH7 12356 046267 ANA TDHT X 12357 013367 ERA TDH8 12360 050267 STA TDHT X 12361 005366 LDA TDH7 12362 046277 ANA HDHT X 12363 013367 ERA TDH8 12364 050277 STA HDHT X 12365 103346 JMP TDH6 I 12366 TDH7: BSS 1 12367 TDH8: BSS 1 12370 004111 TDH3: LDA CBIT /MARK A HOST ALIVE 12371 147377 ANA DHSB XI 12372 151377 STA DHSB XI 12373 004112 LDA CBIT+1 12374 147403 ANA DHS2 XI 12375 151403 STA DHS2 XI 12376 003331 JMP TDH5 12377 012247 DHSB: DHT 12400 012251 DHT+2 12401 012253 DHT+4 12402 012255 DHT+6 12403 012250 DHS2: DHT+1 12404 012252 DHT+3 12405 012254 DHT+5 12406 012256 DHT+7 12407 DHC: BSS 1 PAGE 155 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /ROUTINE TO GET WORD OFF ONE WORD MESSAGE QUEUE TO HOST /CALLING SEQUENCE /INDEX REGISTER CONTAINS HOST NUMBER / JST OWG / / 12410 000000 OWGE: DAC 0 12411 044450 LDA SHWQ X /GET START OF HOST ONE WORD QUEUE 12412 100040 SZE 12413 003421 JMP OWGL /RETURN IF NOTHING ON QUEUE 12414 100000 SKP 12415 073504 OWGX: LDX OWGY 12416 005505 LDA OWGA /GET DATA IN AC 12417 000401 ENB 12420 103410 JMP OWGE I /RETURN 12421 001001 OWGL: INH 12422 033504 STX OWGY 12423 011506 STA OWGS /SAVE START OF QUEUE FOR LATER USE 12424 004000 LDA 0 12425 017753 SUB (NH+1) 12426 101400 SMI 12427 003415 JMP OWGX 12430 025410 IRS OWGE /PREPARE TO TAKE SECOND RETURN 12431 073506 LDX OWGS /PUT START OF OUEUE IN INDEX REGIST! 12432 044001 LDA 1 X 12433 011505 STA OWGA 12434 044002 LDA 2 X 12435 010637 STA TWDG 12436 044003 LDA 3 X /GET POINTER TO POINTER TO HEAD O* ! 12437 011507 STA OWGT /SAVE FOR LATER USE 12440 073504 LDX OWGY /GET HOST NUMBER 12441 144450 LDA SHWQ I X 12442 050450 STA SHWQ X /UPDATE QUEUE POINTER 12443 100040 SZE 12444 003450 JMP OWG1 12445 005754 LDA (SHWQ) 12446 014000 ADD 0 12447 050540 STA EHWQ X /IF QUEUE NOW EMPTY FIX THINGS PAGE 156 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12450 073507 OWG1: LDX OWGT /GET POINTER TO HEAD OF BUFFER 12451 044002 LDA 2 X /GET FREE STORAGE POINTER FOR THI B 12452 111506 STA OWGS I 12453 005506 LDA OWGS /PUT THREE WORD BLOCK ON FREE STORAG 12454 050002 STA 2 X 12455 044003 LDA 3 X /GET FREE BLOCK COUNT 12456 016114 SUB ONE 12457 050003 STA 3 X /UPDATE FREE BLOCK COUNT 12460 023755 CAS (-18.) /IS BUFFER EMPTY 12461 003415 JMP OWGX /IF NO, RETURN 12462 044001 LDA 1 X /IF YES, PUT IT ON FREE LIST 12463 054000 ADD 0 X 12464 017756 SUB (SHBQ) /CHECK FOR LAST BUFFER ON OUEUE 12465 101040 SNZ 12466 003415 JMP OWGX /IF YES, RETURN 12467 044000 LDA 0 X /TAKE BUFFER OUT OF USE FOR ONE WORL 12470 150001 STA 1 I X 12471 044001 LDA 1 X 12472 064000 IRS 0 X 12473 150000 STA 0 I X 12474 004113 LDA SIGN 12475 050006 STA ACKH X 12476 001001 INH 12477 004441 LDA FREE /ADD IT TO FREE LIST 12500 050000 STA 0 X 12501 032441 STX FREE 12502 024621 IRS NFA /SUBTRACT ONE FROM FREE BUFFER COUN1 12503 003415 JMP OWGX 12504 OWGY: BSS 1 12505 OWGA: BSS 1 12506 OWGS: BSS 1 12507 OWGT: BSS 1 PAGE 157 IMPSYS,2514,IMP 6:49 PM 12/22/1971 HERE: 00100 012532 H1INIL/ HI0E 00101 012524 H2INIL/ TIPDEF HI1E, TOUT 02621 000101 05610 012524 14267 037006 00075 012516 H3INIL/ HI2E 00074 012510 H4INIL/ HI3E HERE/ /HOST 3 INTERRUPT ROUTINE 12510 HI3E: BSS 1 12511 033605 STX HIX 12512 073510 LDX HI3E 12513 033540 STX HISB 12514 073757 LDX (3) 12515 003542 JMP HISB+2 /HOST 2 INTERRUPT ROUTINE 12516 000000 HI2E: DAC 0 12517 033605 STX HIX 12520 073516 LDX HI2E 12521 033540 STX HISB 12522 073760 LDX (2) 12523 003542 JMP HISB+2 /HOST 1 INTERRUPT ROUTINE 12524 000000 HI1E: DAC 0 12525 033605 STX HIX 12526 073524 LDX HI1E 12527 033540 STX HISB 12530 072114 LDX ONE 12531 003542 JMP HISB+2 /HOST 0 INTERRUPT ROUTINE 12532 000000 HI0E: DAC 0 12533 033605 STX HIX /SAVE INDEX REGISTER 12534 073532 LDX HI0E 12535 033540 STX HISB 12536 072115 LDX ZERO /INTERRUPT FROM HOST 0 12537 003542 JMP HISB+2 PAGE 158 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / FROM HERE ON IS COMMON TO ALL HOST INTERRUPT ROUTINES 12540 000000 HISB: DAC 0 12541 033605 STX HIX 12542 000011 DXA 12543 003544 JMP . 1 12544 133761 STX (HIP) I /SAVE CURRENT HOST 12545 011603 STA HIA /SAVE AC 12546 000043 INK 12547 011604 STA HIK 12550 004225 LDA HIM /SET UP NEW INTERRUPT MASK (177760) 12551 170120 SMK INTM /OUTPUT IT 12552 026120 IMA PRIM /SAVE IT IN PRIM 12553 011606 STA HIMS /SAVE OLD PRIM 12554 140040 CRA 12555 051631 STA HITT X 12556 000401 ENB 12557 143560 JMP HILO I X /RESTART WHERE LAST LEFT OFF / HILO INDICATES WHAT ROUTINE DID LAST DEFPLC [HILO] 12560 HILO: BSS TH 12570 051560 HIDD: STA HILO X 12571 005606 LDA HIMS /RESTORE INTERRUPT MASK 12572 001001 INH 12573 170120 SMK INTM 12574 010120 STA PRIM 12575 005604 LDA HIK 12576 171020 OTK 12577 073605 LDX HIX /RESTORE IR 12600 005603 LDA HIA /RESTORE AC 12601 000401 ENB 12602 103540 JMP HISB I 12603 000000 HIA: DAC 0 /AC SAVE 12604 000000 HIK: DAC 0 /K SAVE 12605 000000 HIX: DAC 0 /IR SAVE 12606 000000 HIMS: OCT 0 /PRIM SAVE 12607 000000 HITC: DAC 0 /TIMEOUT CHECK ROUTINE 12610 005745 LDA (-TH) 12611 011630 STA HITK 12612 072115 LDX ZERO 12613 045631 HITZ: LDA HITT X 12614 101040 SNZ 12615 003622 JMP .+5 12616 065631 IRS HITT X 12617 003622 JMP .+3 12620 001001 INH 12621 021540 JST HISB 12622 000011 DXA 12623 003624 JMP . 1 12624 024000 IRS 0 12625 025630 IRS HITK 12626 003613 JMP HITZ 12627 103607 JMP HITC I 12630 HITK: BSS 1 12631 HITT: BSS TH PAGE 159 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12641 000000 HIST: 0 /RESTART HOST TO IMP 12642 005762 LDA (7) 12643 111763 STA (HIH3 0 X) I 12644 005764 LDA (HI53) 12645 051560 STA HILO X 12646 105765 LDA (EMIT 0 X) I 12647 111766 STA (EMFH 0 X) I 12650 140040 CRA 12651 051631 STA HITT X 12652 024711 IRS NFS 12653 001001 INH 12654 021540 JST HISB 12655 000011 DXA 12656 103641 JMP HIST I PAGE 160 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12657 000000 DDA3: 0 /STAND ALONE DDT INPUT 12660 131004 TTINAC 12661 003660 JMP .-1 12662 103657 JMP DDA3 I 12663 000000 DDA4: 0 /STAND ALONE DDT OUTPUT 12664 070104 TTSNBZ 12665 003675 JMP DDA5 12666 030104 TTSOM 12667 170004 TTOTA 12670 003667 JMP .-1 12671 070004 TTSRDY 12672 003671 JMP .-1 12673 030004 TTSIM 12674 103663 JMP DDA4 I 12675 021657 DDA5: JST DDA3 /GET THE INTERRUPTING CHARACTER 12676 102163 JMP LRET I /GO INTERRUPT DDT PAGE 161 IMPSYS,2514,IMP 6:49 PM 12/22/1971 12677 000050 HIB1: H1INBP 12700 000052 TIPDEF H2INBP,JUNK 02622 012700 05611 000052 14270 000001 12701 000056 TIPDEF H3INBP,TIPLNK+2 02623 012701 05612 000056 14271 000772 12702 000042 H4INBP 12703 012717 DAC HIBB 12704 012720 DAC HIBB+1 12705 012721 DAC HIBB+2 12706 012722 DAC HIBB+3 12707 000051 HIB2: H1INBP+1 12710 000053 TIPDEF H2INBP+1,JUNK 02624 012710 05613 000053 14272 000001 12711 000057 TIPDEF H3INBP+1,TIPLNK+3 02625 012711 05614 000057 14273 000773 12712 000043 H4INBP+1 12713 012723 DAC HIBC 12714 012724 DAC HIBC+1 12715 012725 DAC HIBC+2 12716 012726 DAC HIBC+3 12717 HIBB: BSS FH 12723 HIBC: BSS FH 12727 000000 HBTS: OCT 0 /FROM IMP AND HOST BITS 12730 000100 OCT 100 12731 000200 OCT 200 12732 000300 300 12733 040000 OCT 40000 12734 040100 OCT 40100 12735 040200 OCT 40200 12736 040300 OCT 40300 12737 177740 CONSTANTS 12740 000037 12741 003777 12742 000040 12743 000006 12744 040050 12745 177770 12746 177777 12747 012746 12750 177721 12751 010250 12752 000004 12753 000005 12754 000450 12755 177756 12756 000455 12757 000003 12760 000002 12761 007025 12762 000007 12763 047105 12764 007614 12765 045617 12766 047126 14200 012767 PAGEND 12 PAGE 162 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / NEW MESSAGE TABLE ROUTINES ** /* CODE 00 IN NORMAL USE /* CODE 10 ON FREE LIST ORG 13000 / BASIC MESSAGE TABLE ACCESSING ROUTINE / ENTER WITH POINTER TO TRANS OR RECEIVE TABLE IN IR / A IS LINK AND SOURCE/DEST / NXTR IS DEST/SOURCE HOST # 13000 016000 NNS: DAC Q 13001 033310 STX NNX 13002 011306 STA NNTI / CONCATENATE LOW THREE BITS OR LINK AND S/D 13003 040673 ARR 5 13004 013306 ERA NNTI 13005 007323 ANA (70) 13006 013306 ERA NNTI 13007 007324 ANA (77) / ADD 6 BIT HASH NUMBER TO TABLE BASE 13010 015310 ADD NNX 13011 010000 STA 0 13012 140040 CRA 13013 011307 STA NNT3 13014 011315 STA NN3T 13015 044002 LDA 0+NNB1-NNF X 13016 141140 ICL /GET BUCKET POINTER IN RIGHT AC 13017 003023 JMP NNL1 PAGE 163 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / NN3T COUNTS BAD ONES SKIPED 13020 025315 NNL: IRS NN3T 13021 044002 LDA 0+NNB1-NNF X /GET NEXT ENTRY IN CHAIN 13022 141050 CAL 13023 101040 NNL1: SNZ 13024 003051 JMP NN2 /JUMP IF END OF CHAIN FOUND / IF MATCH IS FOUND, NNT3 WILL POINT ONE BEFORE IT -- USED IN 13025 033307 STX NNT3 13026 015310 ADD NNX 13027 010000 STA 0 13030 044102 LDA 0+NNB2-NNF X 13031 023306 CAS NNTI 13032 003020 JMP NNL 13033 003035 JMP .+2 13034 003020 JMP NNL /JUMP TO TRY NEXT IF LINK AND S/D DO 13035 044202 LDA 0+NNB3-NNF X 13036 012625 ERA NXTR 13037 007325 ANA (74000) 13040 100040 SZE 13041 003020 JMP NNL /JUMP TO TRY NEXT ENTRY IF S/D HOST / RESET TIMERS 13042 044202 LDA 0+NNB3-NNF X 13043 141340 ICA 13044 101400 SMI 13045 007326 ANA (-10) 13046 141340 ICA 13047 050202 STA 0+NNB3-NNF X / IR NOW POINTS TO WINNING SLOT 13050 103000 JMP NNS I 13051 025000 NN2: IRS NNS / NO MATCH ON THIS BUCKET CHAIN 13052 103000 JMP NNS I PAGE 164 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / THIS ROUTINE ACCESSES THE MESSAGE TABLE AND BUILD AN ENTRY / IF NONE WAS ALREADY THERE 13053 016000 NNS1: DAC Q / THIS GET NNF OR MMF ( APPROPRIATE FREE LIST ) 13054 066000 IMA 0+NNF-NNF X 13055 011314 STA NNTT 13056 066000 IMA 0+NNF-NNF X 13057 021000 JST NNS 13060 103053 JMP NNS1 I /RETURN IF ENTRY FOUND IN TABLE 13061 005314 LDA NNTT /MUST ADD ENTRY TO MESSAGE TABLE 13062 101040 SNZ 13063 003114 JMP NN5 /JUMP IF NO FREE ENTRIES IN TABLE - 13064 005315 LDA NN3T 13065 100040 SZE 13066 003116 JMP NN6 /JUMP IF BUCKET NOT EMPTY 13067 005314 LDA NNTT /ADD NEXT ENTRY IN LEFT HALF 13070 141240 ICR 13071 052002 ERA 0+NNB1-NNF X 13072 050002 NN4: STA 0+NNB1-NNF X 13073 005314 LDA NNTT /FIX UP FREE LIST AND TERMINATE BUCK 13074 015310 ADD NNX 13075 010000 STA 0 13076 044002 LDA 0+NNB1-NNF X 13077 141044 CAR 13100 066002 IMA 0+NNB1-NNF X 13101 141050 CAL 13102 111310 STA NNX I 13103 005306 LDA NNTI /SAVE ID IN TABLE 13104 050102 STA 0+NNB2-NNF X 13105 004626 LDA NHEX /JAM S/D INTO TABLE 13106 007324 ANA (77) 13107 012625 ERA NXTR 13110 007327 ANA (103777) 13111 012625 ERA NXTR 13112 050202 STA 0+NNB3-NNF X 13113 103053 JMP NNS1 I /RETURN WITH ENTRY BUILT 13114 025053 NN5: IRS NNS1 13115 103053 JMP NNS1 I /RETURN WITH NO SPACE IN TABLE 13116 044002 NN6: LDA 0+NNB1-NNF X /ADD NEXT ENTRY TO RIGH- ! 13117 013314 ERA NNTT 13120 003072 JMP NN4 PAGE 165 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /** TIMEOUT PROCESSING *** 13121 016000 NNS2: DAC Q 13122 025311 IRS NNC 13123 103121 JMP NNS2 I /RETURN SEVEN TIMES OUT OF EIGHT 13124 025322 IRS SLOT 13125 003130 JMP .+3 13126 005330 LDA (-2) 13127 011322 STA SLOT 13130 072144 LDX MESR /=NNF 13131 021137 JST NNS3 13132 072143 LDX MEST /=MMF 13133 021137 JST NNS3 13134 005326 LDA (-8) 13135 011311 STA NNC 13136 103121 JMP NNS2 I 13137 016000 NNS3: DAC Q 13140 033312 STX NNNX 13141 033313 STX NNXT 13142 044001 LDA 0+NNLM-NNF X /SAVE MASK TO CHECK TIMER 13143 011316 STA NNTL 13144 005331 LDA (-100) 13145 011311 STA NNC 13146 003263 JMP NN12 13147 001001 NN10: INH 13150 140500 SSM 13151 011320 STA NNY 13152 044202 LDA 0+NNB3-NNF X 13153 100400 SPL 13154 003263 JMP NN12 /JUMP IF ON FREE LIST 13155 007332 ANA (200) 13156 101040 SNZ 13157 003212 JMP NN14 /JUMP IF LINK NOT BLOCKED 13160 044102 LDA 0+NNB2-NNF X 13161 052202 ERA 0 NNB3-NNF X 13162 007333 ANA (377) 13163 052202 ERA 0 NNB3-NNF X 13164 033317 STX NNX8 13165 073334 LDX (DHT) 13166 001001 INH 13167 120177 JST HSTCHK I 13170 003177 JMP NNDE /DEAD 13171 073317 LDX NNX8 13172 005322 LDA SLOT 13173 141206 AOA 13174 100040 SZE /SKIP IF VERY SLOW TIMEOUT 13175 003263 JMP NN12 /JUMP IF BLOCKED AND LIVE 13176 021275 JST NNZZ PAGE 166 IMPSYS,2514,IMP 6:49 PM 12/22/1971 13177 073317 NNDE: LDX NNX8 13200 044102 LDA 0 NNB2-NNF X 13201 010636 STA TWDP 13202 044202 LDA 0+NNB3-NNF X 13203 041674 ALR 4 13204 007335 ANA (100003) 13205 100400 SPL 13206 015336 ADD (NH) 13207 140100 SSP 13210 011320 STA NNY 13211 003213 JMP NN16 13212 021275 NN14: JST NNZZ 13213 044202 NN16: LDA 0+NNB3-NNF X 13214 010625 STA NXTR 13215 044102 LDA 0+NNB2-NNF X /SET UP ID 13216 073312 LDX NNNX 13217 021000 JST NNS /CALL NNS TO GET POINTER TO ENTRY 13220 003222 JMP .+2 13221 003263 JMP NN12 /JUMP IF NO ENTRY 13222 004113 LDA SIGN /MARK ON FREE 13223 050202 STA 0+NNB3-NNF X 13224 050102 STA 0+NNB2-NNF X 13225 044002 LDA 0+NNB1-NNF X /PUT ON FREE 13226 011314 STA NNTT 13227 141044 CAR 13230 113312 ERA NNNX I /(FREE POINTER) 13231 050002 STA 0+NNB1-NNF X 13232 004000 LDA 0 13233 017312 SUB NNNX 13234 111312 STA NNNX I 13235 073307 LDX NNT3 /POINTER TO ONE ENTRY EARLIER IN HF 13236 005315 LDA NN3T 13237 100040 SZE 13240 003271 JMP NN13 /JUMP IF NOT FIRST ON CHAIN 13241 044002 LDA 0+NNB1-NNF X 13242 141340 ICA 13243 013314 ERA NNTT 13244 141240 ICR PAGE 167 IMPSYS,2514,IMP 6:49 PM 12/22/1971 13245 052002 NN11: ERA 0+NNB1-NNF X 13246 050002 STA 0+NNB1-NNF X 13247 005320 LDA NNY 13250 100400 SPL 13251 003263 JMP NN12 13252 010000 STA 0 13253 004636 LDA TWDP 13254 012625 ERA NXTR 13255 141050 CAL 13256 012625 ERA NXTR 13257 007337 ANA (40377) 13260 013340 ERA (4400) 13261 020145 JST LEPI 13262 101000 NOP 13263 000401 NN12: ENB 13264 025313 IRS NNXT /INCREMENT TABLE POINTER 13265 073313 LDX NNXT 13266 025311 IRS NNC 13267 003147 JMP NN10 /LOOP BACK FOR NEXT SLOT IN TABLE 13270 103137 JMP NNS3 I 13271 005314 NN13: LDA NNTT 13272 052002 ERA 0+NNB1-NNF X 13273 141050 CAL 13274 003245 JMP NN11 13275 016000 NNZZ: DAC Q 13276 044202 LDA 0+NNB3-NNF X /INCREMENT TIMER 13277 015341 ADD (400) 13300 050202 STA 0+NNB3-NNF X 13301 007342 ANA (3400) 13302 013316 ERA NNTL /CHECK TIMER OVERFLOW 13303 100040 SZE 13304 003263 JMP NN12 /JUMP IF NOT READY TO TIMEOUT 13305 103275 JMP NNZZ I PAGE 168 IMPSYS,2514,IMP 6:49 PM 12/22/1971 13306 000000 NNTI: PZE 13307 000000 NNT3: PZE 13310 000000 NNX: PZE 13311 177774 NNC: OCT -4 13312 000000 NNNX: PZE 13313 000000 NNXT: PZE 13314 000000 NNTT: PZE 13315 000000 NN3T: PZE 13316 000000 NNTL: PZE 13317 000000 NNX8: PZE 13320 000000 NNY: PZE 13321 000000 MET: PZE 13322 177766 SLOT: DEC -10 13323 000070 CONSTANTS 13324 000077 13325 074000 13326 177770 13327 103777 13330 177776 13331 177700 13332 000200 13333 000377 13334 012247 13335 100003 13336 000004 13337 040377 13340 004400 13341 000400 13342 003400 PAGE 169 IMPSYS,2514,IMP 6:49 PM 12/22/1971 13343 000000 NNF: OCT 0 /FROM HERE THROUGH NNB3 MUST BE CONT 13344 001400 NNLM: 1400 13345 NNB1: BSS 64. 13445 NNB2: BSS 64. 13545 NNB3: BSS 64. 13645 000000 MMF: PZE /FROM HERE THROUGH MMB3 MUST BE CONT 13646 003000 3000 13647 MMB1: BSS 64. 13747 MMB2: BSS 64. 14047 MMB3: BSS 64. PAGE 170 IMPSYS,2514,IMP 6:49 PM 12/22/1971 14147 005162 DDSA: LDA DDA1 /ENTRY TO STAND ALONE DDT 14150 010161 STA LDIN /SET UP STAND ALONE I/O ROUTINES 14151 005163 LDA DDA2 14152 010162 STA LDOT 14153 005164 LDA DDA6 14154 111165 STA DDA7 I 14155 140040 CRA 14156 010222 STA OVRDF 14157 010164 STA BBNF 14160 000013 EXA 14161 102163 JMP LRET I 14162 012657 DDA1: DDA3 14163 012663 DDA2: DDA4 14164 016607 DDA6: QNUL 14165 016606 DDA7: QPTR 14166 SPAR: BSS 24. /MORE BUFFERS 14216 033251 DOG: STX TEP /SEE ZOW 14217 020145 JST LEPI 14220 003241 JMP DOG1 14221 072624 LDX THIS /NO SPACE FOR RFNM 14222 044005 LDA USED X 14223 101400 SMI 14224 103362 JMP (FQ) I 14225 001001 INH 14226 004624 LDA THIS 14227 026441 IMA FREE /PUT GUY ON FREE & TRY AGAIN 14230 110441 STA FREE I 14231 024621 IRS NFA 14232 044012 LDA HEAD+3 X 14233 010636 STA TWDP 14234 073251 LDX TEP 14235 105363 LDA (T10) I 14236 020145 JST LEPI 14237 103364 JMP (TSKL) I 14240 103364 JMP (TSKL) I 14241 001001 DOG1: INH 14242 073251 LDX TEP 14243 105365 LDA (IHLO 0 X) I 14244 017366 SUB (IH1) 14245 101040 SNZ 14246 120174 JST FIHE I 14247 000011 DXA 14250 103367 JMP (RACK) I 14251 TEP: BSS 1 PAGE 171 IMPSYS,2514,IMP 6:49 PM 12/22/1971 14252 ITBTIP: BSS MAXITB /SUBR TO GET FROM A Q 14276 GETQ: BSS 1 14277 033322 STX GTX 14300 010000 STA 0 14301 044000 LDA 0 X 14302 101040 SNZ 14303 003314 JMP G12 14304 144000 LDA 0 XI 14305 100040 SZE 14306 003312 JMP G11 14307 004000 LDA 0 14310 050070 STA ENDS X 14311 140040 CRA 14312 066000 G11: IMA 0 X 14313 064250 IRS ENDS+ENDS+ENDS X 14314 073322 G12: LDX GTX 14315 103276 JMP GETQ I 14316 GETX: BSS 1 /GET FROM A QUEUE, INDEXED 14317 014000 ADD 0 14320 021276 JST GETQ 14321 103316 JMP GETX I 14322 GTX: BSS 1 ENDS=ETQS-STQS PAGE 172 IMPSYS,2514,IMP 6:49 PM 12/22/1971 14323 044202 HI22: LDA MESS X /DISPLACED PIECE OF HI 14324 141340 ICA 14325 133370 STX (HI9A) I 14326 100400 SPL /IS LINK BLOCKED? 14327 103371 JMP (HI23) I /YES 14330 173372 LDX (HIP) I 14331 001001 INH /ROOM FOR ANOTHER MSG? 14332 105373 LDA (HIH1 0 X) I 14333 006121 ANA MSKR 14334 012106 ERA MINE 14335 100040 SZE 14336 103374 JMP (HI9B) I /IT'S SOMEBODY ELSE'S PROBLEM 14337 004621 LDA NFA 14340 016711 SUB NFS 14341 017375 SUB (10) 14342 016124 SUB MINF 14343 100400 SPL 14344 103376 JMP (HI9T) I /NOT ENOUGH FREE 14345 004623 LDA NREA 14346 016713 SUB NRES 14347 015375 ADD (10) 14350 016123 SUB MAXR 14351 101400 SMI 14352 103376 JMP (HI9T) I /NOT ENOUGH REASSEMBLY 14353 004623 LDA NREA /NOW REALLY TAKE THE SPACE 14354 015375 ADD (10) 14355 010623 STA NREA 14356 004711 LDA NFS 14357 015375 ADD (10) 14360 010711 STA NFS 14361 103374 JMP (HI9B) I 14362 003332 CONSTANTS 14363 003713 14364 003012 14365 050046 14366 010426 14367 003465 14370 007136 14371 007312 14372 007025 14373 047065 14374 007355 14375 000010 14376 007316 14202 014377 PAGEND 14 PAGE 173 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /DDT CONTROL LANGUAGE INFORMATION / / /********************CURRENTLY IMPLEMENTED COMMANDS********** / /THE INPUT RADIX IS ALWAYS OCTAL, AS IS THE OUTPUT RADIX /+ AND - WORK AS YOU WOULD EXPECT / / /. HAS THE VALUE OF THE CURRENT REGISTER'S ADDRESS )14-BIT) / /B HAS THE VALUE OF THE ADDRESS OF THE REGISTER WHERE THE B R /WAS SAVED AT THE LAST START / /A HAS THE VALUE OF THE ADDRESS OF WHERE THE A REGISTER /WAS SAVED AT THE LAST START / /P HAS THE VALUE OF THE ADDRESS OF THE REGISTER WHERE THE P R /WAS SAVE AT THE LAST START / /X HAS THE VALUE OF THE ADDRESS OF THE REGISTER WHERE THE X R /WAS SAVED AT THE LAST START / / HAS THE VALUE OF THE LAST THING TYPED BY DDT / /* HAS THE VALUE OF THE CONTENTS OF THE REGISTER ADDRESSED BY /HAS BEEN ASSEMBLED AS THE CURRENT SYLLABLE IT AL /THE CURRENT SYLLABLE AS A 14 BIT ADDRESS AND CAN B /ITSELF: E.G., P** HAS THE VALUE /OF THE CONTENTS OF THE REGISTER AT WHICH THE LAST /TOOK PLACE (P* GOT US THE ADDRESS OF THE LAST BRE; /SECOND * GOT US THE CONTENTS). / / /, SEPARATES ARGUMENTS TO MULTIPLE ARGUMENT COMMANDS / / /A1/ OPENS REGISTER AT LOCATION A1 (USED AS /A 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) AND ( /THE PREVIOUS REGISTER PAGE 174 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /A1 CLOSES THE CURRENTLY OPEN REGISTER (AS LINEFEED /OPENS THE NEXT REGISTER / / / /A1,A2,A3Z CLEARS ["ZEROES"] CORE BETWEEN LIMITS - A1 IS TH /CONSTANT CORE WILL BE CLEARED TO. A2 AND A3 ARE TH /LOWER AND UPPER LIMITS REPECTIVELY. / / /A1,A2W DUMPS OUT ["WRITES"] CORE BETWEEN LIMITS - A1 AN" A /ARE THE (INCLUSIVE) LOWERE AND UPPER LIMITS, RESPE / / /A1,A2,A3,A4S STARTS UP A PROGRAM (I.E. CAUSE A TRANSFER TO /LOCATION). A4 IS THE (14 BIT) ADDRESS AT WHICH THE /IS TO BE STARTED A3 SPECIFIES THE CONTENTS OF *HE /WHEN THE PROGRAM IS STARTED UP. A1 AND A2 SPECIFY /B AND X REGISTERS, REPSECTIVELY, WHEN THE PROGRAM / / /C CROSSPATCHES DDT TO IMP A1. / / /A1,A2,A3H SETS UP THE HEADER FOR MESSAGE /TRANSMISSION - MESSAGES ARE TRANSMITTED BY /TYPING A SEMICOLON, THEN ALL THE CHARACTERS UP TO /NEXT SEMICOLON ARE SENT OFF AS A MESSAGE TO /DESTINATION AS DETERMINED BY THIS HEADER A1 G VF /THE FIRST WORD OF DATA (USEFUL ONLY WHEN GOING TO /A2 GIVES LEADER WORD 1, IF THE "FOR IMP" BIT IS N /THEN THE FIRST DATA WORD WILL BE SET TO A 1. /A3 GIVES LEADER WORD 2 (LINK #). / / /O TURNS DDT OUTPUT OFF AND ON - REVERSES THE CURRENT STATE / / /A1,A2,A3,A4[E N] WORD SEARCHES: UNDER A MASK OF A1, DDT , /SEARCH FOR WORDS EQUAL (NOTEOUAL) TO A2 BETWEEN T! /LIMITS A3 TO A4. / / /*****************SENSE SWITCH FOUR********************* / / HAVING SENSE SWITCH 4 DOWN INHIBITS ALL OF /DDT'S COMMANDS WHICH COULD DESTROY THE PROGRAM **1 /LOOKED AT. IF YOU ATTEMPT TO CHANGE CORE WITH SS! /WILL TYPE "# " AT YOU AND COMPLETELY IGNORE THE /THE COMMANDS AFFECTED ARE: S, Q, Z, AND LINEFE*D /CARRIAGE RETURN IF TRYING TO SUPPLY NEW CONTENT= PAGE 175 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /***********************NULL ARGUMENT CONVENTIONS************ / /FOR =,CR,LF,^, AND IF /THE ARGUMENT A1 IS LEFT OUT, THE LAST NUMBER TYPED /BE USED AS THE ARGUMENT. / /FOR E, N, Z AND W, IF EITHER (OR BOTH) OF THE LIMITS ARE LEF /DDT WILL USE THE LAST LIMITS SPECIFIED FOR EITH*R /OR AN E OR AN N. /IF THE VALUE IS LEFT OUT IN AN E, N OR Z COMMAND, /SPECIFIED IN ANY E, N, OR Z COMMAND WILL BE USE" /IS LEFT OUT OF AN S COMMAND IT WILL BE SUPPLIED FR /THE LAST S DONE, OR -1 IF NO MASK HAS EVER /BEEN SPECIFIED. / /FOR S, ANY ARGUMENTS LEFT OUT WILL BE SUPPLIED FROM THE LAST /THOSE ARGUMENTS WERE SPECIFIED. / /************************************************************ PAGE 176 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /DDT ORG DORG /MAIN LISTEN LOOP 16000 021065 DCLR: JST CRLF /RESTART ENTRY 16001 021173 JST CPB 16002 021237 JST CLS 16003 021173 CLSE: JST CPB 16004 120161 LSE: JST LDIN I 16005 007630 ANA (177) 16006 101040 SNZ 16007 003000 JMP DCLR 16010 010000 STA 0 16011 023630 CAS (177) 16012 100000 SKP 16013 003034 JMP RUB /RUBOUT 16014 023631 CAS (15) 16015 100000 SKP 16016 003423 JMP CR /CARRIAGE RETURN 16017 023632 CAS (12) 16020 100000 SKP 16021 003412 JMP LF /LINE FEED 16022 017633 SUB (140) /CHECK IF CHAR IS WITHIN LIMITS: 40< 16023 101400 SMI 16024 003004 JMP LSE 16025 015634 ADD (100) 16026 100400 SPL 16027 003004 JMP LSE 16030 015635 ADD (DTAB) 16031 026000 IMA 0 16032 172000 LDX 0 I 16033 042000 JMP 0 X 16034 005636 RUB: LDA (243) 16035 120162 JST LDOT I 16036 021073 JST TAB 16037 003003 JMP CLSE PAGE 177 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /VARIABLES 16040 000000 PZE /PARAMETERS STORAGE BLOCK 16041 000000 PZE 16042 000000 PZE 16043 000000 PAR1: PZE 16044 000000 PRS: PZE /PARAMETER SUPPLIED - 1=> YES (R TO 16045 000000 SYL: PZE /LAST SYLLABLE TYPED IN 16046 000000 OP: PZE /OPERATOR ON CURRENT SYMBOL [<0 -> S 16047 000000 SX: PZE /ACTIVE REGISTERS FOR LAST STARTU" 16050 000000 SAC: PZE 16051 000000 SB: PZE 16052 000000 SP: PZE 16053 000000 LAST: PZE /LAST WORD TYPED (CURRENT VALUE OF < 16054 000000 PT: PZE /CURRENT VALUE OF . 16055 000000 OPEN: PZE /ADDRESS OF OPEN REG (<0 IF NONE) 16056 000000 PAGE: PZE /BASE ADDRESS OF PAGE WHICH . IS ON 16057 000000 DLO: PZE /LOW LIMIT 16060 000000 DHI: PZE /HI LIMIT 16061 000000 VAL: PZE /VALUE FOR CLEAR AND SEARCHES 16062 000000 PTR: PZE /PTR FOR LOOPING 16063 000000 CNT: PZE /COUNT FOR LOOPING 16064 177777 SMSK: OCT -1 /MASK FOR SEARCHES PAGE 178 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /UTILITY SUBROUTINES AND STUFF 16065 000000 CRLF: DAC 0 16066 005637 LDA (215) /TYPE A CARRIAGE RETURN 16067 120162 JST LDOT I 16070 005640 LDA (212) 16071 120162 JST LDOT I 16072 103065 JMP CRLF I 16073 000000 TAB: DAC 0 16074 073641 LDX (-3) /TYPE THREE SPACES 16075 005642 TAB1: LDA (240) 16076 120162 JST LDOT I 16077 024000 IRS 0 16100 003075 JMP TAB1 16101 103073 JMP TAB I PAGE 179 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16102 000000 GP: 0 0 /GET A PARAMETER 16103 007044 ANA PRS 16104 101040 SNZ 16105 025102 IRS GP 16106 045043 LDA PAR1 X 16107 103102 JMP GP I 16110 000000 GP1: 0 /GET PARAMETER 1 16111 072115 LDX ZERO 16112 004114 LDA ONE 16113 021102 JST GP 16114 025110 IRS GP1 16115 103110 JMP GP1 I 16116 000000 GP2: 0 /GET PARAMETER 2 16117 073643 LDX (-1) 16120 005644 LDA (2) 16121 021102 JST GP 16122 025116 IRS GP2 16123 103116 JMP GP2 I 16124 000000 GP3: 0 /GET PARAMETER 3 16125 073645 LDX (-2) 16126 005646 LDA (4) 16127 021102 JST GP 16130 025124 IRS GP3 16131 103124 JMP GP3 I 16132 000000 GP4: 0 /GET PARAMETER 4 16133 073641 LDX (-3) 16134 005647 LDA (10) 16135 021102 JST GP 16136 025132 IRS GP4 16137 103132 JMP GP4 I PAGE 180 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16140 000000 SLIM: 0 0 /SET UP LIMIT REGS (LO,DHI) 16141 021155 JST CSL 16142 021116 JST GP2 16143 100000 SKP 16144 011057 STA DLO 16145 021110 JST GP1 16146 100000 SKP 16147 011060 STA DHI 16150 005057 LDA DLO 16151 017060 SUB DHI 16152 017650 SUB (1) 16153 011063 STA CNT /LEAVE COUNT IN CNT 16154 103140 JMP SLIM I 16155 000000 CSL: 0 0 /COMBINE IN A SYLLABLE 16156 005046 LDA OP 16157 100400 SPL 16160 003170 JMP CSL1 16161 005045 LDA SYL 16162 015043 ADD PAR1 16163 011043 CSL2: STA PAR1 16164 140040 CRA 16165 011046 STA OP 16166 011045 STA SYL 16167 103155 JMP CSL I 16170 005043 CSL1: LDA PAR1 16171 017045 SUB SYL 16172 003163 JMP CSL2 16173 000000 CPB: 0 /CLEAR PARAMETERS BLOCK 16174 021155 JST CSL 16175 140040 CRA 16176 011044 STA PRS 16177 011043 STA PAR1 16200 011042 STA PAR1-1 16201 011041 STA PAR1-2 16202 011040 STA PAR1-3 16203 103173 JMP CPB I PAGE 181 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16204 000000 PAC: DAC 0 16205 007651 ANA (77777) 16206 011217 STA OPN /SAVE ADDRESS OF REG TO BE PRINTED 16207 021262 JST OPT 16210 005652 LDA (257) 16211 120162 JST LDOT I 16212 021110 JST GP1 16213 025044 IRS PRS 16214 005217 LDA OPN 16215 021217 JST OPN 16216 103204 JMP PAC I 16217 000000 OPN: 0 0 /OPEN A REGISTER AND TYPE ITS CONTEN 16220 007651 ANA (77777) 16221 011055 STA OPEN 16222 021110 JST GP1 16223 003230 JMP OPN1 /NO ARG, DON'T RESET . 16224 005055 LDA OPEN 16225 011054 STA PT 16226 007653 ANA (77000) 16227 011056 STA PAGE 16230 021073 OPN1: JST TAB 16231 073055 LDX OPEN 16232 044000 LDA 0 X 16233 011053 STA LAST 16234 021262 JST OPT 16235 021073 JST TAB 16236 103217 JMP OPN I 16237 000000 CLS: 0 0 /CLOSE A REGISTER 16240 021155 JST CSL 16241 005055 LDA OPEN 16242 100400 SPL 16243 103237 JMP CLS I 16244 021110 JST GP1 16245 003257 JMP CLS1 /NO NEW CONTENTS FOR THE REG 16246 011053 STA LAST 16247 004222 LDA OVRDF 16250 100040 SZE 16251 003254 JMP .+3 16252 101002 SS4 /SS4 MUST BE UP TO CHANGE CONTENT ! 16253 003034 JMP RUB /NOT UP - COMPLAIN 16254 005053 LDA LAST 16255 073055 LDX OPEN 16256 050000 STA 0 X 16257 140500 CLS1: SSM 16260 011055 STA OPEN 16261 103237 JMP CLS I PAGE 182 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16262 000000 OPT: DAC 0 16263 000201 IAB 16264 073654 LDX (-5) 16265 005643 LDA (-1) 16266 011312 STA OPTT 16267 005655 LDA (130) 16270 041077 LLL 1 16271 023656 OPT1: CAS (260) /ZERO? 16272 100000 SKP 16273 003305 JMP OPT4 /SEE IF WE SHOULD SUPRESS IT 16274 025312 IRS OPTT 16275 101000 NOP 16276 120162 OPT3: JST LDOT I 16277 005657 OPT2: LDA (26) 16300 041075 LLL 3 16301 024000 IRS 0 16302 003271 JMP OPT1 16303 120162 JST LDOT I /ALWAYS PRINT LOWEST ORDER DIGIT 16304 103262 JMP OPT I 16305 025312 OPT4: IRS OPTT 16306 003276 JMP OPT3 16307 005643 LDA (-1) /SUPRESS A ZERO 16310 011312 STA OPTT 16311 003277 JMP OPT2 16312 OPTT: BSS 1 PAGE 183 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /DISPATCHER ROUTINES 16313 040075 DIG: LRL 3 /DIGITS DISPATCH 16314 015045 ADD SYL 16315 041075 LLL 3 16316 017660 SUB (60) 16317 011045 DIG2: STA SYL 16320 021110 JST GP1 16321 025044 IRS PRS 16322 003004 JMP LSE 16323 021155 PLUS: JST CSL /ADDITION DISPATCH 16324 003004 JMP LSE 16325 021155 MIN: JST CSL /MINUS DISPATCH 16326 140500 SSM 16327 011046 STA OP 16330 003004 JMP LSE 16331 005054 PTOP: LDA PT /. DISPATCH 16332 003317 JMP DIG2 16333 005335 BOP: LDA CBB /B DISPATCH 16334 003317 JMP DIG2 16335 016051 CBB: DAC SB 16336 005340 AOP: LDA CBAC /A DISPATCH 16337 003317 JMP DIG2 16340 016050 CBAC: DAC SAC 16341 005343 POP: LDA CBP /P DISPATCH 16342 003317 JMP DIG2 16343 016052 CBP: DAC SP 16344 005346 XOP: LDA CBX /X DISPATCH 16345 003317 JMP DIG2 16346 016047 CBX: DAC SX 16347 073045 STAR: LDX SYL /* DISPATCH 16350 044000 LDA 0 X 16351 003317 JMP DIG2 16352 005053 BARR: LDA LAST / DISPATCH 16353 003317 JMP DIG2 PAGE 184 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16354 021155 COM: JST CSL /, DISPATCH 16355 140040 CRA 16356 027043 IMA PAR1 16357 027042 IMA PAR1-1 16360 027041 IMA PAR1-2 16361 027040 IMA PAR1-3 16362 005044 LDA PRS 16363 041477 LGL 1 16364 011044 STA PRS 16365 003004 JMP LSE PAGE 185 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16366 021155 SLH: JST CSL // DISPATCH 16367 021110 JST GP1 16370 005053 LDA LAST 16371 021217 SLH2: JST OPN 16372 003003 JMP CLSE 16373 021155 BS: JST CSL /BACKSLASH DISPATCH 16374 021110 JST GP1 16375 003401 JMP BS1 16376 007661 BS3: ANA (777) 16377 015056 ADD PAGE 16400 003371 JMP SLH2 16401 005053 BS1: LDA LAST 16402 041472 LGL 6 16403 100400 SPL 16404 003410 JMP BS2 16405 005053 LDA LAST 16406 007661 ANA (777) 16407 003371 JMP SLH2 16410 005053 BS2: LDA LAST 16411 003376 JMP BS3 16412 021237 LF: JST CLS /LINEFEED DISPATCH 16413 005637 LDA (215) 16414 120162 JST LDOT I 16415 003003 JMP CLSE 16416 021237 UA: JST CLS /^ DISPATCH 16417 005054 LDA PT 16420 016114 SUB ONE 16421 011054 STA PT 16422 003425 JMP CR1 16423 021237 CR: JST CLS /CARRIAGE RETURN DISPATCH 16424 025054 IRS PT 16425 021065 CR1: JST CRLF 16426 005054 LDA PT 16427 011053 STA LAST 16430 007662 ANA (37000) 16431 011056 STA PAGE 16432 005054 LDA PT 16433 021204 JST PAC 16434 003003 JMP CLSE PAGE 186 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16435 021140 Z: JST SLIM /Z DISPATCH 16436 021124 JST GP3 /GET CONSTANT CORE IS TO BE CLEAR*D 16437 005061 LDA VAL 16440 011061 STA VAL 16441 004222 LDA OVRDF 16442 100040 SZE 16443 003446 JMP .+3 16444 101002 SS4 /SS4 MUST BE UP TO ALLOW CLEAR 16445 003034 JMP RUB /ABORT 16446 005061 LDA VAL 16447 073057 LDX DLO 16450 050000 Z1: STA 0 X 16451 024000 IRS 0 16452 025063 IRS CNT 16453 003450 JMP Z1 16454 003000 JMP DCLR 16455 021463 W: JST SCH1 /W DISPATCH 16456 100000 DSKP: SKP /WRITE OUT BLOCK OF CORE 16457 021463 EQ: JST SCH1 /E DISPATCH 16460 100040 CSZE: SZE /DO EQUALS SEARCH 16461 021463 NEQ: JST SCH1 /N DISPATCH 16462 101040 SNZ 16463 000000 SCH1: 0 /SET UP TEST 16464 105463 LDA SCH1 I 16465 011501 STA SXEC 16466 021140 JST SLIM 16467 021124 JST GP3 16470 100000 SKP 16471 011061 STA VAL 16472 021132 JST GP4 16473 100000 SKP 16474 011064 STA SMSK 16475 073057 LDX DLO 16476 044000 SCH3: LDA 0 X 16477 013061 ERA VAL /COMPARE 16500 007064 ANA SMSK /MASK OFF BITS TO BE IGNORED 16501 000000 SXEC: 0 0 /TEST - SET UP BY CALLS 16502 003507 JMP SCH2 /FAILURE 16503 021065 JST CRLF /SUCCESS - TYPE OUT THE REGISTER 16504 004000 LDA 0 16505 021204 JST PAC 16506 073055 LDX OPEN 16507 024000 SCH2: IRS 0 16510 025063 IRS CNT 16511 003476 JMP SCH3 16512 003000 JMP DCLR PAGE 187 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16513 021155 S: JST CSL /S DISPATCH 16514 021110 JST GP1 16515 100000 SKP 16516 011052 STA SP 16517 021124 JST GP3 16520 100000 SKP 16521 011047 STA SX 16522 021132 JST GP4 16523 005051 LDA SB 16524 011051 STA SB 16525 000201 IAB 16526 021116 JST GP2 16527 005050 LDA SAC 16530 011050 STA SAC 16531 073047 LDX SX 16532 004222 LDA OVRDF 16533 100040 SZE 16534 003537 JMP .+3 16535 101002 SS4 /CANNOT START UNLESS SS4 IS UP 16536 003034 JMP RUB /ABORT 16537 005050 LDA SAC 16540 103052 JMP SP I 16541 021155 C: JST CSL 16542 021110 JST GP1 /CROSSPATCH 16543 003034 JMP RUB 16544 013663 ERA (40000) 16545 010732 STA HED0 /SET "FOR IMP BIT 16546 003000 JMP DCLR 16547 004222 OVRD: LDA OVRDF /O DISPATCH 16550 100040 SZE 16551 003561 JMP OVRD1 /LEAVING OVERRIDE MODE 16552 004164 LDA BBNF /FROM BBN 16553 100040 SZE 16554 003557 JMP .+3 16555 101002 SS4 /OR SS4 LET'S YOU ENTER OVERRIDE MOL 16556 003034 JMP RUB 16557 024222 IRS OVRDF 16560 003000 JMP DCLR 16561 140040 OVRD1: CRA 16562 010222 STA OVRDF 16563 021065 JST CRLF 16564 003000 JMP DCLR PAGE 188 IMPSYS,2514,IMP 6:49 PM 12/22/1971 16565 021155 H: JST CSL /SET UP A HEADER 16566 021116 JST GP2 16567 003571 JMP H1 16570 010730 STA MHD0 16571 021110 H1: JST GP1 16572 100000 SKP 16573 010731 STA MHD1 16574 003000 JMP DCLR 16575 004222 QDSP: LDA OVRDF 16576 100040 SZE 16577 003602 JMP .+3 16600 101002 SS4 16601 003034 JMP RUB /CAN'T GO INTO QUIET MODE WITH SS' D 16602 005606 LDA QPTR /QUIET MODE CONTROL 16603 026162 IMA LDOT 16604 011606 STA QPTR 16605 003000 JMP DCLR 16606 016607 QPTR: DAC QNUL 16607 016607 QNUL: DAC . /NULL SUBROUTINE 16610 103607 JMP .-1 I PAGE 189 IMPSYS,2514,IMP 6:49 PM 12/22/1971 DCON: ORG DTAB 01571 016323 DAC PLUS / 01572 016004 DAC LSE /! 01573 016004 DAC LSE /" 01574 016004 DAC LSE /# 01575 016004 DAC LSE /$ 01576 016004 DAC LSE /% 01577 016004 DAC LSE /& 01600 016004 DAC LSE /' 01601 016004 DAC LSE /( 01602 016004 DAC LSE /) 01603 016347 DAC STAR /* 01604 016323 DAC PLUS /+ 01605 016354 DAC COM /, 01606 016325 DAC MIN /- 01607 016331 DAC PTOP /. 01610 016366 DAC SLH // 01611 016313 DAC DIG /0 01612 016313 DAC DIG /1 01613 016313 DAC DIG /2 01614 016313 DAC DIG /3 01615 016313 DAC DIG /4 01616 016313 DAC DIG /5 01617 016313 DAC DIG /6 01620 016313 DAC DIG /7 01621 016313 DAC DIG /8 01622 016313 DAC DIG /9 01623 016004 DAC LSE /: 01624 016004 DAC LSE /; 01625 016004 DAC LSE /< 01626 016004 DAC LSE /= 01627 016004 DAC LSE /> 01630 016004 DAC LSE /? PAGE 190 IMPSYS,2514,IMP 6:49 PM 12/22/1971 01631 016004 DAC LSE /@ 01632 016336 DAC AOP /A 01633 016333 DAC BOP /B 01634 016541 DAC C /C 01635 016004 DAC LSE /D 01636 016457 DAC EQ /E 01637 016004 DAC LSE /F 01640 016004 DAC LSE /G 01641 016565 DAC H /H 01642 016004 DAC LSE /I 01643 016004 DAC LSE /J 01644 016004 DAC LSE /K 01645 016565 DAC H /L 01646 016004 DAC LSE /M 01647 016461 DAC NEQ /N 01650 016547 OVRD /O 01651 016341 DAC POP /P 01652 016575 DAC QDSP /Q 01653 016004 DAC LSE /R 01654 016513 DAC S /S 01655 016004 DAC LSE /T 01656 016004 DAC LSE /U 01657 016004 DAC LSE /V 01660 016455 DAC W /W 01661 016344 DAC XOP /X 01662 016004 DAC LSE /Y 01663 016435 DAC Z /Z 01664 016004 DAC LSE /[ 01665 016373 DAC BS / 01666 016004 DAC LSE /] 01667 016416 DAC UA /^ 01670 016352 DAC BARR / PAGE 191 IMPSYS,2514,IMP 6:49 PM 12/22/1971 DCON/ 16611 044007 TKTH: LDA HEAD X /"DISCARD" FIRST PKT 16612 007664 ANA (175777) 16613 013665 ERA (2000) 16614 050007 STA HEAD X 16615 044010 LDA HEAD+1 X 16616 140500 SSM 16617 050010 STA HEAD+1 X 16620 001001 INH 16621 132467 STX EHQ+NH+3 I 16622 032467 STX EHQ+NH+3 16623 024557 IRS NHA+NH+3 16624 121666 JST (TKTG) I 16625 001001 INH 16626 120150 JST FLUS I /FLUSH THE REST 16627 003624 JMP .-3 16630 000177 CONSTANTS 16631 000015 16632 000012 16633 000140 16634 000100 16635 001571 16636 000243 16637 000215 16640 000212 16641 177775 16642 000240 16643 177777 16644 000002 16645 177776 16646 000004 16647 000010 16650 000001 16651 077777 16652 000257 16653 077000 16654 177773 16655 000130 16656 000260 16657 000026 16660 000060 16661 000777 16662 037000 16663 040000 16664 175777 16665 002000 16666 004546 14204 016667 PAGEND 16 PAGE 192 IMPSYS,2514,IMP 6:49 PM 12/22/1971 ORG 17000 17000 103630 JMP (DDSA) I /ENTRY TO STAND ALONE DDT 17001 000000 HSFG: 0 /NON ZERO STARTS UP HOST SIMULATOR 17002 140040 DIN4: CRA /START HERE 17003 010164 STA BBNF 17004 120172 JST SUCK I 17005 010217 STA DSRC 17006 007631 ANA (40377) 17007 023632 CAS (40005) /THIS FROM THE TTY AT BBN? 17010 100000 SKP 17011 010164 STA BBNF /YES, SET THE FLAG 17012 120172 JST SUCK I 17013 010220 STA DSRC+1 17014 120172 DIN1: JST SUCK I 17015 003026 JMP DIN2 17016 011034 STA DINW 17017 141050 CAL 17020 101040 SNZ 17021 003024 JMP DIN3 /NOTHING AT ALL IN THIS WORD 17022 005034 LDA DINW 17023 021062 JST DINR 17024 025053 DIN3: IRS DEND /HAVE OUTPUT CLOSE OFF THEIR MESS GE 17025 003002 JMP DIN4 /GO BACK FOR NEXT MESSAGE 17026 011034 DIN2: STA DINW /FEED DDT A WORD 17027 021062 JST DINR 17030 005034 LDA DINW 17031 141340 ICA 17032 021062 JST DINR 17033 003014 JMP DIN1 17034 DINW: BSS 1 PAGE 193 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17035 000000 DIN: DAC 0 /DDT CALLS HERE TO GET A CHARACTER 17036 072114 DIN7: LDX ONE 17037 000011 DXA 17040 003041 JMP . 1 17041 000401 ENB 17042 100000 SKP 17043 120171 DIN8: JST DOZE I 17044 140040 CRA 17045 027053 IMA DEND /TIME TO END A MESSAGE? 17046 101040 SNZ 17047 003054 JMP DIN9 /NO 17050 005633 LDA (DIN7) /CLOSE A MESSAGE 17051 011167 STA DOUT 17052 003103 JMP DOT2 17053 DEND: BSS 1 17054 027102 DIN9: IMA DINC /INPUT CHAR READY? 17055 101040 SNZ 17056 003043 JMP DIN8 17057 001001 INH 17060 000013 EXA 17061 103035 JMP DIN I 17062 000000 DINR: DAC 0 /ROUTINE CALLS HERE TO FEED A CHAR T 17063 101400 SMI 17064 103062 JMP DINR I 17065 012113 ERA SIGN 17066 141140 ICL 17067 100040 SZE 17070 003074 JMP DINA 17071 010221 STA DDTI /WE ARE GIVING DDT A "BREAK" 17072 004163 LDA LRET 17073 011035 STA DIN 17074 011102 DINA: STA DINC 17075 120173 JST WAIT I /LET DDT GRAB THE CHAR 17076 005102 LDA DINC 17077 100040 SZE 17100 003075 JMP .-3 17101 103062 JMP DINR I 17102 DINC: BSS 1 PAGE 194 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17103 073634 DOT2: LDX (100001) /START HERE TO CLOSE OFF LAST MESSAG 17104 005214 LDA DOTW 17105 120170 JST JAM I 17106 004113 DOT6: LDA SIGN /START HERE WITH EMPTY WORLD 17107 021203 JST DOTR 17110 072114 DOT5: LDX ONE 17111 004217 LDA DSRC 17112 120170 JST JAM I 17113 004220 LDA DSRC+1 17114 120170 JST JAM I 17115 005635 LDA (-500.) 17116 011220 STA DCNT 17117 005215 LDA DOTA 17120 007636 ANA (177) 17121 000201 IAB 17122 041050 DOT3: LLL 24. 17123 013637 ERA (100200) 17124 021203 JST DOTR 17125 004221 LDA DDTI /DDT BEING INTERRUPTED? 17126 100040 SZE 17127 003141 JMP DOT4 /YES, SUPRESS OUTPUT 17130 000201 IAB 17131 072114 LDX ONE 17132 120170 JST JAM I 17133 025220 IRS DCNT 17134 003143 JMP DOT7 17135 004113 LDA SIGN 17136 073634 LDX (100001) 17137 120170 JST JAM I 17140 003106 JMP DOT6 17141 005640 DOT4: LDA (LSE) 17142 011167 STA DOUT 17143 004113 DOT7: LDA SIGN 17144 021203 JST DOTR 17145 003122 JMP DOT3 PAGE 195 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17146 140040 DOTI: CRA /START DDT OUTPUT HERE 17147 011102 STA DINC 17150 004106 LDA MINE 17151 013641 ERA (40000) 17152 010217 STA DSRC 17153 013642 ERA (100) 17154 010732 STA HED0 17155 005643 LDA (DOUT) 17156 010162 STA LDOT 17157 005644 LDA (DIN) 17160 010161 STA LDIN 17161 005645 LDA (QNUL) 17162 111646 STA (QPTR) I 17163 004163 LDA LRET 17164 011167 STA DOUT 17165 011053 STA DEND 17166 003106 JMP DOT6 PAGE 196 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17167 000000 DOUT: DAC 0 /DDT CALLS HERE WITH A CHAR TO TYPE 17170 000011 DXA 17171 003172 JMP . 1 17172 000401 ENB 17173 011215 STA DOTA 17174 007636 ANA (177) 17175 013214 ERA DOTW 17176 000201 IAB 17177 011216 STA DOTB 17200 033217 STX DOTX 17201 072114 LDX ONE 17202 103203 JMP DOTR I 17203 000000 DOTR: DAC 0 /ROUTINES CALL HERE TO RETURN TO "DT 17204 011214 STA DOTW 17205 005216 LDA DOTB 17206 000201 IAB 17207 005215 LDA DOTA 17210 073217 LDX DOTX 17211 001001 INH 17212 000013 EXA 17213 103167 JMP DOUT I 17214 DOTW: BSS 1 17215 DOTA: BSS 1 17216 DOTB: BSS 1 17217 DOTX: BSS 1 17220 DCNT: BSS 1 /NUMBER OF WORDS LEFT IN OUTPUT PACK PAGE 197 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17221 140040 TTYI: CRA /TELETYPE INPUT STARTS HERE 17222 011470 STA OTGO 17223 011001 STA HSFG 17224 011471 STA HSGO 17225 011406 STA MSGF 17226 011260 STA TTCH 17227 140401 CMA 17230 170020 SMK 20 /ENABLE TTY INTERRUPTS 17231 003267 JMP TTI3 /GO FIRE OFF A DUMMY MSG TO DDT 17232 005263 IND1: LDA TTI2 17233 011255 STA INDB 17234 000401 TTI1: ENB 17235 072115 LDX ZERO 17236 120171 JST DOZE I 17237 005470 LDA OTGO /OUTPUT ACTIVE? 17240 100040 SZE 17241 003234 JMP TTI1 /YES 17242 001001 INH 17243 026716 IMA TTFG /TTY HAVE SOMETHING FOR US?? 17244 101400 SMI 17245 101040 SNZ 17246 003234 JMP TTI1 /NO 17247 005261 LDA TTCR 17250 007636 ANA (177) /IGNORE PARITY BIT 17251 013647 ERA (200) 17252 011260 STA TTCH 17253 000401 ENB 17254 103255 JMP INDB I /GO PROCESS THE CHAR PAGE 198 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17255 000000 INDB: DAC 0 /ROUTINES COME HERE TO GET NEXT CHAR 17256 011262 STA TTIW 17257 003234 JMP TTI1 17260 TTCH: BSS 1 17261 TTCR: BSS 1 17262 TTIW: BSS 1 PAGE 199 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17263 017264 TTI2: DAC .+1 /PLACE TO START BUILDING NEW MESSAGE 17264 023404 CAS MSGT /THIS A REAL MFSSAGE? 17265 100000 SKP 17266 003316 JMP MSG /YES 17267 004732 TTI3: LDA HED0 17270 120170 JST JAM I 17271 140040 CRA 17272 120170 JST JAM I 17273 005260 LDA TTCH 17274 013647 ERA (200) 17275 100040 SZE 17276 003302 JMP TTI5 17277 004106 LDA MINE 17300 013650 ERA (40100) 17301 010732 STA HED0 17302 005260 TTI5: LDA TTCH 17303 140500 SSM 17304 141340 ICA 17305 011262 STA TTIW 17306 140040 CRA 17307 011471 STA HSGO 17310 140040 MSG2: CRA 17311 011406 STA MSGF 17312 005262 LDA TTIW 17313 072113 LDX SIGN /CLOSE OFF THE MESSAGE 17314 120170 JST JAM I 17315 003232 JMP IND1 PAGE 200 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17316 025406 MSG: IRS MSGF /SEND A MESSAGE 17317 005001 LDA HSFG 17320 011471 STA HSGO 17321 004730 LDA MHD0 17322 120170 JST JAM I 17323 004731 LDA MHD1 17324 120170 JST JAM I 17325 004113 MSG0: LDA SIGN 17326 021373 JST MSG1 17327 140500 SSM 17330 141340 ICA 17331 021373 JST MSG1 17332 013647 ERA (200) 17333 013262 ERA TTIW 17334 120170 JST JAM I 17335 003325 JMP MSG0 17336 140040 MSG3: CRA /BUILD A NUMBER 17337 021373 MSG4: JST MSG1 17340 023651 CAS (215) 17341 100000 SKP 17342 003347 JMP MSG5 /END OF THE NUMBER 17343 040075 LRL 3 17344 005262 LDA TTIW 17345 041075 LLL 3 17346 003337 JMP MSG4 17347 070104 MSG5: SKS TTNB /ECHO CR WITH A LF 17350 003370 JMP MSG6 /FORGET IT 17351 030104 OCP TTSO 17352 005652 LDA (212) 17353 170004 OTA TTOT 17354 003353 JMP .-1 17355 025470 IRS OTGO 17356 120171 MSG7: JST DOZE I /WAIT FOR CHAR TO TYPE OUT 17357 140040 CRA 17360 026716 IMA TTFG 17361 101040 SNZ 17362 003356 JMP MSG7 17363 005470 LDA OTGO /NOW UNSTEP OUTPUT FLAG 17364 016114 SUB ONE 17365 100400 SPL 17366 140040 CRA 17367 011470 STA OTGO 17370 005262 MSG6: LDA TTIW /ADD NUMBER TO MESSAGE 17371 120170 JST JAM I 17372 003325 JMP MSG0 PAGE 201 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17373 000000 MSG1: DAC 0 /SUBR TO GET NEXT CHAR FOR MESSAGE 17374 021255 JST INDB 17375 023404 CAS MSGT 17376 100000 SKP 17377 003310 JMP MSG2 /DONE - LEAP INTO INDB CODE 17400 023405 CAS NUMB 17401 103373 JMP MSG1 I 17402 003336 JMP MSG3 /PUT AN OCTAL NUMBER IN THE MESSA"= 17403 103373 JMP MSG1 I 17404 000273 MSGT: OCT 273 /SEMICOLON 17405 000272 NUMB: OCT 272 /COLON 17406 MSGF: BSS 1 /TAKING IN A MESSAGE FLAG PAGE 202 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17407 072115 TTO0: LDX ZERO /TELETYPE OUTPUT ROUTINES 17410 033472 STX TTNM /CLEAR FLAG 17411 120172 JST SUCK I /WAIT FOR SOME OUTPUT TO HAPPEN 17412 025470 IRS OTGO /GRAB THE TTY 17413 011466 STA TTOW 17414 120173 JST WAIT I 17415 005466 LDA TTOW 17416 041475 LGL 3 17417 011467 STA OCTL 17420 100400 SPL 17421 003425 JMP TTO1 17422 005471 LDA HSGO 17423 101040 SNZ 17424 003445 JMP TTO2 17425 005651 TTO1: LDA (215) 17426 021551 JST SEND 17427 005652 LDA (212) 17430 021551 JST SEND 17431 005652 LDA (212) 17432 021551 JST SEND 17433 005466 LDA TTOW 17434 021511 JST OCTO 17435 120172 JST SUCK I 17436 100000 SKP 17437 003442 JMP TTO7 17440 021511 JST OCTO 17441 003450 JMP TTO3 17442 025472 TTO7: IRS TTNM /SET END FLAG 17443 021511 JST OCTO 17444 003462 JMP TTO5 17445 120172 TTO2: JST SUCK I /FROM DDT: SKIP OVER REST OF LEADER 17446 100000 SKP 17447 003540 JMP TTO8 17450 120172 TTO3: JST SUCK I 17451 003473 JMP TTO4 /MORE MESSAGE 17452 025472 IRS TTNM 17453 011466 STA TTOW /DONE 17454 141050 CAL 17455 101040 SNZ 17456 003462 JMP TTO5 17457 005466 LDA TTOW /GET LAST CHAR 17460 141140 ICL 17461 021551 JST SEND 17462 140040 TTO5: CRA 17463 011470 STA OTGO 17464 011467 STA OCTL 17465 003407 JMP TTO0 17466 TTOW: BSS 1 17467 OCTL: BSS 1 17470 OTGO: BSS 1 17471 HSGO: BSS 1 17472 TTNM: BSS 1 /END OF MSG IF NON ZERO PAGE 203 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17473 011466 TTO4: STA TTOW /SEND ANOTHER WORD OF THE MESSAGE 17474 005467 LDA OCTL 17475 100400 SPL 17476 003506 JMP TTO6 17477 005466 LDA TTOW 17500 141140 ICL 17501 021551 JST SEND 17502 005466 LDA TTOW 17503 141050 CAL 17504 021551 JST SEND 17505 003450 JMP TTO3 17506 005466 TTO6: LDA TTOW 17507 021511 JST OCTO 17510 003450 JMP TTO3 17511 000000 OCTO: DAC 0 /OCTAL OUTPUT 17512 000201 IAB 17513 005653 LDA (-6) 17514 011536 STA OCO1 17515 005654 LDA (130) 17516 041077 LLL 1 17517 000201 OCO2: IAB 17520 011537 STA OCO3 17521 000201 IAB 17522 021551 JST SEND 17523 005537 LDA OCO3 17524 000201 IAB 17525 005655 LDA (26) 17526 041075 LLL 3 17527 025536 IRS OCO1 17530 003517 JMP OCO2 17531 005651 LDA (215) 17532 021551 JST SEND 17533 005652 LDA (212) 17534 021551 JST SEND 17535 103511 JMP OCTO I 17536 OCO1: BSS 1 17537 OCO3: BSS 1 17540 025472 TTO8: IRS TTNM 17541 005466 LDA TTOW /BLOCKED LINK MSG? 17542 007656 ANA (7400) 17543 013657 ERA (1400) 17544 100040 SZE 17545 003462 JMP TTO5 /NO, SO DONE 17546 005660 LDA (334) 17547 021551 JST SEND /YES, TYPE A BACKSLASH 17550 003462 JMP TTO5 PAGE 204 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17551 000000 SEND: DAC 0 /SUBR TO TYPE OUT A CHAR 17552 023647 CAS (200) /'200 BIT SET? 17553 101000 NOP 17554 100000 SKP 17555 103551 JMP SEND I /NO, IGNORE THE CALL 17556 072115 LDX ZERO 17557 070104 SKS TTNB 17560 003573 JMP SND2 /INTERRUPTING OUTPUT! 17561 030104 OCP TTSO 17562 170004 OTA TTOT 17563 003573 JMP SND2 17564 120173 SND3: JST WAIT I /WAIT FOR CHAR TO GO OUT 17565 140040 CRA 17566 026716 IMA TTFG 17567 101400 SMI 17570 101040 SNZ 17571 003564 JMP SND3 17572 103551 JMP SEND I 17573 005472 SND2: LDA TTNM /AT END OF MSG? 17574 100040 SZE 17575 003462 JMP TTO5 /YES, NO MSG TO SKIP 17576 120172 JST SUCK I /SKIP REST OF MESSAGE 17577 003573 JMP SND2 17600 010221 STA DDTI 17601 003462 JMP TTO5 /AND CONTINUE LOOKING FOR A NEW M*SS PAGE 205 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17602 000000 NNI: 0 /INITIALIZE MESSAGE TABLES 17603 073661 LDX (-100) 17604 004114 LDA ONE 17605 110144 STA MESR I 17606 110143 STA MEST I 17607 111662 NNI1: STA (MMB1+64. X) I 17610 111663 STA (NNB1+64. X) I 17611 004113 LDA SIGN 17612 111664 STA (MMB3+64. X) I 17613 111665 STA (NNB3+64. X) I 17614 105663 LDA (NNB1+64. X) I 17615 141206 AOA 17616 024000 IRS 0 17617 003607 JMP NNI1 17620 140040 CRA 17621 111666 STA (MMB1+63.) I 17622 111667 STA (NNB1+63.) I 17623 005670 LDA (-8) 17624 111671 STA (NNC) I 17625 005672 LDA (-2) 17626 111673 STA (SLOT) I 17627 103602 JMP NNI I PAGE 206 IMPSYS,2514,IMP 6:49 PM 12/22/1971 17630 014147 CONSTANTS 17631 040377 17632 040005 17633 017036 17634 100001 17635 177014 17636 000177 17637 100200 17640 016004 17641 040000 17642 000100 17643 017167 17644 017035 17645 016607 17646 016606 17647 000200 17650 040100 17651 000215 17652 000212 17653 177772 17654 000130 17655 000026 17656 007400 17657 001400 17660 000334 17661 177700 17662 053747 17663 053445 17664 054147 17665 053645 17666 013746 17667 013444 17670 177770 17671 013311 17672 177776 17673 013322 14205 017674 PAGEND 17 PAGE 207 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / STATISTICS PROGRAMS 20000/ PAGE 208 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / BACK CALLS HERE 20000 140040 STTI: CRA 20001 011370 STA STLB 20002 005002 LDA . 20003 011372 STA SOFO /PLANT THE FUNNY JMPS TO STATISTICS 20004 004332 BKST: LDA MGNF 20005 011350 STA FREQ+2 20006 072134 LDX ARVINS 20007 004315 LDA SAON 20010 100040 SZE 20011 073401 LDX (JST ARVTAK I) 20012 132133 STX ARVLOC I 20013 004311 LDA SON 20014 027372 IMA SOFO 20015 012311 ERA SON 20016 101040 SNZ 20017 003040 JMP SP2 20020 005372 LDA SOFO 20021 100040 SZE 20022 003031 JMP SP1 20023 073402 LDX (-NSTATS) 20024 045300 LDA SC1+NSTATS X 20025 151323 STA SB1+NSTATS I X 20026 024000 IRS 0 20027 003024 JMP .-3 20030 003040 JMP SP2 20031 121403 SP1: JST (CLST) I 20032 073402 LDX (-NSTATS) 20033 005404 LDA (JST SW1 I) 20034 151323 STA SB1+NSTATS XI 20035 141206 AOA 20036 024000 IRS 0 20037 003034 JMP .-3 PAGE 209 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /CALL THE ENABLED STATISTICS ROUTINES 20040 073405 SP2: LDX (-6) 20041 032313 STX TPON /CANNOT DISABLE BIN TRBL RPTS 20042 033371 SP3: STX SP8 20043 044316 LDA SNON+6 X 20044 101040 SNZ 20045 003062 JMP SP91 20046 004714 LDA SYNC 20047 057346 SUB OLDS+6 X 20050 100400 SPL 20051 140407 TCA 20052 057354 SUB FREQ+6 X 20053 100400 SPL 20054 003062 JMP SP91 20055 004714 LDA SYNC 20056 047362 ANA SYMM+6 X 20057 051346 STA OLDS+6 X 20060 021127 JST ENDA 20061 143370 JMP CAWL+6 XI 20062 073371 SP91: LDX SP8 20063 024000 SP90: IRS 0 20064 003042 JMP SP3 20065 004315 LDA SAON 20066 100040 SZE 20067 021167 JST GOAV 20070 073406 LDX (3) 20071 120171 JST DOZE I 20072 003004 JMP BKST PAGE 210 IMPSYS,2514,IMP 6:49 PM 12/22/1971 20073 004325 SNAP: LDA SND /SNAPSHOT SENDER 20074 121407 JST (GIVE) I 20075 004317 LDA SNLK 20076 121407 JST (GIVE) I 20077 005410 LDA (5) /SNAPSHOT CODE 20100 121407 JST (GIVE) I 20101 004204 LDA TIME 20102 121407 JST (GIVE) I / NUMBER OF TRANS AND RECEIVE LINKS NOT SENT HERE 20103 073411 LDX (SHQ+0-STQF) 20104 001001 SNP2: INH 20105 044624 LDA NREA+1 X /QUEUE LENGTHS 20106 056714 SUB NRES+1 X 20107 000401 ENB 20110 121407 JST (GIVE) I 20111 024000 IRS 0 20112 003104 JMP SNP2 20113 004151 LDA IRST 20114 015412 ADD (LRUT+1 X) 20115 011373 STA SNP5 20116 073413 LDX (-LRUT) 20117 044277 SNP3: LDA RUT+LRUT X /ROUTING TABLES 20120 121407 JST (GIVE) I 20121 105373 LDA SNP5 I 20122 121407 JST (GIVE) I 20123 024000 IRS 0 20124 003117 JMP SNP3 20125 121414 JST (GIVD) I 20126 003062 JMP SP91 PAGE 211 IMPSYS,2514,IMP 6:49 PM 12/22/1971 20127 000000 ENDA: DAC 0 20130 140040 CRA 20131 027370 IMA STLB 20132 101040 SNZ 20133 103127 JMP ENDA I 20134 005376 LDA HIBX 20135 023374 CAS HIBS 20136 003157 JMP ENA4 20137 003157 JMP ENA4 20140 004330 LDA SAD 20141 121407 JST (GIVE) I 20142 004322 LDA SALK 20143 121407 JST (GIVE) I 20144 005406 LDA (3) 20145 121407 JST (GIVE) I 20146 005376 ENA2: LDA HIBX 20147 023374 CAS HIBS 20150 003156 JMP ENA3 20151 003156 JMP ENA3 20152 105376 LDA HIBX I 20153 121407 JST (GIVE) I 20154 025376 IRS HIBX 20155 003146 JMP ENA2 20156 121414 ENA3: JST (GIVD) I 20157 001001 ENA4: INH 20160 005377 LDA HIBY 20161 026441 IMA FREE 20162 110441 STA FREE I 20163 000401 ENB 20164 103127 JMP ENDA I 20165 021167 GOAV.: JST GOAV 20166 003062 JMP SP91 20167 000000 GOAV: DAC 0 20170 005370 LDA STLB 20171 100040 SZE 20172 103167 JMP GOAV I 20173 001001 INH 20174 004441 LDA FREE 20175 101040 SNZ 20176 103167 JMP GOAV I 20177 104441 LDA FREE I 20200 026441 IMA FREE 20201 011377 STA HIBY 20202 015415 ADD (DATA) 20203 011374 STA HIBS 20204 011376 STA HIBX 20205 015416 ADD (BUFE+0-DATA-2) 20206 011375 STA HIBS+1 20207 025370 IRS STLB 20210 000401 ENB 20211 103167 JMP GOAV I PAGE 212 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /ARR1VAL STATISTICS 20212 000000 ARST: DAC 0 20213 005370 LDA STLB 20214 101040 SNZ 20215 003232 JMP ARS1 20216 105417 LDA (MP) I 20217 012315 ERA SAON 20220 100040 SZE 20221 003232 JMP ARS1 20222 005374 LDA HIBS 20223 023375 CAS HIBS+1 20224 003232 JMP ARS1 20225 003232 JMP ARS1 20226 131040 INA CLOK 20227 003226 JMP .-1 20230 111374 STA HIBS I 20231 025374 IRS HIBS 20232 140040 ARS1: CRA 20233 103212 JMP ARST I PAGE 213 IMPSYS,2514,IMP 6:49 PM 12/22/1971 /TROUBLE REPORTS 20234 072116 TRBL: LDX MICH /SET UP LINE ERRORS 20235 001001 INH 20236 140040 TRB1: CRA 20237 127420 IMA (E123+CH X) I 20240 017336 SUB RTSSNT 20241 140407 TCA 20242 100400 SPL 20243 140040 CRA 20244 051336 STA E321+CH X 20245 024000 IRS 0 20246 003236 JMP TRB1 20247 005421 LDA (-1) 20250 027336 IMA RTSSNT 20251 011337 STA RTSNTS 20252 000401 ENB 20253 121422 JST (NTR) I 20254 003062 JMP SP91 PAGE 214 IMPSYS,2514,IMP 6:49 PM 12/22/1971 20255 SC1: BSS NSTATS /TABLE OF INSTRUCTIONS TO REPLACE 20300 SB1: BSS NSTATS /TABLE OF WHERE THEY GO PAGE 215 IMPSYS,2514,IMP 6:49 PM 12/22/1971 20323 LINO: BSS CH 20330 TRBT: BSS 1 20331 E321: BSS CH 20336 RTSSNT: BSS 1 20337 RTSNTS: BSS 1 20340 000000 OLDS: BSZ 6 20341 000000 20342 000000 20343 000000 20344 000000 20345 000000 20346 000040 FREQ: OCT 40 20347 001000 OCT 1000 20350 000010 OCT 10 20351 004000 OCT 4000 20352 100000 100000 20353 000100 OCT 100 20354 177740 SYMM: OCT 177740 20355 177000 OCT 177000 20356 177777 OCT 177777 20357 174000 OCT 174000 20360 000000 0 20361 177700 OCT 177700 20362 020073 CAWL: DAC SNAP 20363 005553 DAC SEST 20364 001510 DAC GENM 20365 020234 TRBL 20366 020062 SP91 20367 020165 GOAV. 20370 000000 STLB: DAC 0 20371 000000 SP8: DAC 0 20372 000000 SOFO: PZE 20373 000000 SNP5: DAC 0 20374 HIBS: BSS 2 20376 000000 HIBX: PZE 20377 000000 HIBY: PZE 20400 SWS: BSS 1 PAGE 216 IMPSYS,2514,IMP 6:49 PM 12/22/1971 20401 120135 CONSTANTS 20402 177755 20403 011551 20404 120736 20405 177772 20406 000003 20407 006463 20410 000005 20411 177724 20412 040051 20413 177730 20414 006471 20415 000013 20416 000075 20417 005260 20420 043212 20421 177777 20422 006501 14206 020423 PAGEND 20 PAGE 217 IMPSYS,2514,IMP 6:49 PM 12/22/1971 21000/ /HOST TO IMP STATISTICS 21000 016000 HS0: DAC Q 21001 001001 INH 21002 033343 STX SAX1 21003 011344 STA SAA1 21004 005756 LDA (STTB) 21005 011345 STA WHER 21006 105757 LDA (HIP) I 21007 021034 JST SUB1 21010 015471 ADD TOT1 21011 011471 STA TOT1 21012 005344 LDA SAA1 21013 073343 LDX SAX1 21014 000401 ENB 21015 140500 SSM 21016 103000 JMP HS0 I / IMP TO HOST STATISTICS 21017 016000 HS1: DAC Q 21020 111760 STA (IHDO) I 21021 001001 INH 21022 005761 LDA (XGP) 21023 011345 STA WHER 21024 004000 LDA 0 21025 173762 LDX (IHXX 0 I) I 21026 021034 JST SUB1 21027 015507 ADD TOT2 21030 011507 STA TOT2 21031 073346 LDX XXXX 21032 000401 ENB 21033 103017 JMP HS1 I PAGE 218 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / DO HOST STUFF 21034 016000 SUB1: DAC Q 21035 011346 STA XXXX 21036 017763 SUB (NH) 21037 101400 SMI 21040 003063 JMP SP6 21041 044112 LDA BUFE X 21042 016000 SUB 0 21043 017764 SUB (CNTL) 21044 011347 STA SUBL 21045 044012 LDA HEAD+3 X 21046 007765 ANA (7) 21047 100040 SZE 21050 003061 JMP SP4 21051 005347 LDA SUBL 21052 021275 JST LOG 21053 015765 ADD (7) 21054 015345 SP5: ADD WHER 21055 011345 STA WHER 21056 125345 IRS WHER I 21057 005347 LDA SUBL 21060 103034 JMP SUB1 I 21061 016114 SP4: SUB ONE 21062 003054 JMP SP5 21063 025034 SP6: IRS SUB1 21064 025034 IRS SUB1 21065 103034 JMP SUB1 I / HOST TO IMP ALL MESSAGES 21066 016000 HS2: DAC Q 21067 141140 ICL 21070 065510 IRS CNT2 X 21071 103066 JMP HS2 I / IMP TO HOST CONTROL MESSAGES 21072 016000 HS3: DAC Q 21073 141206 AOA 21074 065520 IRS CNT3 X 21075 103072 JMP HS3 I PAGE 219 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / IMP TO MODEM HELLO 21076 016000 IM2: DAC Q 21077 065630 IRS IMHS X 21100 101040 SNZ 21101 025076 IRS IM2 21102 103076 JMP IM2 I / IMP TO MODEM ACKNOWLEDGES 21103 016000 IM4: DAC Q 21104 065635 IRS IMAS X 21105 010000 STA 0 21106 103103 JMP IM4 I / IMP TO MODEM RFNMS 21107 016000 IM3: DAC Q 21110 065642 IRS IMRS X 21111 064704 IRS NRFS X 21112 103107 JMP IM3 I / IMP TO MODEM MESSAGES 21113 016000 IM1: DAC Q 21114 015765 ADD (HEAD) 21115 011337 STA IMSA 21116 033340 STX IMSX 21117 010000 STA 0 21120 044103 LDA BUFE-HEAD X 21121 017337 SUB IMSA 21122 017766 SUB (3) 21123 011341 STA IMT1 21124 021275 JST LOG 21125 073340 LDX IMSX 21126 055320 ADD TUB1 X 21127 015767 ADD (XGP1) 21130 011342 STA IMT2 21131 125342 IRS IMT2 I 21132 005341 LDA IMT1 21133 055647 ADD ANS4 X 21134 051647 STA ANS4 X 21135 005337 LDA IMSA 21136 103113 JMP IM1 I PAGE 220 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / MODEM TO IMP DISCARD 21137 000000 MI1: DAC 0 21140 025654 IRS MTOT 21141 070471 M1ERR 21142 103137 JMP MI1 I 21143 025661 IRS CKSM 21144 025137 IRS MI1 21145 103137 JMP MI1 I / MODEM TO IMP I HEARD YOU 21146 000000 MI2: DAC 0 21147 105770 LDA (MP) I 21150 015771 ADD (IRS MIIH-1) 21151 011155 STA .+4 21152 044007 LDA HEAD X 21153 007772 ANA (4000) 21154 100040 SZE 21155 000000 0 21156 004635 LDA THD 21157 103146 JMP MI2 I PAGE 221 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / MODEM TO IMP BUFFER TROUBLE 21160 000000 MI3: DAC 0 21161 065672 IRS BUFT-1 X 21162 100040 SZE 21163 025160 IRS MI3 21164 100040 SZE 21165 065677 IRS SLOW-1 X 21166 103160 JMP MI3 I /MORE OF MODEM TO IMP DISCARD 21167 000000 MI1A: DAC 0 21170 025655 IRS MTOT+1 21171 070472 M2ERR 21172 103167 JMP MI1A I 21173 025662 IRS CKSM+1 21174 025167 IRS MI1A 21175 103167 JMP MI1A I 21176 000000 MI1B: DAC 0 21177 025656 IRS MTOT+2 21200 070473 M3ERR 21201 103176 JMP MI1B I 21202 025663 IRS CKSM+2 21203 025176 IRS MI1B 21204 103176 JMP MI1B I 21205 000000 MI1C: 0 21206 025657 IRS MTOT+3 21207 070474 M4ERR 21210 103205 JMP MI1C I 21211 025664 IRS CKSM+3 21212 025205 IRS MI1C 21213 103205 JMP MI1C I 21214 000000 MI1D: 0 21215 025660 IRS MTOT+4 21216 070475 M5ERR 21217 103214 JMP MI1D I 21220 025665 IRS CKSM+4 21221 025214 IRS MI1D 21222 103214 JMP MI1D I PAGE 222 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / TASK ACKNOWLEDGES 21223 000000 TSK1: DAC 0 21224 024712 IRS NSFS 21225 065712 IRS NTA+CH X 21226 103223 JMP TSK1 I / TIMEOUT RETRANSMITS 21227 000000 TOY9: DAC 0 21230 025712 IRS NTOR 21231 140040 CRA 21232 103227 JMP TOY9 I PAGE 223 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / SAVE TIME OF MFSSAGE TRANSMISSION 21233 016000 HS4: DAC Q 21234 011350 STA HS4A 21235 033351 STX HS4X 21236 004000 LDA 0 21237 016143 SUB MEST 21240 010000 STA 0 21241 131040 INA CLOK 21242 003241 JMP .-1 21243 051352 STA HS4T-2 X 21244 005350 LDA HS4A 21245 073351 LDX HS4X 21246 007773 ANA (37400) 21247 103233 JMP HS4 I 21250 000000 HS5: DAC 0 /MEASURE ROUND TRIP TIME UPON GETTIN 21251 033353 STX HS5Y 21252 044102 LDA 102 X 21253 006121 ANA MSKR 21254 011352 STA HS5B 21255 004000 LDA 0 21256 016143 SUB MEST 21257 010000 STA 0 21260 131040 INA CLOK 21261 003260 JMP .-1 21262 057352 SUB HS4T-2 X 21263 040475 LGR 3 21264 073352 LDX HS5B 21265 001001 INH 21266 055530 ADD HS4R X 21267 051530 STA HS4R X 21270 065570 IRS HS4S X 21271 000401 ENB 21272 073353 LDX HS5Y 21273 044202 LDA MESS X 21274 103250 JMP HS5 I PAGE 224 IMPSYS,2514,IMP 6:49 PM 12/22/1971 / LOG SUBROUTINE 21275 000000 LOG: DAC 0 21276 033336 STX LOGX 21277 023765 CAS (7) 21300 003307 JMP LOG1 21301 101000 NOP 21302 100400 SPL 21303 003311 JMP LOG3 21304 010000 STA 0 21305 045326 LDA LOGT X 21306 003316 JMP LOG2 21307 040575 LOG1: ARS 3 21310 023765 CAS (7) 21311 005765 LOG3: LDA (7) 21312 101000 NOP 21313 010000 STA 0 21314 045326 LDA LOGT X 21315 015766 ADD (3) 21316 073336 LOG2: LDX LOGX 21317 103275 JMP LOG I PAGE 225 IMPSYS,2514,IMP 6:49 PM 12/22/1971 21320 000000 TUB1: DEC 0 21321 000006 DEC 6 21322 000014 DEC 12 21323 000022 DEC 18 21324 000030 DEC 24 21325 000036 DEC 30 21326 000000 LOGT: DEC 0 21327 000000 DEC 0 21330 000001 DEC 1 21331 000001 DEC 1 21332 000002 DEC 2 21333 000002 DEC 2 21334 000002 DEC 2 21335 000002 DEC 2 21336 LOGX: BSS 1 21337 IMSA: BSS 1 21340 IMSX: BSS 1 21341 IMT1: BSS 1 21342 IMT2: BSS 1 21343 SAX1: BSS 1 21344 SAA1: BSS 1 21345 WHER: BSS 1 21346 XXXX: BSS 1 21347 SUBL: BSS 1 21350 HS4A: BSS 1 21351 HS4X: BSS 1 21352 HS5B: BSS 1 21353 HS5Y: BSS 1 21354 HS4T: BSS 64. PAGE 226 IMPSYS,2514,IMP 6:49 PM 12/22/1971 21454 STTB: BSS 13. 21471 TOT1: BSS 1 21472 XGP: BSS 13. 21507 TOT2: BSS 1 21510 CNT2: BSS TH 21520 CNT3: BSS TH 21530 HS4R: BSS NIMP 21570 HS4S: BSS NIMP 21630 IMHS: BSS CH 21635 IMAS: BSS CH 21642 IMRS: BSS CH 21647 ANS4: BSS CH 21654 MTOT: BSS CH 21661 CKSM: BSS CH 21666 MIIH: BSS CH 21673 BUFT: BSS CH 21700 SLOW: BSS CH 21705 NTA: BSS CH 21712 NTOR: BSS CH 21717 XGP1: BSS CH+CH+CH+CH+CH+CH 21755 EP20: BSS 1 /BEGINNING OF PATCH AREA NST=0+0+EP20-STTB 21756 021454 CONSTANTS 21757 007025 21760 010073 21761 021472 21762 110173 21763 000004 21764 000011 21765 000007 21766 000003 21767 021717 21770 005260 21771 025665 21772 004000 21773 037400 14207 021774 PAGEND 21 /PUT END OF P 21 AND REST OF CORE ON FREE LIST 14210 000000 CORBLK 22,27 14211 000000 14212 000000 14213 000000 14214 000000 14215 000000 PAGE 227 IMPSYS,2514,IMP 6:49 PM 12/22/1971 REPEAT 1IF P,[ NBUFS/ PRINT "TOTAL BUFFERS" IMAXR=[[[NBUFS-PBUFS-7]^Q10]^T10]+2 IMAXR/ PRINT "REASSEMBLY LIMIT" IMAXS.=[[NBUFS-PBUFS-7]^R10]+7+IMAXR^Q3 IMAXS./ PRINT "STORE/FORWARD LIMIT" NITB/ PRINT "NUMBER OF IMP/TIP CONVERSION REGISTERS" NSTATS/ PRINT "NUMBER OF STATISTICS GATHERING PLACES" IMAXS/ IMAXS. 0 1000 MAXR/ IMAXR 0 1000 02630 001024 ] 00123 001032 DMPPLC /DUMP OUT HANDY VALUES START