DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 78336 (0x13200) Types: TextFile Names: »EDIMOD«
└─⟦31861d049⟧ Bits:30005074 8" CR80 Floppy CR80FD_0012 ( EDI SYS 1 PJ DEC 3, 80 ) └─⟦46bca6409⟧ └─ ⟦this⟧ »EDIMOD«
LIST ;---------------------------------------------------------------------- ; PROJECT: NICS_TARE/CP ; ; MODULE IDENTIFICATION:NIC/291 ; DISK IDENTIFICATION: CR/D/0943 ; ; CPS NAME: ERROR DETECTION AN CORRECTION (EDC) SUBMODULE ; EDC INPUT PROGRAM SECTION (EDI). ; CPS VERSION: 0100 ; ; MERGE FILES: SEE LIST BELOW ; ; MODULE FILES: EDISOD,EDIMOD,EDIHOD,EDIVOD,EDINOD. ; ; REFERENCES: NIC/200/PSP/0006 ; ;---------------------------------------------------------------------- BEGIN MODULE EDISYS USE BASE XDATE:=#0722 ;---------------------------------------------------------------------- ; ; MERGE FILE MESSAGES ; ;---------------------------------------------------------------------- NOLIST ; 00000195 0 0010 LEVEL 1 NAMES: USE BASE EEC003:= #0002 EEC021:= #000A EEC030:= #000C EEC004:= #0003 EEC022:= #000A EEC031:= #000C EEC005:= #0003 EEC014:= #0007 EEC023:= #000A EEC032:= #000C EOCS12:= #0012 EEC006:= #0004 EEC015:= #0007 EEC007:= #0004 EEC025:= #000B EEC106:= #00C5 EOCTSB:= #0007 EEC008:= #0004 EEC107:= #00C6 EEC116:= #00CB EBBD1X:= #0003 EEC009:= #0005 EEC018:= #0008 EEC108:= #00C7 EEC117:= #00CC EBBD2X:= #0004 EEC019:= #0009 EEC118:= #00CC EOCTDT:= #0001 EOCTNK:= #0004 EBCNTX:= #0002 BTNAK:= #0046 EEC10A:= #00C8 EEC10B:= #00C9 BTSETB:= #004B EEC10C:= #00CA EOCTRR:= #0006 BTEOM:= #0042 EOCLCB:= #000E EOCEOB:= #000D EECECX:= #0008 EBBIDX:= #0003 EOCCRC:= #0064 BTNAK2:= #0047 BTEOS:= #0043 EOCTAC:= #0003 EOCLCL:= #0005 EOCTDC:= #0000 EBUCFM:= #0700 EOCATF:= #000E BTD:= #0041 EOCNCL:= #0005 EECSRA:= #0001 EOCLOC:= #0008 EECSBR:= #0000 EOARMB:= #0004 EOCBDX:= #0007 EECOUE:= #000E EOCRCL:= #0005 BTACKL:= #0045 EECURE:= #000F EBTYPX:= #0003 EOCS1:= #0001 EOCS2:= #0002 BTNAKF:= #0048 EOCS3:= #0003 EOCS4:= #0004 EBTABX:= #0003 EOCS5:= #0005 EOCTAL:= #0005 EOCSCL:= #0005 BTRR:= #004A EOCTLC:= #0002 EOCLTF:= #000F BTACK:= #0044 BTLCB:= #0049 EOCHMT:= #05DC EEC001:= #0002 EEC010:= #0006 EEC002:= #0002 EEC011:= #0006 EEC020:= #0009 EOCRTE:= #000A USE #0 MESSAGE <:MERGE EOCNOD:> ; 00003413 0 00D4 LEVEL 2 NAMES: USE PROG ED7110:= #0ABB ED7200:= #0AD8 ED7120:= #0ABE ED7040:= #09D3 ED6420:= #095A ED7050:= #0A12 ED7130:= #0AC6 ED6440:= #097C ED6520:= #0988 ED7060:= #0A25 ED7070:= #0A43 ED7080:= #0A78 ED7140:= #0AC6 ED7150:= #0AC6 ED7160:= #0AC7 ED7170:= #0AD1 ED7190:= #0AD1 ED7290:= #0B5C ED8400:= #0CA9 USE #0 MESSAGE <:MERGE EDONOD:> ; 00001130 0 00E3 LEVEL 2 NAMES: USE BASE ECFPTR:= #0042 CDTPTA:= #004F COBUF:= #006A COEBBC:= #006D COEBCC:= #006E EDMBAH:= #0020 EDOBAH:= #0020 MQEPTA:= #0050 EDWORK:= #0054 MQIPTA:= #0051 CEEST:= #005E PCFPTR:= #0044 CITYPE:= #0064 ECRPTR:= #0043 LETPTA:= #0053 CIEST:= #0061 EIBASE:= #0093 CIBID:= #0065 LOOPCT:= #0016 CDTPTR:= #0045 MQOPTA:= #0052 COEBRF:= #006B NMQEPT:= #005C EMBASE:= #0073 CSTPTA:= #004B COEST:= #0069 COSMSK:= #0072 NMQIPT:= #005F MQEPTR:= #0046 EOBASE:= #00C3 COEBBT:= #006F GSTPTA:= #004A MQIPTR:= #0047 COBID:= #006C CEFLG:= #005D ECFPTA:= #004C EDIPRH:= #0380 EDWRK0:= #0054 CSCTYP:= #0017 EDWRK1:= #0055 EDWRK2:= #0056 CIFLG:= #0060 CIBID1:= #0065 EDWRK3:= #0057 CIBID2:= #0066 LETPTR:= #0049 EDWRK4:= #0058 EDWRK5:= #0059 ECIITL:= #0019 EDWRK6:= #005A EDWRK7:= #005B NMQOPT:= #0067 CITAB:= #0063 CSCPLA:= #0018 EDMPRH:= #0520 MQOPTR:= #0048 EDOPRH:= #0420 CIBUF:= #0062 COFLG:= #0068 COEBPT:= #0070 CSTPTR:= #0041 PCFPTA:= #004E ECRPTA:= #004D EDIBAH:= #0030 COEBPW:= #0071 GSTPTR:= #0015 USE PROG EI1980:= #0012 EI7290:= #0029 EI1990:= #0013 EMPROG:= #0050 EOPROG:= #08F0 EI19A0:= #0014 EI19B0:= #0015 EI19C0:= #0016 EI19D0:= #0017 EI19E0:= #0018 EI19F0:= #0019 EI19F1:= #001A EDCSYS:= #5B80 EDISYS:= #6140 EDMSYS:= #5C20 EDOSYS:= #64C0 ED0300:= #002B ED0500:= #0036 EI1200:= #0000 EI1600:= #0003 EI4300:= #0020 EI3500:= #001E EI1601:= #0004 EI3410:= #001B EI1251:= #0001 EI3600:= #001F EI1602:= #0005 EI1800:= #0009 EI3420:= #001C EI4410:= #0021 EI7200:= #0028 EI1603:= #0006 EI1900:= #000A EI3430:= #001D EI1604:= #0007 EI1910:= #000B EI5600:= #0023 EI1920:= #000C EI4530:= #0008 EI6420:= #0025 EI5700:= #0024 EI8400:= #002A EIPROG:= #0570 EI1930:= #000D EI6520:= #0027 EI1940:= #000E EI6440:= #0026 EI1950:= #000F EI1960:= #0010 EI1475:= #0002 EI1970:= #0011 EI4580:= #0022 USE #0 MESSAGE <:MERGE EDCNOD:> ; 00000104 0 0016 LEVEL 2 NAMES: USE BASE XGSTPR:= #0015 XHSSIZ:= #FFFA XMBASE:= #0009 XHEXSZ:= #FFFE XLICC:= #0011 XGSTP:= #0015 XHWRK0:= #FFF0 XHWRK1:= #FFF1 XBASE:= #0008 XHWRK2:= #FFF2 XHPID:= #FFFF XHWRK3:= #FFF3 XHWRK4:= #FFF4 XHWRK5:= #FFF5 XHWRK6:= #FFF6 XHWRK7:= #FFF7 XTSWH:= #0014 XPCLNK:= #000E XHRPRG:= #FFFB XHTXSZ:= #FFFD XTIME:= #000C XHSPCT:= #FFF9 XR0:= #0000 XMASK:= #000D XHOLTO:= #FFF9 XR1:= #0001 XPRPC:= #000B XR2:= #0002 XHPBSZ:= #FFFC XR3:= #0003 XLIRP:= #0010 XR4:= #0004 XPROG:= #000A XR5:= #0005 XHWORK:= #FFF0 XR6:= #0006 XR7:= #0007 XIDAD:= #0012 XHDATE:= #FFF2 XHTEST:= #FFF8 XLISP:= #000F XHNAME:= #FFF0 XTMRES:= #0013 USE #0 MESSAGE <:MERGE XPDNOD:> ; 00000182 0 0288 LEVEL 1 NAMES: A= #000C USE BASE SYSMPI:= #2C70 ECRLPN:= #01BC OCILPN:= #015C ICPLPN:= #0030 SYSERR:= #14F0 IDPLPN:= #00B4 CRILPN:= #012C SYSSME:= #1F90 TSTLPN:= #0174 SYSTME:= #AB00 SYSCPT:= #7000 CDTLPN:= #01A4 SYSESP:= #F000 SYSMON:= #07F0 SYSRTC:= #1400 SYSSIM:= #8000 EDTLPN:= #0270 SYSESR:= #00C0 LPDLPN:= #0138 LOGLPN:= #01F8 SYSMXI:= #25D0 ODPLPN:= #00C0 MQELPN:= #027C LPILPN:= #0144 SYSDBA:= #1F90 MPILPN:= #009C MQILPN:= #01E0 SYSTCT:= #A580 SYSESS:= #0200 SYSLMT:= #0040 SYSCDC:= #0081 ERRLPN:= #003C TS2LPN:= #018C HXILPN:= #0234 SYSOLT:= #1A40 SYSEDC:= #5B80 SYSCDE:= #7FFF SYSSXD:= #90F0 SYSONT:= #69F0 SYSTQM:= #1940 SYSTIT:= #9BB0 ESPLPN:= #0018 MXCLPN:= #0084 MPLLPN:= #0258 SYSMXP:= #6FF0 MONLPN:= #0000 RTCLPN:= #006C SIMLPN:= #024C ESRLPN:= #0024 MQOLPN:= #01EC HXLLPN:= #0228 PWFLPN:= #0060 MXILPN:= #0078 SYSES1:= #F000 SYSSMT:= #0010 SYSTSM:= #8000 SYSES2:= #F200 DBALPN:= #00CC CSTLPN:= #01C8 LTLLPN:= #0054 TCTLPN:= #0264 SYSOCD:= #8440 SYSDME:= #8D40 SYSSUP:= #8D50 TSELPN:= #0114 SYSEND:= #8D40 SYSMCH:= #0E40 OLTLPN:= #0168 GSTLPN:= #01D4 SYSCMI:= #2FC0 SYSCRD:= #8640 TSILPN:= #0108 ONTLPN:= #0180 ECFLPN:= #01B0 TQMLPN:= #0048 TITLPN:= #0240 SYSICP:= #13C0 SYSIDP:= #3600 EDILPN:= #00D8 SXILPN:= #021C MXRLPN:= #0090 SYSTST:= #6EF0 SYSCDT:= #7650 SYTTBF:= #8D40 SYSEDT:= #A300 TSMLPN:= #00F0 TMSLPN:= #00FC SYSESG:= #14A0 SYSLPD:= #8A40 SYSMCP:= #FFE0 SYSLMH:= #07B0 SYSOME:= #7650 EDLLPN:= #00E4 SXLLPN:= #0210 SYSLOG:= #95D0 SYSPME:= #AB00 OCDLPN:= #0150 SUPLPN:= #0204 SYSODP:= #5540 TMXLPN:= #0288 MCHLPN:= #000C SYSHXD:= #9260 CMILPN:= #00A8 CRDLPN:= #0120 PCFLPN:= #0198 USE #0 MESSAGE <:MERGE SYSNOD:> ; 00000744 0 0070 LEVEL 1 NAMES: CSTMAC= #0043 CSTPTS= #005A CSTHMC= #003D CSTOSX= #0003 CSTCSI= #003A CSTCPR= #0036 CSTHMP= #003C CSTELT= #0070 CSTCSO= #003B CSTLAX= #0008 CSTBLX= #0004 CSTMSI= #00FF CSTPAX= #0008 CSTCPX= #0004 CSTBRX= #0004 CSTCAC= #0042 CSTCTS= #0037 CSTSBX= #0002 CSTMSO= #FF00 CSTNSN= #005B CSTTDX= #0003 CSTMOX= #0004 CSTISX= #0003 CSTEXX= #0003 USE BASE CSTSTL:= #000A CSTMCA:= #0021 CSTLAD:= #0008 CSTCS3:= #003B CSTLTS:= #006B CSTTD1:= #006C CSTSNS:= #000B CSTCS4:= #003C CSTTLT:= #000D CSTSVL:= #002B CSTOSS:= #002C CSTSUM:= #0D18 CSTCS5:= #003D CSTIHI:= #000C CSTBLE:= #004A CSTCOB:= #0025 CSTMBE:= #000F CSTCS6:= #003E CSTFBL:= #004A CSTELC:= #0060 CSTTPS:= #0013 CSTDEL:= #000C CSTMP1:= #0035 CSTVF1:= #0035 CSTPAD:= #0000 CSTCS7:= #003F CSTOSV:= #0000 CSTOEB:= #0009 CSTVF2:= #0036 CSTXE1:= #003B CSTFLD:= #0004 CSTIAL:= #000F CSTCBR:= #000E CSTVF3:= #0037 CSTIT2:= #000A CSTPCD:= #000B CSTBRC:= #004C CSTLIB:= #004F CSTFOB:= #0051 CSTPSW:= #000D CSTMCH:= #000E CSTHDL:= #0005 CSTILC:= #0008 CSTVXL:= #0009 CSTVF4:= #0038 CSTSYN:= #0008 CSTMCI:= #0024 CSTTXO:= #0003 CSTCPF:= #0000 CSTNIB:= #0050 CSTHME:= #001E CSTECR:= #0030 CSTIND:= #0033 CSTIEM:= #000E CSTOXV:= #0006 CSTICO:= #0006 CSTCRF:= #000E CSTPCH:= #0040 CSTBQH:= #004D CSTCIP:= #0023 CSTIBQ:= #004E CSTREG:= #0000 CSTBAS:= #0008 CSTIHM:= #000B CSTIPF:= #000A CSTOIH:= #0008 CSTEC:= #0011 CSTO0S:= #0002 CSTTST:= #0002 CSTNS1:= #0048 CSTCCT:= #002E CSTBML:= #000F CSTNS2:= #0049 CSTCDT:= #002F CSTO2S:= #0003 CSTVTS:= #000F CSMSW1:= #005D CSTDUB:= #0063 CSTTSW:= #0014 CSTSTW:= #0016 CSTSED:= #0002 CSTV2M:= #000A CSTTCE:= #0001 CSTALP:= #0001 CSTLOB:= #0052 CSMSW2:= #005E CSTOBL:= #006A CSTLOC:= #006D CSTISA:= #0000 CSTNCM:= #0044 CSTSTX:= #0064 CSTMCO:= #0027 CSTSEF:= #0004 CSTSCH:= #0008 CSTEMM:= #0001 CSTNOB:= #0053 CSTSHC:= #00B8 CSTEXA:= #0003 CSTDEV:= #0012 CSTISC:= #0000 CSTCON:= #0005 CSTNOC:= #0041 CSTDUF:= #0062 CSTOEM:= #000E CSTDIS:= #0001 CSTOCO:= #0007 CSTSEI:= #0039 CSTCOP:= #0026 CSTIES:= #0000 CSTOBQ:= #0051 CSTPPC:= #000B CSTREL:= #0002 CSTITE:= #0009 CSTODP:= #0034 CSTOHL:= #000F CSTISF:= #0007 CSTFIS:= #0054 CSTPPD:= #0000 CSTIUE:= #0001 CSTORC:= #0002 CSTCQP:= #005F CSTEXG:= #0000 CSTIPM:= #000A CSTIVF:= #0007 CSTLIR:= #0010 CSTPRE:= #001B CSTNPI:= #006F CSTRGO:= #0006 CSTLAS:= #006B CSTPRG:= #000A CSTMBS:= #0009 CSTCLS:= #0029 CSTBLT:= #000C CSTOSA:= #000B CSTVAL:= #00B9 CSTLNK:= #000E CSTSAP:= #001C CSTCSN:= #001D CSTCNS:= #0003 CSTF1D:= #0001 CSTOSC:= #0003 CSTTDM:= #0009 CSTMSF:= #0004 CSTSNE:= #0005 CSTNUC:= #0042 CSTGSL:= #006D CSTOSE:= #0001 CSTOES:= #000A CSTNMM:= #0000 CSTPCT:= #0065 CSTF4D:= #0005 CSTXLD:= #000B CSTRCS:= #000A CSTOSF:= #0038 CSTBRT:= #0008 CSTLIS:= #0055 CSTFOS:= #0057 CSTESP:= #005A CSTCRS:= #0061 CSTISM:= #000F CSTODV:= #0005 CSTTPE:= #0000 CSTNOM:= #0045 CSTTIM:= #000C CSTIMT:= #0006 CSTPAY:= #0003 CSTNPM:= #0046 CSTNIS:= #0056 CSTINT:= #000C CSTVHM:= #000D CSTMOP:= #000C CSTIPS:= #001F CSTHMW:= #0000 CSTNRM:= #0047 CSTIXL:= #000C CSTOFX:= #0008 CSTISQ:= #0054 CSTPRM:= #0004 CSTDRY:= #000C CSTTTA:= #0020 CSTSTB:= #0006 CSTBST:= #0066 CSTSTC:= #002C CSTSDS:= #0003 CSTSCT:= #005B CSTCSU:= #0008 CSTSVC:= #005C CSTCQ0:= #0003 CSTSUE:= #000D CSTLOS:= #0058 CSTECC:= #0069 CSTGST:= #0015 CSTCHA:= #0028 CSTDDD:= #0007 CSTOMS:= #000C CSTOSM:= #000D CSTLTO:= #000E CSTEDC:= #0009 CSMSH1:= #00BA CSTFL4:= #0005 CSTVSF:= #0035 CSTVTE:= #000B CSTDFC:= #0007 CSTC6M:= #FF84 CSTNOS:= #0059 CSMSH2:= #00BB CSTCIB:= #0022 CSTPSN:= #002D CSTIST:= #0006 CSTITS:= #000D CSTOLV:= #0007 CSTONT:= #0002 CSMSH3:= #00BC CSTOPS:= #002A CSTV28:= #0008 CSMSH4:= #00BD CSTEIB:= #0004 CSTIDC:= #0002 CSTOSQ:= #0057 CSTIP1:= #0031 CSTF4P:= #0008 CSTNWO:= #000D CSTFIB:= #004E CSTIP2:= #0032 CSTRPS:= #0007 CSTNZM:= #0043 CSTRSQ:= #0001 CSTPPW:= #0038 CSTLAA:= #000F CSTRPV:= #0009 CSTEXZ:= #0006 CSTBS1:= #0067 CSTRXO:= #0004 CSTCS1:= #0039 CSTSKS:= #0006 CSTBS2:= #0068 CSTLAC:= #0000 CSTCS2:= #003A CSTBBL:= #004B CSTSTM= #00C0-128*BASE-128*(PROG-1) CSTLAM= #FF00-128*BASE-128*(PROG-1) CSTBLM= #F000-128*BASE-128*(PROG-1) CSTPAM= #00FF-128*BASE-128*(PROG-1) CSTCPM= #000F-128*BASE-128*(PROG-1) CSTBRM= #0F00-128*BASE-128*(PROG-1) CSTMOM= #F000-128*BASE-128*(PROG-1) CSTTMM= #0E00-128*BASE-128*(PROG-1) USE #0 MESSAGE <:MERGE CSTNOD:> ; 00000086 0 0002 LEVEL 1 NAMES: BINCXO= #0004 BINTCX= #0003 BINSEX= #0003 BINETX= #0002 BINOSQ= #0013 BINWXO= #0002 BINEFX= #0003 BINLGT= #0014 BINCNX= #0006 USE BASE BINTER:= #000D BINURE:= #0007 BINEXO:= #0004 BINSTA:= #0001 BINTCS:= #000B BINEIB:= #0006 BINCAP:= #0024 BINSTP:= #000B BINMSX:= #0002 BINECP:= #0020 BINIFM:= #3800 BINSEC:= #0008 BINETC:= #0006 BINLOC:= #0002 BINLNK:= #0000 BINCNT:= #0000 BINHMS:= #000C BINIO:= #000E BINIOI= #4000-128*BASE-128*(PROG-1) BINCNM= #003F-128*BASE-128*(PROG-1) BINIOM= #C000-128*BASE-128*(PROG-1) BINIOO= #8000-128*BASE-128*(PROG-1) BINTCM= #3800-128*BASE-128*(PROG-1) BINSEM= #0700-128*BASE-128*(PROG-1) BINETM= #00C0-128*BASE-128*(PROG-1) USE #0 MESSAGE <:MERGE BINNOD:> MESSAGE <:MERGE MQXNOD:> ; 00000244 0 0004 LEVEL 1 NAMES: MQIECT= #0080 MQIBIX= #0008 MQITYX= #0008 MQELAX= #0008 MQOECT= #0080 MQILAX= #0008 MQOLAX= #0008 MQEECT= #0032 USE BASE MQOEND:= #0000 MQEDIS:= #0004 MQILOC:= #0004 MQITXS:= #000B MQOSYN:= #0002 MQOHLD:= #0007 MQISCH:= #0008 MQOFLG:= #0000 MQEPER:= #0001 MQERGO:= #0006 MQIPER:= #0001 MQOBDS:= #000E MQIRGO:= #0006 MQOBML:= #000C MQOSP1:= #0003 MQEELT:= #0004 MQOLOC:= #0002 MQIELT:= #0004 MQODIS:= #0004 MQESER:= #000B MQEINT:= #0004 MQEEXP:= #000E MQIHNT:= #0007 MQEMXI:= #0001 MQIINT:= #0004 MQERDY:= #0004 MQESTA:= #0001 MQEBAD:= #0002 MQIMXI:= #0001 MQESTC:= #000F MQIRDY:= #0004 MQISTA:= #0001 MQIBAD:= #0002 MQISTB:= #0003 MQISTC:= #000F MQOELT:= #0004 MQEEDC:= #0003 MQELTO:= #0002 MQECFE:= #0002 MQEONT:= #0005 MQIEDC:= #0003 MQEESZ:= #0004 MQOSER:= #000B MQICFE:= #0002 MQERPS:= #0007 MQIBID:= #0000 MQIESZ:= #0004 MQOMXI:= #0001 MQERPV:= #0009 MQIRPS:= #0007 MQORDY:= #0004 MQOSTA:= #0001 MQOBAD:= #0002 MQELAD:= #0008 MQIRPV:= #0009 MQIRXO:= #0004 MQILAD:= #0008 MQIBNA:= #0000 MQOEDC:= #0003 MQOLTO:= #0002 MQOEBE:= #000F MQEOBE:= #000D MQEEND:= #0000 MQECBR:= #0005 MQOONT:= #0005 MQESYN:= #0002 MQEHLD:= #0007 MQOIBD:= #0001 MQEFLG:= #0000 MQETXO:= #0003 MQOESZ:= #0004 MQIEND:= #0000 MQICBR:= #0005 MQIBEP:= #000E MQETYP:= #0000 MQERXS:= #000A MQISYN:= #0002 MQIHLD:= #0007 MQIFLG:= #0000 MQITXO:= #0003 MQIRXS:= #000A MQITYP:= #0008 MQEBDS:= #000E MQOLAD:= #0008 MQOBNA:= #0000 MQEBML:= #000C MQIBDS:= #000D MQELOC:= #0002 MQETXS:= #000B MQIBML:= #000C MQESCH:= #0008 MQOOBE:= #000D MQOEFM= #FFFE-128*BASE-128*(PROG-1) MQOLAM= #FF00-128*BASE-128*(PROG-1) MQELGT= #00C8+ 50*BASE+ 0*(PROG-1) MQILGT= #0200-128*BASE+ 0*(PROG-1) MQOLGT= #0200-128*BASE+ 0*(PROG-1) MQEEFM= #FFFE-128*BASE-128*(PROG-1) MQIEFM= #FFFE-128*BASE-128*(PROG-1) MQIBIM= #00FF-128*BASE-128*(PROG-1) MQITYM= #FF00-128*BASE-128*(PROG-1) MQELAM= #FF00-128*BASE-128*(PROG-1) MQILAM= #FF00-128*BASE-128*(PROG-1) USE #0 ; AU000079 0 0004 LEVEL 1 NAMES: USE BASE PBORDN:= #0001 PBLEL:= #0007 ICCNT:= #0004 PBFOL:= #0003 PBOPB:= #000B PBPPB:= #0008 EBAS:= #0008 QCLQE:= #0001 PBFRL:= #0002 QCMQE:= #0003 FORDL:= #0003 DQCIBC:= #0003 DQCISU:= #0008 IDAT:= #0005 PBPRI:= #0009 PRCLPN:= #000A PBLOL:= #0006 PBEXPR:= #0002 PBLGT:= #000C IMCNT:= #0003 PBFWL:= #0000 PBLRL:= #0005 PBLPN:= #000A PBNUSD:= #0003 RCQE:= #0002 LORDL:= #0006 PRCSTA:= #0009 DQCOBC:= #0006 OBAS:= #000B RFQE:= #0000 FEXPL:= #0004 ODAT:= #0007 PBIDLE:= #FFFF DQCCQE:= #0002 CQE:= #0002 DQCFQE:= #0000 FQE:= #0000 FWLNK:= #0000 RLQE:= #0001 LEXPL:= #0007 DQCIB:= #0005 PBRVL:= #0001 FROUL:= #0002 DQCLQE:= #0001 PBROUT:= #0000 LQE:= #0001 MQE:= #0003 DQCIBX:= #0004 OCNT:= #0006 DQCOB:= #0007 PBFEL:= #0004 RVLNK:= #0001 LROUL:= #0005 QCCQE:= #0002 PRCBLL:= #000C QCFQE:= #0000 USE #0 MESSAGE <:MERGE GDSNOD:> ; 00000124 0 0000 LEVEL 1 NAMES: CMCATV= #00E0 FS= #001B CMCUD1= #0080 CMCCMC= #0040 CMCUD2= #00A0 CMCDMC= #0000 LS= #001F CMCCME= #00C0 CMCDME= #0020 CMCCPE= #0060 XLT= #00E0 RCH= #00F0 CSA= #0000 WCH= #0070 USE BASE FLASH:= #0001 OCSCPL:= #0001 COSYN1:= #0016 COSYN2:= #0069 SECRET:= #0002 OCSCPP:= #0001 OCS1:= #0001 OCS2:= #0002 OCS3:= #0003 OCS4:= #0004 OCS5:= #0005 PRIORI:= #0004 UNCLAS:= #0005 COLF:= #000A COSTCL:= #008C MAXMSC:= #001A COCR:= #000D TOPSEC:= #0001 COPCXS:= #000C OCS12:= #0012 COBIT7:= #0007 READCR:= #00F0 OCS13:= #0013 OCS14:= #0014 CONFID:= #0003 OCS15:= #0015 COSUB:= #001A UNPROC:= #0003 OCS16:= #0016 IMMEDI:= #0003 OCSCTS:= #0000 ECBCNT:= #004C RESTRI:= #0004 OCSCTX:= #0008 WRITER:= #0070 CONFCL:= #0002 MONIT:= #0002 ROUTIN:= #0005 NCBCNT:= #0003 SPURIO:= #0002 COSPAC:= #8C8C COPTL1:= #0001 COPTL2:= #0020 COPTL3:= #0020 OCS5WC:= #0008 COPTL4:= #0022 COPTL5:= #00FC MAXCHN:= #00AE COMRLC:= #000C COPTL6:= #0100 USE #0 MESSAGE <:MERGE COPNOD:> ; 00000203 0 00A7 LEVEL 1 NAMES: USE BASE DDLE:= #006B RI:= #0050 OLTO:= #006F GNBF:= #0056 INDQCX:= #0077 RTI:= #0054 DECR:= #00A6 BDQCST:= #0088 WA:= #004D GNIB:= #0057 BEQCST:= #0087 LTUTMO:= #00A4 RWI:= #0052 TFRW:= #0071 INCH:= #0074 WPSLP:= #007D ACDT:= #008C WPSTLP:= #007D ICDQCB:= #0074 PNPCDT:= #0095 SOLT:= #0049 GSST:= #0061 DFTA:= #006D DCDT:= #008D LNFIQ:= #0069 XMIBUF:= #009D SRLT:= #0048 GNBN:= #0056 GNOB:= #0058 QDLE:= #006A CKPCST:= #0086 RNBF:= #005C TODQB:= #0076 RSCOC:= #0079 GETCST:= #0084 CHKLTU:= #00A2 WL:= #004C MNNCNT:= #0067 OCDQCB:= #0075 EDITST:= #00A0 WWSTLP:= #0071 RODCST:= #008B PRSCDT:= #0097 PGPCST:= #0089 CGICDT:= #009A GBSM:= #005F GNSA:= #005E INDQCB:= #0073 PRGCST:= #0085 PIPCST:= #008A GPB:= #0042 GNSC:= #0059 RBF:= #0064 LPERR:= #0080 GLET:= #0045 DMLP:= #007F PBUF:= #0068 RFTA:= #006C OTCH:= #0075 WSCOC:= #007A LDRM:= #0083 RNBN:= #005C TFRC:= #0072 WBSTOC:= #007F RL0CDT:= #0090 GNIS:= #005A WSCTOC:= #007A RL1CDT:= #0091 EDOTST:= #00A1 RFI:= #0055 LPER:= #0080 WDSTOC:= #007F CEOCDT:= #009B LNIQ:= #0062 PUTBUF:= #0068 GBS:= #005F LPB:= #0042 EDCTMI:= #009E SCH:= #0043 GBST:= #0060 WBF:= #0066 OEICDT:= #0098 IPPQ:= #0044 OGICDT:= #0098 CPP:= #0041 PRGLTU:= #00A3 RBF1:= #0065 OLTF:= #006F CRP:= #0040 RNSC:= #005D RLET:= #0046 GNOS:= #005B RLI:= #0053 WSCLP:= #007C CLEAR:= #0081 RS0CDT:= #008E INQ:= #0044 LNOQ:= #0063 TFOP:= #0070 WDSLP:= #007E RS1CDT:= #008F RCPU:= #0051 ERR:= #006E WBSTLP:= #007E WPSOC:= #007B WSCTLP:= #007C COPY:= #0082 PSELTU:= #009C WDSTLP:= #007E LDMRAM:= #0083 PAPCDT:= #0094 EDCTMO:= #009F TODQCB:= #0076 EDCQMS:= #0092 OEOCDT:= #0099 INDQB:= #0073 RBSFOC:= #007D SLET:= #0047 SELT:= #004A RSCFOC:= #0079 PEPCDT:= #0096 GNBA:= #005E WBF1:= #0067 RHXP:= #0078 PGPCDT:= #0093 USE #0 MESSAGE <:MERGE MNNNOD:> ; 00000283 0 00E0 LEVEL 1 NAMES: ECOCSZ= #0013 USE BASE ECOTQI:= #0034 ECGAKA:= #0010 ECGSIZ:= #0090 ECIRR:= #0008 ECONIX:= #0024 ECGALA:= #0060 ECOSSB:= #0023 ECOSTA:= #00A0 ECISIZ:= #0010 ECOCCB:= #002F ECOADC:= #0005 ECOEBA:= #00C0 ECCALH:= #000D ECIALB:= #0018 ECOPA1:= #0004 ECORRP:= #0009 ECOPA2:= #0005 ECOXAT:= #0030 ECIADM:= #0010 ECOEAF:= #0000 ECOSAZ:= #0020 ECOASZ:= #0020 ECIELA:= #0080 ECGARB:= #0007 ECCAQH:= #0007 ECOTXD:= #0002 ECINAF:= #0004 ECGFLG:= #0006 ECGCIM:= #000A ECIEND:= #0006 ECOISW:= #0038 ECIFLG:= #0010 ECICQE:= #0008 ECOLRX:= #0000 ECOITX:= #0003 ECIPAI:= #0011 ECOSIZ:= #0020 ECCIQH:= #0004 ECGFQH:= #0000 ECRSIZ:= #00E0 ECCLCN:= #0002 ECCFLK:= #0000 ECOCLB:= #0026 ECGDAT:= #0003 ECOADM:= #001F ECISBC:= #0017 ECISAD:= #0020 ECGACW:= #0000 ECGAKP:= #000F ECICLK:= #0019 ECINAK:= #0002 ECFLOC:= #003A ECISEB:= #0007 ECOXLT:= #0031 ECOLTX:= #0001 ECOTQS:= #0000 ECGCOM:= #000B ECOEBP:= #0006 ECOAFP:= #002A ECOOSW:= #0039 ECONTX:= #0025 ECGRCL:= #0008 ECGECX:= #0002 ECIALR:= #0006 ECISBI:= #0009 ECOFLG:= #0020 ECOTXO:= #000E ECCNQH:= #000A ECIFSI:= #0012 ECCLNK:= #0000 ECOCSC:= #0027 ECINQI:= #0015 ECOALO:= #0002 ECOFSB:= #0022 ECOAKP:= #0003 ECCOFS:= #0000 ECCRLK:= #0001 ECICSL:= #0016 ECOALP:= #0006 ECOTEC:= #0033 ECOTQ0:= #0034 ECONKD:= #0004 ECOTQ1:= #0036 ECOLCP:= #0005 ECGCMX:= #0001 ECOEOM:= #0008 ECGHMT:= #0009 ECIQTB:= #000A ECISCQ:= #000B ECIEOS:= #0005 ECOEMP:= #0001 ECOLFP:= #002B ECIOFS:= #0010 ECOLER:= #002E ECOOEP:= #0007 ECORAQ:= #0008 ECOPCQ:= #000C ECOARQ:= #0005 ECGAK0:= #003F ECGUQH:= #0003 ECGTHR:= #0000 ECGAL0:= #001F ECCCST:= #0003 ECIOPN:= #0001 ECOS1S:= #0028 ECGRDY:= #000F ECIEXP:= #0000 ECOS2S:= #0029 ECIITR:= #000C ECINXI:= #0014 ECOSBM:= #000B ECOLCT:= #002D ECISTA:= #0040 ECOATO:= #000A ECIOK:= #0003 ECIADC:= #0005 ECOPAT:= #0003 ECOPSB:= #0021 ECOESM:= #0006 ECONCT:= #000D ECIAP1:= #0002 ECOLCW:= #0032 ECIAP2:= #0005 ECOSCQ:= #000D ECOFUL:= #0001 ECOEOS:= #0007 ECIAR1:= #0001 ECOOFS:= #0020 ECODTP:= #0002 ECONKP:= #0004 ECIEO1:= #0000 ECIAR2:= #0004 ECORCT:= #002C ECOLIT:= #0007 ECONCX:= #0003 ECIASZ:= #0020 ECIEFA:= #0060 ECIEO2:= #0003 ECISSI:= #0013 ECROFS:= #0000 ECCSIZ:= #0010 ECOQCW:= #0032 USE #0 MESSAGE <:MERGE ECFNOD:> MESSAGE <:MERGE GSTNOD:> ; 00000389 0 04A0 LEVEL 1 NAMES: USE BASE GST1SB:= #024B GSTSE0:= #0028 GSTBBL:= #0001 GSTSE1:= #0029 GSTMCA:= #0043 GSTNAB:= #008F GSTAMC:= #0008 GSTNAC:= #000A GSTCMB:= #0010 GSTSE2:= #002A GSTMST:= #0045 GSTAOB:= #009B GSTSE3:= #002B GSTOCA:= #004D GSTTNS:= #0090 GSTCMC:= #00AB GSTLTU:= #000C GSTNAE:= #000B GSTSE4:= #002C GSTFBL:= #0000 GSTNCC:= #008D GSTLCE:= #0011 GSTEBM:= #001B GSTECL:= #0188 GSTF5:= #024B GSTODB:= #0011 GSTSE5:= #002D GSTEMC:= #0055 GSTECM:= #0000 GSTFCL:= #0057 GSTNBE:= #0002 GSTBEN:= #0010 GSTLED:= #00F3 GSTSE6:= #002E GSTCRA:= #004B GSTECN:= #0050 GSTFCM:= #0058 GSTMSX:= #00AA GSTPAE:= #0002 GSTNEC:= #0015 GSTMDE:= #001A GSTNBF:= #001F GSTCCP:= #0006 GSTMED:= #00FF GSTIMA:= #0010 GSTFLE:= #0017 GSTOCE:= #0103 GSTNAI:= #000C GSTDQC:= #0036 GSTMUX:= #003F GSTEMF:= #0008 GSTCPE:= #0006 GSTUTQ:= #001C GSTCHM:= #0021 GSTNEE:= #0014 GSTPCF:= #0016 GSTCPF:= #0014 GSTOAI:= #0024 GSTRP0:= #0002 GSTMID:= #000C GSTREC:= #000F GSTILE:= #0001 GSTIPA:= #000F GSTRP1:= #0003 GSTCRE:= #0104 GSTDQF:= #0033 GSTIPB:= #0053 GSTCRF:= #0016 GSTRP2:= #0004 GSTRP3:= #0005 GSTIOE:= #000A GSTFPH:= #026C GSTTL1:= #0046 GSTSST:= #00A7 GSTSBC:= #00AE GSTIRE:= #0009 GSTF10:= #0256 GSTTL2:= #0047 GSTASE:= #006C GSTTCC:= #008C GSTTCD:= #0015 GSTCLM:= #003C GSTFD:= #000B GSTLPA:= #004C GSTSED:= #00B2 GSTMMD:= #0044 GSTNMC:= #0054 GSTLOC:= #00F3 GSTNCM:= #0097 GSTAIS:= #009E GSTLME:= #0005 GSTF15:= #0261 GSTMPB:= #0012 GST25F:= #001F GSTCOM:= #0051 GSTNCN:= #0000 GSTMOC:= #0094 GSTTSY:= #00A2 GSTUXS:= #001D GSTSCH:= #0025 GSTNEL:= #0173 GSTMOD:= #000F GSTMPC:= #004F GSTBRL:= #0059 GSTLOE:= #000D GSTMCP:= #0000 GSTNPC:= #000D GSTDQL:= #0034 GSTNMF:= #0008 GSTNNE:= #0019 GSTLPE:= #0105 GSTCDY:= #019D GSTDQM:= #0037 GSTILM:= #003E GSTMRC:= #0041 GSTCMR:= #00AC GSTMOF:= #0026 GSTMQE:= #001B GSTDQN:= #0035 GSTIXA:= #004A GSTUID:= #001F GSTOCR:= #004E GSTPPE:= #0004 GSTHWE:= #00F2 GSTFQO:= #000B GSTMQI:= #0019 GSTPRE:= #00A6 GSTCC0:= #0021 GSTASL:= #0106 GSTCC1:= #0022 GSTCC2:= #0023 GSTBLT:= #0003 GSTNAS:= #0091 GSTMSB:= #00A8 GSTSBM:= #0008 GSTCC3:= #0024 GSTAOS:= #009C GSTOC:= #0008 GSTNSC:= #0007 GST25L:= #001E GSTCC4:= #0025 GSTTMC:= #0039 GSTTNB:= #008E GSTCC5:= #0026 GSTTDM:= #0038 GSTMLM:= #003A GSTCOS:= #0052 GSTUCM:= #000E GSTLTE:= #0018 GSTNSE:= #0008 GSTCC6:= #0027 GSTBQS:= #0003 GSTAXM:= #0095 GSTCR:= #0009 GSTMXB:= #000E GSTI1C:= #0030 GSTOLM:= #003D GSTNMM:= #0097 GSTSBR:= #00AF GSTOSE:= #0013 GSTNSF:= #0020 GSTLGT:= #04A0 GSTFOS:= #0000 GSTMLP:= #0042 GSTTOE:= #0003 GSTSOF:= #0022 GSTPET:= #0048 GSTNOM:= #0098 GSTXCN:= #001E GSTEXL:= #000E GSTFPS:= #026F GSTI2E:= #0032 GSTMRL:= #0041 GSTNPM:= #0099 GSTNON:= #000B GSTFPT:= #04A0 GSTMRM:= #0001 GSTFQT:= #0003 GSTMQO:= #001A GSTNRM:= #009A GSTTRF:= #00A1 GSTXFN:= #0106 GSTHRS:= #00A3 GSTPWF:= #000D GSTTHR:= #0092 GSTPRM:= #0007 GSTMRR:= #00A9 GSTSBS:= #00AD GSTMC0:= #0003 GSTTSB:= #0014 GST52:= #001D GST1CL:= #00AB GSTMC1:= #0004 GSTDBB:= #0013 GSTCST:= #0017 GSTMC2:= #0005 GSTCBD:= #0059 GSTMC3:= #0006 GST55:= #0020 GSTTLM:= #0040 GSTLP:= #000A GSTLOS:= #0001 GSTMP:= #008A GSTNSM:= #0097 GSTNLT:= #0007 GSTNSN:= #0009 GSTAIB:= #009D GSTMSO:= #00A4 GSTLTO:= #00FE GSTNOS:= #0002 GSTSWE:= #00B0 GSTECE:= #0014 GSTECF:= #0018 GSTXLM:= #003B GSTCSZ:= #008B GSTMPT:= #0093 GSTGBE:= #0012 GSTFEC:= #008C GSTIDB:= #000F GSTDIB:= #001C GSTI1N:= #002F GSTMSR:= #00A5 GSTI2N:= #0031 GSTNXM:= #0098 GSTMXP:= #0049 GSTGSZ:= #008A GSTNZM:= #0096 GSTXPN:= #000C GSTIAI:= #0023 USE #0 MESSAGE <:MERGE LETNOD:> ; 00000125 0 0008 LEVEL 1 NAMES: USE BASE MXICMI:= #0001 CMIMXI:= #0001 MXIIDP:= #0002 IDPMXI:= #0001 LTROUT:= #0000 EDCCMI:= #0001 CMIEDC:= #0001 ODPRTC:= #0001 RTCODP:= #0001 EDCIDP:= #0001 IDPEDC:= #0001 MXIODP:= #0002 ODPMXI:= #0002 LTTYP:= #0001 LTMS1:= #0004 EDCODP:= #0001 ODPEDC:= #0001 LTORDN:= #0001 LTMS2:= #0005 LTMS3:= #0006 LTMST0:= #0000 LTMS4:= #0007 LTMST1:= #0001 LTMST2:= #0002 LTMST3:= #0003 MXIRTC:= #0001 RTCMXI:= #0001 CMIIDP:= #0000 IDPCMI:= #0000 EDCRTC:= #0001 RTCEDC:= #0001 MPITSM:= #0002 TSMMPI:= #0002 LTLNK:= #0000 LTSND:= #0003 CMIODP:= #0001 ODPCMI:= #0001 LTEXPR:= #0002 LTLGT:= #0008 CMIMPI:= #0002 MPICMI:= #0002 ODPIDP:= #0002 IDPODP:= #0002 LTRCV:= #0002 EDCTQM:= #0001 TQMEDC:= #0001 CMIRTC:= #0001 RTCCMI:= #0001 USE #0 LIST ;----------------------------------------------------------------------- ;FF\f LOC=EIBASE ;---------------------------------------------------------------------- ; ; SPECIAL CONSTANTS. ; ;---------------------------------------------------------------------- ; ; THE FOLLOWING CONSTANTS ARE ; ; USED AS INPUT PARAMETERS TO THE ; ; VALIDATION ROUTINE (ED4510) ; ;----------------------------------- TSTBID:=0 ; TSTCRC:=1 ; PARAMETERS FOR ED4510 TSTSPN:=2 ; ; ;----------------------------------- ALLBIT:=#0 ; ZERO BIDPE:=7 ; PARITY ERROR BIT NO. IN THE BID ;---------------------------------------------------------------------- ; ; EDC INPUT PROCEDURE RETURN LINK'S. ; ;---------------------------------------------------------------------- RL4000: LOC=LOC+1 RL4100: LOC=LOC+1 RL4200: LOC=LOC+1 RL4300: LOC=LOC+1 RL4540: LOC=LOC+1 RL4550: LOC=LOC+1 RL4560: LOC=LOC+1 RL4570: LOC=LOC+1 RL4580: LOC=LOC+1 RL4600: LOC=LOC+1 RL4610: LOC=LOC+1 RL4620: LOC=LOC+1 RL4700: LOC=LOC+1 RL4750: LOC=LOC+1 RL4800: LOC=LOC+1 RL4900: LOC=LOC+1 RL4910: LOC=LOC+1 RL4920: LOC=LOC+1 RL4930: LOC=LOC+1 RL4940: LOC=LOC+1 RL4950: LOC=LOC+1 RL4960: LOC=LOC+1 RL4970: LOC=LOC+1 ;----------------------------------------------------------------------- ; THE FOLLOWING SHARE SPACE ;----------------------------------- RL5000: RL5100: RL5200: RL5300: RL5400: RL5500: RL5600: RL5700: RLMAIN: LOC=LOC+1 ;----------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; EDC INPUT WORK AREA ; ;---------------------------------------------------------------------- ECISLX: LOC=LOC+1 ; INDEX TO IDP_SCHEDULE_QUEUE ; THIS PARAMETER IS NOT ; INITIALIZED AS THE BACKGROUND ; VALUE (ZERO) IS SUFFICIENT. ;----------------------------------- ISVR0: LOC=LOC+1 ; THESE LOCATIONS ARE USED FOR ISVR1: LOC=LOC+1 ; TEMPORARY REGISTER STORAGE. ISVR2: LOC=LOC+1 ; ISVR3: LOC=LOC+1 ; ISVR4: LOC=LOC+1 ; ISVR5: LOC=LOC+1 ; ISVR6: LOC=LOC+1 ; ISVR7: LOC=LOC+1 ; ;---------------------------------------------------------------------- ;FF\f USE PROG LOC=EIPROG ;---------------------------------------------------------------------- ; ; EDC INPUT SECTION PROGRAM AREA. ; ;---------------------------------------------------------------------- ; ; DISPATCH ACKL ; ; WHEN THE MP RELEASES AN LCB THIS ROUTINE IS CALLED TO CONSTRUCT AN ; ACKL. AN UNEXPECTED REQUEST FOR AN ACKL IS DETECTED AND REPORTED. ; AN UNEXPECTED REQUEST IS SENSED WHEN NO LCB HAS BEEN RECEIVED. ; ; ENTRIES: ED4100 ; ; RETURNS: LINK ; ; CALLS: ED4500, ED1603 ; ; CALLED BY: ED4300 ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 PTR.TO ACKL-ARRAY UNCH ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4100: ; MOV R4 RL4100 ; MOD R6 ; MOVC ECIFLG R7 ; IBZ X7 ECIALR ; IF UNEXPECTED MP ACKL THEN JMP S4 ED4404 ;R REPORT AN ERROR RELS X7 ECIALR ; CLEAR "ACKL REQ'D" FLAG ;----------------------------------- ; SET UP TO GENERATE AN ACKL ;----------------------------------- MOVC BTACKL R0 ; BLOCK TYPE = ACKL MOV ECIALB.X6 R1 ; BID = LCB BID MOD R6 ; QUEUE = ACKL QUEUE MOVC ECCALQH R3 ; IBN X7 ECISCQ ; IF A SETBD WAS RECEIVED THEN JMP ED4102 ; FORGET THE WHOLE THING JMP S4 ED4500 ; CREATE THE ACKL BLOCK JMP ED4102 ; NO BIN AVAILABLE FOR ACKL MOV R5 ISVR5 ; JMPI S4 EI1603 ; SCHEDULE_ACKL_QUEUE MOV ISVR5 R5 ; ED4102: ; JMPI RL4100 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; DISPATCH ACK ; ; WHEN THE MP RELEASES A SEGMENT OR MESSAGE THIS ROUTINE IS CALLED TO ; CONSTRUCT AND SEND AN ACK. ; ; AN UNEXPECTED MP REQUEST FOR AN ACK IS DETECTED WHEN ; A. TWO ACKS ARE CURRENTLY WAITING TO BE SENT. ; B. THERE ARE NO SEGMENTS OR MESSAGES PENDING TO THE MP. ; C. ONE ACK IS WAITING TO BE SENT AND ANOTHER IS NOT REQUIRED. ; ; IF ECIRR IS FOUND TO BE SET THEN THE LAST BLOCK RECEIVED WAS AN RR ; WHICH FOLLOWED A SETBD AND WE ARE IN A RECOVERY MODE. IN THIS CASE ; WE CANCEL REQUESTS FOR ACKS UNTIL NO DATA IS LEFT. ONLY THEN IS THE ; ACK RESPONSE TO THE RR GENERATED. ; IF THE LAST BLOCK RECEIVED WAS A SETBD THEN THE REQUEST FOR ACK IS ; IGNORED. ; ; ENTRIES: ED4200 ; ; RETURNS: LINK ; ; CALLS: ED4500, ED1601 ; ; CALLED BY: ED4300 ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 PTR.TO ACK-ARRAY UNCH ; R6 ECRPTR ECRPTR ; R7 - DEST ;---------------------------------------------------------------------- ED4200: ; MOV R4 RL4200 ; MOD R6 ; MOVC ECIFLG R7 ; IBZ X7 ECIAP2 ; IBZ X7 ECIAR1 ; JMP S4 ED4402 ;R REPORT UNEXPECTED ACK REQUEST IBNP X7 ECIAP1 ; IBZ X7 ECIAR2 ; JMP S4 ED4402 ;R REPORT UNEXPECTED ACK REQUEST IBZP X7 ECISETB ; IF LAST BLOCK WAS NOT SETBD IBZ X7 ECIRR ; OR RR (NO RECOVERY) THEN JMP ED4202 ; GO PROCESS ACK REQUEST IBZ X7 ECIAR2 ; RELEASE THE LAST "ACK REQ'D" RELS X7 ECIAR1 ; RELS X7 ECIAR2 ; IBZ X7 ECISETB ; IF LAST BLOCK WAS SETBD OR IBN X7 ECIAR1 ; RECOV. ON WITH DATA REMAINING JMP ED4206 ; THEN EXIT RELS X7 ECIRR ; END RECOVERY AND JMP ED4204 ; GOTO QUEUE ACK ; ED4202: ; IBN X7 ECIAP1 ; SET PROPER FLAG TO INDICATE SETS X7 ECIAP2 ; ANOTHER ACK IS BEING SENT SETS X7 ECIAP1 ; IBN X7 ECIAP2 ; PREPARE TO ACK OLDEST BID MODC ECISSI-ECIFSI ; MODC ECIFSI-ECIPAI ; ED4204: ; MOV ECIPAI.X6 R1 ; PREPARE FOR ACK BLOCK BUILDING MOVC BTACK R0 ; MOD R6 ; MOVC ECCAQH R3 ; IBN X7 ECISCQ ; IF SETBD REQ'D THEN JMP ED4206 ; SKIP THE ACK MOV XGSTPR R4 ; TO ACCESS MP THROTTLING FLAG ADDC GSTMPT R4 ; SEQ X4 FALSE ; SKIP IF MP THROTTLING IS OFF JMP ED4206 ; NO ACK IF MP THROTTLING IS ON JMP S4 ED4500 ; CREATE THE ACK BLOCK JMP ED4206 ; NO BIN AVAILABLE FOR ACK MOV R5 ISVR5 ; JMPI S4 EI1601 ; SCHEDULE_ACK_QUEUE MOV ISVR5 R5 ; ED4206: ; JMPI RL4200 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; MP ACK REQUEST HANDLING ; ; WHEN THE MP RELEASES AN LCB, EOS OR EOM THEN THIS ROUTINE IS CALLED ; TO SUPERVISE THE SENDING OF A PROPER ACKNOWLEDGMENT. ; ; ENTRIES: ED4300 ; ; RETURNS: LINK ; ; CALLS: ED1200, ED4100, ED4200 ; ; CALLED BY: ED3200, ED3300 ; ; REGISTERS: ENTRY EXIT ; R0 _ DEST ; R1 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 _ DEST ; R6 _ DEST ; R7 _ DEST ;---------------------------------------------------------------------- ED4300: ; MOV R4 RL4300 ; ED4302: ; MOD ECFPTR ; MOVC ECGFLG R7 ; MOD ECFPTR ; MOVC ECGALA R5 ; SET TO ACCESS PENDING ACK TABLE IBNP X5 ECGAKP ; IF AN ACKL IS PENDING RELS X5 ECGAKP ; THEN CLEAR ACK PENDING FLAG JMP ED4304 ; AND GO PROCESS IT ADDC ECGAKA-ECGALA R5 ; SET TO ACCESS PENDING ACK TABLE IBZ X7 ECGTHR ; IF THROTTLING IS ON IBZ X5 ECGAKP ; OR NO ACK IS PENDING JMP ED4308 ; THEN WE'RE DONE - EXIT RELS X5 ECGAKP ; CLEAR PENDING FLAG ED4304: ; PROCESS PENDING ACK OR ACKL MOD ECGECX.X5 ; GET OFFSET TO EDC PORTION AND MOD R5 ; AD ADDRESS OF ARRAY START MOVC ECGDAT R4 ; TO GET ADDR. OF 1ST DATA WORD IBZ X4 ECGRDY ; IF NOT READY WE'RE DONE JMP ED4302 ; SO GO CHECK OTHER ARRAY RELS X4 ECGRDY ; TURN OFF RDY FLAG IN DATA WORD MOV X4 R6 ; GET THE DATA WORD XTR R6 7 ; UNPACK LCN INC ECGECX.X5 ; INCREMENT ARRAY INDEX AND X5 ECGECX.X5 ; THIS IS AN "AND" WITH ECGACW ; WHICH RESETS THE INDEX TO THE ; BEGINNING OF THE ACK/L ARRAY BLK JMPI S4 EI1200 ; GET ECR CORRESPONDING TO LCN JMPI S4 EI1980 ;UE NO ECR - REPORT ERROR MOD ECFPTR ; IEQ R5 ECGAKA ; IF WORKING ON PENDING ACK MODC ED4200-ED4100 ; SEND THE ACK ; ELSE JMP S4 ED4100 ; SEND AN ACKL ED4306: ; JMP ED4304 ; ED4308: ; JMPI RL4300 ; RETURN ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; ERROR REPORT ROUTINE ; ; CALLS: ED1800 ; ; CALLED BY ED4200, ED4100, ED4510 ; ; RETURNS: NONE ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R4 LINK UNCH ;---------------------------------------------------------------------- ED4400: ; SPARE ; ED4402: ; UNEXPECTED ACK MODC EEC019-EEC020 ; ED4404: ; UNEXPECTED ACKL MODC EEC020-EEC030 ; ED4406: ; EB_PARITY ERROR MODC EEC030-EEC001 ; ED4408: ; EB FRAMMING_ERROR MODC EEC001-EEC021 ; ED4410: ; BID_SPAN_ERROR MODC EEC021 ; MOVC 0 R0 ; MOV R7 ISVR7 ; MOVC ISVR7 R7 ; STC 6 ; SAVE REGISTERS JMPI S4 EI1800 ; CALL REPORT_ERROR(ERROR_CODE) JMP ED4490 ; RET1: UNRECV.ERROR GOTO CLEAR MOVC ISVR0 R7 ; UNS 7 ; RESET REGISTERS JMP X4 ; RETURN TO LINK ; ED4490: ; UNRECV_ERROR. MOVC 1 R1 ; MOVC ECISAD R2 ; JMP S4 ED4550 ; CALL CLEAR_UP(ALL_ARRAY'S) NOP ; JMPI RLMAIN ; RETURN TO MAIN_LINE ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; CREATE EDC BLOCK ; ; THIS ROUTINE IS USED TO BUILD BLOCKS REQUIRED FOR PROTOCOL. ; IT BUILDS ACKS AND NAKS FOR OUTPUT AND ABNORMAL TERMINATION BLOCKS ; FOR INPUT. ; ; ENTRIES: ED4500 - CREATE OUTBOUND BLOCK ; ED4502 - CREATE INBOUND BLOCK ; ; RETURNS: LINK+0 NO BINS ; LINK+1 COMPLETE ; ; CALLED BY: ED4910, ED4920, ED4930, ED4950, ED5300, ED5400 ; ; CALLS: MONITOR CALLS ONLY ; ; REGISTERS: ENTRY EXIT ; R0 (E1) TYPE UNCH ; R1 (E1) BID1 UNCH ; R2 (E1) BID2 UNCH ; R3 QCB-REL UNCH ; R4 LINK UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4500: ; ENTRY1: CREATE OUTBOUND EDC BLOCK MOVC ISVR7 R7 ; SAVE REGISTERS. STC 6 ; MOV R7 ISVR7 ; MOVC 1 R3 ; MON GNOB ; GET AN OUTPUT BIN JMP ED4506 ; NO BINS MOV ISVR0 R0 ; R0:=TYPE MOV ISVR1 R1 ; R1:=BID1 MOV ISVR2 R2 ; R2:=BID2 XTR R1 7 ; XTR R2 7 ; SLL R1 8 ; IOR R0 R1 ; R1 = BID1 IN UPPER, TYPE IN LWR SUB XBASE R5 ; MOD CSTPTR ; READ OUTBOUND SECURITY CODE MOV CSTCS2 R7 ; SRL R7 CSTOSC ; XTR R7 3 ; SLL R7 BINSEC ; POS. TO BINSEC FIELD SVS R4 ; LDS R3 ; BEGIN BLOCK MAKEUP IEQP R0 BTNAK2 ; IF TYPE = NAK2 - 2 BIDS NEEDED MOV R2 BINWXO+2.X5 ; SET CHAR. COUNT = 5 MODC 1 ; ELSE ADDC 4 R7 ; SET CHAR. COUNT = 4 IOR R7 BINSTA.X5 ; IEQ R0 BTNAK2 ; IF TYPE = NAK2 THEN MODC 1 ; C1:=5 MOVC 4 R2 ; ELSE MOV R2 BINWXO.X5 ; C1:=4 MOV R1 BINWXO+1.X5 ; STORE BID1 AND TYPE LDS R4 ; ADD XBASE R5 ; JMP ED4504 ; GO QUEUE EDC BLOCK ;----------------------------------------------------------------------- ED4502: ; ENTRY2: CREATE INBOUND EDC BLOCK MOVC ISVR7 R7 ; SAVE REGISTERS. STC 6 ; MOV R7 ISVR7 ; MOVC 1 R3 ; MON GNIB ; GET INBOUND BIN JMP ED4506 ; NO BINS SVS R2 ; MOD CSTPTR ; MOV CSTCS2 R7 ; READ INBOUND SECURITY CODE MODC CSTISC ; SRL R7 0 ; XTR R7 3 ; SLL R7 BINSEC ; POS. TO BINSEC FIELD SUB XBASE R5 ; LDS R3 ; ADDC 1<BINEIB+1<BINURE R7 ; TYPE:=ABNORMAL TERMINATION. IOR R7 BINSTA.X5 ; LDS R2 ; ADD XBASE R5 ; ;----------------------------------------------------------------------- ED4504: ; QUEUE INBOUND/OUTBOUND EB MOV ISVR3 R4 ; ADD XBASE R4 ; R4:= ABS PTR TO REQ'D QCB MOVC 1 R3 ; MON LNIQ ; MOV ISVR7 R7 ; RESET REGISTERS. UNS 6 ; JMP 1. X4 ; RETURN TO LINK ;----------------------------------------------------------------------- ED4506: ; NO BINS FOR THE BLOCK MOV CSTPTR R4 ; SET "NO BUFFER" FLAG IN CSTVF1 MOVC 1<CSTLAC R5 ; IOR R5 CSTVF1.X4 ; MOV ISVR7 R7 ; SET UP TO EXIT UNS 6 ; JMP X4 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; VALIDATE BID, CRC OR SPAN ; ; THIS ROUTINE TESTS BID PARITY, CRC VALIDITY OR SPAN, DEPENDING ; ON FLAGS IN R0. ; ;ENTRY: ED4510 ; ; RETURNS: LINK - ERROR RETURN ; LINK+1 - TESTED ITEM OK ; ; CALLED BY: ED4800, ED5100, ED5200, ED5300, ED5400, ED5500 ; ; CALLS: ED4406, ED4408, ED4410 ; ; REGISTERS: ENTRY EXIT ; R0 TEST-REQUEST DEST ; R4 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4510: ; MOV R4 R7 ; IBZ R0 TSTBID ; IF BID PARITY NOT REQUESTED JMP ED4512 ; GO CHECK FOR CRC REQUEST MOV CIBID R4 ; GET CURRENT BID FROM BIN IBNP R4 BIDPE ; IF BID PARITY ERROR THEN JMP S4 ED4406 ;R REPORT PARITY ERROR AND JMP X7 ; ERROR RETURN ED4512: ; IBZ R0 TSTCRC ; IF CRC NOT TO BE TESTED THEN JMP ED4514 ; GO CHECK FOR SPAN REQUEST MOV CIEST R4 ; IBNP R4 MQICFE ; IF A CRC ERROR EXISTS JMP S4 ED4408 ;R REPORT THE ERROR JMP X7 ; AND ERROR RETURN ED4514: ; IBZ R0 TSTSPAN ; IF SPAN NOT TO BE TESTED THEN JMP ED4516 ; GO TO OK RETURN MOV CIBID R4 ; GET CURRENT BID MOV ECIPAI.X6 R0 ; GET PREVIOUSLY ACK'D BID SUB R0 R4 ; ADDC -1 R4 ; THIS SUBTRACTION IS USED TO XTR R4 7 ; HANDLE BID WRAPAROUND ADDC -1 R4 ; MODC ECICSL ; IGEP R4 X6 ; IF DIFFERENCE IN BIDS TOO BIG JMP S4 ED4410 ;R REPORT AN ERROR JMP X7 ; ERROR RETURN ED4516: ; JMP 1. X7 ; TEST SUCCESSFUL ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; FIND STATUS ADDRESS ; ; THIS SUBROUTINE FINDS THE RELATIVE ADDRESS, IN THE STATUS ARRAY, ; FOR A GIVEN BID (IN R7). ; ; ENTRIES: ED4520 ; ; RETURNS: LINK ; ; CALLED BY: ED5400, ED4910, ED4610, ED4550, ED4540, ED4560 ; ; CALLS: NONE ; ; REGISTERS: ENTRY EXIT ; R4 LINK LINK ; R7 IDENT. ISTA(I).PTR. ;---------------------------------------------------------------------- ED4520: ; XTR R7 ECIADC ; GET BID MODULO 32 MOD R7 ; MOD ECRPTR ; MOVC ECISTA R7 ; JMP X4 ; RETURN TO LINK ;---------------------------------------------------------------------- ;---------------------------------------------------------------------- ; ; THIS ROUTINE IS GIVEN TWO BIDS. IT DETERMINES IF THE OLDER (R1) IS ; LESS THAN OR EQUAL TO THE NEWER (R2). IN ADDITION THE DIFFERENCE ; MUST BE LESS THAN THE LIMIT IMPOSED BY THE STATUS TABLE SIZE. ; ON EXIT THE DIFFERENCE IS INCREMENTED TO BE USED AS AN INDEX BY ; THE CALLER. ; ; CALLED BY: ED4560, ED4550 ; ; CALLS: NONE ; ; ENTRIES: ED4530 ; ; RETURNS: LINK ERROR ; LINK+1 OK ; ; REGISTERS: ENTRY EXIT ; R1 IDENT1 UNCH ; R2 IDENT2 COUNT ; R4 LINK UNCH ;---------------------------------------------------------------------- ED4530: ; SUB R1 R2 ; XTR R2 7 ; IGE R2 ECISAD ; IF (R1 NOT PREVIOUS TO R2) THEN JMP X4 ; TAKE ERROR RETURN ADDC 1 R2 ; R2 =IDENT2+1-IDENT1 JMP 1. X4 ; RETURN TO LINK+1 ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; SET ECIOPN FOR THOSE BIDS WHICH ARE ACCEPTABLE ; ; THIS SUBROUTINE SETS THE STATUS ARRAY ENTRIES FOR ALLOWABLE BIDS ; TO "OPEN". IT ALSO SETS THE "EXPECTED" FLAG IN THE ARRAY ENTRY ; FOR THE NEXT EXPECTED BID. THE NAKF FLAG IS CLEARED FOR THE NEXT ; BLOCK TO BE QUEUED TO IDP. ; ; CALLED BY: ED4930, ED4950, ED4750, ED4700 ; ; CALLS: ED4520 ; ; ENTRIES: ED4540 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DES ; R2 - DES ; R4 LINK DES ; R6 PTR TO ECR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4540: ; MOV R4 RL4540 ; MOD ECFPTR ; MOV ECGARMB R0 ; GET ALLOWED RANGE OF MISSNG BIDS MOV ECINXI.X6 R1 ; GET NEXT EXPECTED BID ADDC -1 R1 ; ADDC 1 R0 ; ARMB+1 MOVC 1<ECIOPN R2 ; ED4542: ; MOV R1 R7 ; ADD R0 R7 ; JMP S4 ED4520 ; GET STATUS ARRAY ENTRY LOC. IOR R2 0. X7 ; SET ARRAY ENTRY "OPEN" SOB R0 ED4542 ; SETS X7 ECIEXP ; SET NEXT EXPECTED BID "EXPECTED" MOV ECINQI.X6 R7 ; GET NEXT BID FOR IDP JMP S4 ED4520 ; GET ITS STATUS ARRAY LOC. RELS X7 ECINAKF ; RELEASE ITS NAKF FLAG JMPI RL4540 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; CLEAR UP ; ; CLEARS OUT THE STATUS ARRAY FOR ALL BIDS BETWEEN AND INCLUDING THE ; TWO GIVEN IN R1 AND R2. ; ; CALLED BY: ED4750, ED4800 ; ; CALLS: ED4520, ED4530 ; ; ; ENTRIES: ED4550 ; ; RETURNS: LINK NOT_DONE. ; LINK+1 DONE. ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 IDENT1 DEST ; R2 IDENT2 DEST ; R4 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4550: ; MOV R4 RL4550 ; JMP S4 ED4530 ; IF BID1 NOT PREVIOUS TO BID2 JMPI RL4550 ; THEN LOOP BELOW WON'T WORK ED4552: ; MOV R1 R7 ; JMP S4 ED4520 ; GET STATUS ARRAY LOC. FOR BID IBZ X7 ECIEND ; IBZ X7 ECIOK ; JMP ED4554 ; JUMP IF BLOCK IN ARRAY SVP ED4554 ; DEVICE TO SAVE REGISTERS ONLY MOV ECIEFA-ECISTA.X7 R5 ; RELEASE BLOCK STORED IN ARRAY MOVC 100 R3 ; MON RNBN ; RELEASE ALL BINS IN THE BLOCK MOV XBASE R0 ; LDN R0 ; RESTORE REGISTERS ED4554: ; CLR ECISTA-ECISTA. X7 ; CLEAR ALL ELEMENTS IN THE CLR ECIEFA-ECISTA. X7 ; STATUS ARRAY CLR ECIELA-ECISTA. X7 ; ADDC 1 R1 ; SET UP FOR NEXT BID SOB R2 ED4552 ; FALL THRU AND EXIT IF DONE MOV RL4550 R4 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; CLEAR STATUS ; ; THIS SUBROUTINE CLEARS AN AREA OF THE STATUS, IN THE STATUS ARRAY, ; DETERMINED BY A BIT MASK. IT DOES THIS FOR EACH BID BETWEEN AND ; INCLUDING THE LAST ACK'D SEGMENT AND THE NEXT TO BE ACK'D. ; ; CALLED BY: ED4700 ; ; CALLS: ED4520, ED4520 ; ; ENTRIES: ED4560 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 BITMASK UNCH ; R1 IDENT1 DEST ; R2 IDENTZ DEST ; R4 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4560: ; MOV R4 RL4560 ; JMP S4 ED4530 ; IS LAST ACK'D BID < NEXT ONE JMPI S4 EI1900 ;UE NO - REPORT ERROR ED4562: ; MOV R1 R7 ; JMP S4 ED4520 ; GET ADDRESS OF STATUS ENTRY AND R0 X7 ; UPDATE STATUS ADDC 1 R1 ; SOB R2 ED4562 ; JMPI RL4560 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; SET EDC BLOCK STATUS ; ; UPDATES STATUS WORD IN A BIN BY OR'ING THE CONTENTS OF R0 INTO ; THE STATUS WORD. ; ; CALLED BY: ED4600, ED5500, ED5700 ; ; CALLS: NONE ; ; ENTRIES: ED4570 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 MASK UNCH ; R3 - DEST ; R4 LINK DEST ; R5 BUFF UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4570: ; MOV R4 RL4570 ; MON GBSM ; GET BIN PAGE SUB XBASE R5 ; SVS R4 ; LDS R3 ; IOR R0 BINSTA.X5 ; UPDATE BINSTA LDS R4 ; ADD XBASE R5 ; RESET BUFF_REF JMPI RL4570 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ACTIVATE IDP ; ; THIS ROUTINE IS CALLED WHEN A COMPLETE EDC BLOCK IS TO BE SENT TO IDP. ; IT SENDS A LETTER TO IDP TO NOTIFY THAT SUBMODULE THAT THERE IS WORK ; TO DO ON THE CHANNEL. ; ; CALLED BY: ED4610, ED5300, ED5500, ED5700 ; ; CALLS: ED1920 ; ; ENTRIES: ED4580 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - ECRPTR ; R7 - DEST ;---------------------------------------------------------------------- ED4580: ; MOV R4 RL4580 ; SAVE LINK LDM 2#111 ; DISABLE INTERRUPTS MOV CSTPTR R5 ; MOV GSTPTR R6 ; ION CSTDEV.X5 ; IF CHAN. IN SCHED. LIST THEN JMP ED4584 ; GO NOTIFY IDP - OTHERWISE MOV R5 CSTDEV.X5 ; INDICATE CHAN. INCLUDED MOVC ECISLX R4 ; GET REL SCHED_LIST_INDEX ; **** ECISLX IS LOCAL TO EDI**** MOD X4 ; MOV GSTECL.X6 R0 ; IEQ R0 -1 ; IF LAST ENTRY THEN CLR 0. X4 ; RESET ECISLX TO START MOV CSTBAS.X5 R0 ; MOD X4 ; MOV R0 GSTECL.X6 ; PUT PROCESS BASE OF CST IN ; A GSTECL ENTRY. THIS ALLOWS IDP ; TO FIND BASES OF CST'S TO ; PROCESS. INC 0. X4 ; INCREMENT GSTECL INDEX ED4584: ; ION GSTIPB.X6 ; IF IDP NOT IDLE THEN JMP ED4586 ; SKIP SENDING LETTER MOV R6 GSTIPB.X6 ; SET IDP BUSY MOV ECIITL R5 ; GET EDC-IDP LETTER ADDRESS ; ****ECIITL IS LOCAL TO EDC**** MOV R5 R7 ; SUB XBASE R7 ; GET POINTER TO IDP LETTER MOVC EDCIDP R0 ; GET TYPE (DEFINED IN LET) MOV R0 LTTYP. X7 ; MOVC IDPLPN R0 ; MOV R0 LTRCV. X7 ; SET RECEIVER MOVC EDILPN R0 ; MOV R0 LTSND. X7 ; SET SENDER MON SLET ; SEND LETTER TO IDP JMPI S4 EI1920 ;E LETTER HANDLING ERROR ED4586: ; MOV ECRPTR R6 ; JMPI RL4580 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; INSERT EDC BLOCK IN CYCLIC ARRAY ; ; THIS SUBROUTINE REMOVES A COMPLETED EDC BLOCK FROM THE INPUT ; COLLECTION QUEUE (ECCIQH). IT THEN MOVES THE BLOCK TO THE CYCLIC ; STATUS ARRAY (ECIEFA, ECIELA, ECISTA). THE INDEX TO EACH OF THE ; THREE TABLES IS THE SAME AND IS THE BID MODULO 32. THE NUMBER ; OF BINS IN THE BLOCK IS OR'D INTO ECISTA. THE END OF BLOCK FLAG ; IS SET IN THE LAST BIN VIA ED4570. ; ; CALLED BY: ED5100, ED5200 ; ; CALLS: ED4570 ; ; ENTRIES: ED4600 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 ECRPTR UNCHA ; R7 - DEST ;---------------------------------------------------------------------- ED4600: ; MOV R4 RL4600 ; MOD ECRPTA ; MOVC ECCIQH R4 ; GET BLOCK FROM INPUT QUEUE MOVC 100 R3 ; MON LNOQ ; R3 = NUMBER OF ELEMENTS NOP ; R5 = 1ST QUEUE ENTRY ADDRESS MOV R6 R4 ; R6 = LST QUEUE ENTRY ADDRESS MOV ECRPTR R6 ; MOV CIBID R7 ; CALCULATE STATUS ARRAY INDEX XTR R7 ECIADC ; ADD R6 R7 ; SAVE ELEMENTS IN PROPER TABLES MOV R5 ECIEFA.X7 ; ECIEFA = 1ST QUEUE ENTRY ADDR MOV R4 ECIELA.X7 ; ECIELA = LST QUEUE ENTRY ADDR SLL R3 ECICQE ; ECISTA = NO. OF BINS MODC ECISTA ; IOR R3 X7 ; MOV R4 R5 ; MOVC 1<BINEIB R0 ; SET EOB_INDICATOR IN LAST BIN JMP S4 ED4570 ; JMPI RL4600 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; DISPATCH DATA TO IDP ; ; THIS ROUTINE REMOVES EDC BLOCKS FROM THE CYCLIC STATUS ARRAY ; (ECISTA ETC.) AND QUEUES THEM FOR PROCESSING BY IDP. IT ALSO ; ACTIVATES IDP VIA ED4580. ; ; CALLED BY: ED5100, ED5200 ; ; CALLS: ED4520, ED4580 ; ; ENTRIES: ED4610 ; ; RETURN: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4610: ; MOV R4 RL4610 ; ED4612: ; MOV ECINQI.X6 R7 ; GET NEXT BID TO QUEUE JMP S4 ED4520 ; GET ITS STATUS ARRAY ADDRESS MOD R6 ; MOVC ECIFLG R5 ; IBN X7 ECIOK ; IF BLOCK IS NOT OK OR IBN X7 ECIEND ; IF END PROCESSING IS DONE JMP ED4616 ; THEN EXIT ; AT THIS POINT THE BLOCK IS OK ; BUT END PROCESSING IS NOT DONE INC ECINQI.X6 ; UPDATE NEXT BID TO QUEUE IBN X5 ECIAR2 ; IF WE HAVE 2 SEGMENTS AT THE MP JMPI S4 EI1900 ;UE THIS WOULD BE 3 - ERROR RELS X5 ECISBI ; CLEAR EOS/EOM LST QUEUED FLAG IBZ X7 ECIEOS ; IF NOT AN EOS JMP ED4614 ; THEN SKIP EOS PROCESSING SETS X5 ECISBI ; SET EOS/EOM LAST QUEUED IBN X5 ECIAR1 ; SET PROPER MP ACK REQ'D FLAG SETS X5 ECIAR2 ; SETS X5 ECIAR1 ; ED4614: ; RELS X5 ECIQTB ; CLEAR "TERM. BLOCK QUEUED" FLAG SETS X5 ECIITR ; SET "SCHEDUL IDP" FLAG SETS X7 ECIEND ; SET "END PROCESSING DONE" FLAG ADDC -ECISTA R7 ; FETCH THE BLOCK FROM THE MOV ECISTA.X7 R3 ; CYCLIC ARRAYS SRL R3 ECICQE ; GET BIN COUNT MOV ECIEFA.X7 R5 ; GET ADDR. OF 1ST BIN MOV ECIELA.X7 R6 ; GET ADDR. OF LST BIN MOD CSTPTA ; MOVC CSTFIB R4 ; PUT THE BLOCK IN INPUT BIN QUEUE MON LNIQ ; MOV ECRPTR R6 ; RESET R6 JMP ED4612 ; ED4616: ; IBNP X5 ECIITR ; IF "SCHEDULE IDP" FLAG IS ON RELS X5 ECIITR ; THEN CLEAR IT AND JMPI S4 EI4580 ; SCHEDULE IDP MOV ECRPTR R6 ; RESET R6 JMPI RL4610 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; DISCARD AN EDC BLOCK ; ; THE CURRENT EDC BLOCK IS DISCARDED, I.E. REMOVED FROM THE INPUT ; BIN QUEUE AND RELEASED TO THE FREE BIN POOL. ; ; CALLED BY: ED5100, ED5200, ED5300, ED5400, ED5500, ED4970 ; ; CALLS: NONE ; ; ENTRY: ED4620 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0-R5 - DEST. ; R6 ECRPTR UNCHA. ; R7 - DEST ;----------------------------------------------------------------------- ED4620: ; MOV R4 RL4620 ; MOVC 1000 R3 ; MOD ECRPTA ; LINK ALL BINS OUT MOVC ECCIQH R4 ; MON LNOQ ; AND RELEASE BINS. NOP ; MON RNBN ; MOV ECRPTR R6 ; REESTABLISH R6 JMPI RL4620 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; SET SPAN OF ACCEPTABLE BIDS ; ; THIS SUBROUTINE COMPUTES THE EXPECTED RANGE OF BIDS WHICH ARE ; ACCEPTABLE SINCE THE LAST SEGMENT WAS ACK'D. THE PARAMETER ; CALCULATED (ECICSL) IS USED IN THE SPAN CHECKING SUBROUTINE (ED4510). ; IF THERE ARE NO SEGMENTS CURRENTLY WAITING THEN THE SPAN IS SET FOR ; TWO SEGMENTS OR 2*(MAX SEGMENT LENGTH IN BLOCKS) - 1. ; IF THERE IS 1 EOS WAITING THE SPAN IS SET TO THE NUMBER OF BLOCKS ; IN THE SEGMENT PLUS THE MAXIMUM SEGMENT LENGTH. ; IF THERE ARE 2 SEGMENTS WAITING THE SPAN IS SET TO INCLUDE ONLY ; THE 2 SEGMENTS. ; ; CALLED BY: ED4800, ED4700, ED5300 ; ; CALLS: NONE ; ; ENTRIES: ED4630 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R4 LINK DEST ; R6 ECRPTR UNCH ;---------------------------------------------------------------------- ED4630: ; MOD R6 ; MOVC ECIFLG R5 ; GET INPUT FLAG WORD ADDRESS IBN X5 ECIEOS1 ; IF 1 EOS HAS BEEN REC'D THEN JMP ED4632 ; GO CHECK FOR 2 MOV ECISBC.X6 R1 ; GET MAX # BLOCKS PER SEGMENT SLL R1 1 ; SETS SPAN TO 2*(MAX BLK CT)-1 ADDC -1 R1 ; JMP ED4634 ; ED4632: ; IBN X5 ECIEOS2 ; IF 2 SEGMENTS ARE IN THEN MODC ECISSI-ECIFSI ; GET 2ND BID MOV ECIFSI.X6 R1 ; MOV ECIPAI.X6 R0 ; GET LAST ACK'D BID SUB R0 R1 ; COMPUTE (# BLKS IN LST SEG) -1 ADDC -1 R1 ; TAKING INTO ACCOUNT BID XTR R1 ECIADC ; WRAPAROUND IBN X5 ECIEOS2 ; IF WE'RE ON 2 SEGMENTS THEN JMP ED4634 ; GO SET SPAN MOV ECISBC.X6 R0 ; GET MAX # BLKS PER SEGMENT ILT R1 R0 ; IF LAST SEGMENT HAD FEWER ; BLOCKS THAN ALLOWED THEN ADD R0 R1 ; ADD ACTUAL BLK COUNT ED4634: ; MOV R1 ECICSL.X6 ; SET THE SPAN JMP X4 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; ACK BOOK-KEEPING ; ; THIS SUBROUTINE CLEARS UP STATUS, INTHE STATUS ARRAY, FOR ALL ; BLOCKS THAT HAVE BEEN ACK'D. IT THEN UPDATES FLAGS AND POINTERS ; FOR BLOCKS STILL WAITING TO BE ACK'D. ; ; CALLED BY: ED5100, ED5200, ED5400 ; ; CALLS: ED4560, ED4630, ED4540 ; ; ENTRIES: ED4700 ; ; RETURNS: LINK ; ; REGISTERES: ENTRY EXIT ; R0 - DEST ; R1 - DES ; R2 - DES ; R4 LINK DEST ; R5 IFLG-PTR UNCH ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4700: ; MOV R4 RL4700 ; ED4702: ; MOVC ALLBIT R0 ; ALLBIT = 0 MOV ECIPAI.X6 R1 ; GET LAST ACK'D BID ADDC 1 R1 ; MOV ECIFSI.X6 R2 ; GET BID OF 1ST SEG WAITING ACK IBZ X5 ECISETB ; IF LAST BLOCK WAS A SETBD JMP S4 ED4560 ; THEN CLEAR STATUS ARRAY MOV X5 R0 ; GET INPUT FLAG WORD MOVC 1<(ECIAP2+1)-1 R1 ; CHANGE 2ND SEGMENT AND R1 R0 ; FLAGS TO 1'ST SEGMENT SRL R0 (ECIAP2+1)/2; FLAGS IN ECIFLG,AND MOD R1 ; CLEAR 2ND SEGMENT PUT R0 X5 ; FLAGS. MOV ECIFSI.X6 R0 ; MAKE NEXT SEG TO BE ACK'D ; LAST SEGMENT ACK'D MOV ECISSI.X6 R1 ; MAKE 2ND SEG TO BE ACK'D ; NEXT TO BE ACK'D MOV R0 ECIPAI.X6 ; MOV R1 ECIFSI.X6 ; ; ECISSI IS NOT CLEARED BECAUSE ; IT IS NOT NECESSARY DUE TO ; FLAG SETTINGS ABOVE JMP S4 ED4630 ; SET SPAN OF ACCEPTABLE BIDS JMP S4 ED4540 ; SET STATUS ARRAY ELEMENTS ; OPEN FOR EXPECTED BIDS IBN X5 ECIAP1 ; IF THERE IS STILL AN ACK PENDING JMP ED4702 ; REPEAT THE PROCESS JMPI RL4700 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; RE-SYNCHRONIZE AFTER SETBD ; ; THIS SUBROUTINE INITIALIZES BID POINTERS AS A RESULT OF A SETBD ; BLOCK RECEPTION. IT ALSO CLEARS OUT THE STATUS ARRAY AS REQUIRED. ; ; CALLED BY: ED5300 ; ; CALLS: ED4540, ED4550 ; ; ENTRIES: ED4750 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 BID DEST ; R1 - DEST ; R2 - DEST ; R4 LINK DEST ; R6 ECRPTR ECRPTR ; R7 - DEST ;---------------------------------------------------------------------- ED4750: ; MOV R4 RL4750 ; MOV R0 ECIPAI.X6 ; PREVIOUSLY ACK'D BID MOV R0 ECIFSI.X6 ; 1ST BID WAITING MP ACK MOV R0 ECISSI.X6 ; 2ND BID WAITING MP ACK ADDC 1 R0 ; MOV R0 ECINXI.X6 ; NEXT BID EXPECTED MOV R0 ECINQI.X6 ; NEXT BID TO QUEUE TO IDP MOV ECINXI.X6 R1 ; MOV ECIPAI.X6 R2 ; ADDC ECISAD R2 ; JMP S4 ED4550 ; CLEAR OUT THE STATUS ARRAY JMPI S4 EI1900 ;UE REPORT STATUS ARRAY CLEAR ERROR JMP S4 ED4540 ; SET STATUS ARRAY ELEMENTS OPEN ; FOR EXPECTED BIDS JMPI RL4750 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PROCESS RECEIPT OF A NEW END OF SEGMENT ; ; THE ROUTINE DOES THE FOLLOWING: ; ; SETS THE EOS BIT (ECIEOS) IN THE STATYS ARRAY FOR THE BLOCK. ; SETS ECIEOS1 OR ECIEOS2 TO INDICATE 1 OR 2 EOS'S RECEIVED. ; IF 2 EOS'S, THEY ARE SET IN PROPER ORDER, I.E. LOWER BID ; IN EOSFSI AND HIGHER BID IN EOSSSI. ; RESETS THE SPAN OF ACCEPTABLE BIDS DUE TO RECEIPT OF AN EOS. ; TESTS TO SEE IF THE 2ND SEGMENT LIMIT HAS BEEN VIOLATED AS A ; RESULT OF THE NEWLY CALCULATED SPAN. ; ; CALLED BY: ED5200 ; ; CALLS: ED4630, ED4550, ED4510, ED4520 ; ; ENTRIES: ED4800 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4800: ; MOV R4 RL4800 ; MOD R6 ; MOVC ECIFLG R5 ; MOV CIBID R0 ; MOV R0 R7 ; JMP S4 ED4520 ; GET STATUS ARRAY LOC FOR THS BID SETS X7 ECIEOS ; SET EOS BIT IN STATUS ARRAY IBZ X5 ECIEOS1 ; IF NO EOS'S THEN JMP ED4802 ; MAKE ENTRIES FOR ONE SETS X5 ECIEOS2 ; SET 2 EOS'S PRESENT MOV R0 R1 ; IF SEGMENTS RECEIVED MOV ECIFSI.X6 R2 ; IN CORRECT ORDER SUB R2 R1 ; I.E. XTR R1 EOCBDX ; FIRST SEGMENT SHS R1 ECISAD+1 ; PREVIOUS TO 2ND, THEN MOV R0 ECISSI.X6 ; PUT BID IN 2ND POSITION SHS R1 ECISAD+1 ; JMP ED4804 ; ELSE MOV ECIFSI.X6 R1 ; SWITCH THE TWO BIDS MOV R1 ECISSI.X6 ; MOV R0 ECIFSI.X6 ; JMP ED4804 ; ED4802: ; MOV R0 ECIFSI.X6 ; SET BID AS 1ST ONE SETS X5 ECIEOS1 ; SET ONE EOS PRESENT ED4804: ; JMP S4 ED4630 ; RESET SPAN OF ACCEPTABLE BIDS MOV ECINXI.X6 R0 ; TEST THAT 2ND SEGMENT LIMIT ADDC -1 R0 ; HAS NOT BEEN VIOLATED. I.E. ; MAKE SURE THAT THE LAST BLOCK ; RECEIVED IS WITHIN THE NEW SPAN. ; THE CHECK FAILS IF WE GOT A 2ND ; SEGMENT SMALLER THAN MAX SIZE ; AND A PREVIOUS BID WAS OK TILL ; THE NEW LIMIT WAS CALCULATED. MOV CIBID R1 ; MOV R0 CIBID ; MOVC 1<TSTSPAN R0 ; SET UP TO TEST SPAN JMP S4 ED4510 ; TEST SPAN ON LAST BID JMP ED4805 ; SPAN ERROR DETECTED MOV R1 CIBID ; JMP ED4806 ; GOTO RETURN ED4805: ; MOV R1 CIBID ; MOV ECIPAI.X6 R1 ; CLEAR OUT ALL STATUS ARRAY ADD ECICSL.X6 R1 ; SLOTS WHICH ARE NOT WITHIN THE ADDC 2 R1 ; CURRENT TWO SEGMENT LIMIT MOV R1 ECINXI.X6 ; MOV ECIPAI.X6 R2 ; ADDC ECISAD R2 ; JMP S4 ED4550 ; DO THE CLEARING JMPI S4 EI4410 ;R REPORT 2ND SEG VIOLATION ERROR ED4806: ; JMPI RL4800 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; GOT AN INVALID BLOCK ; ; THE PROCEDURE IS ENTERRED ON RECEIPT OF AN ; ABNORMAL EDC BLOCK AND RESULTS IN TRANSMISSION OF A ; NAKF(I) IF REQUIRED. ; ABNORMAL BLOCKS INCLUDE THE FOLLOWING: ; 1. NOT WITHIN RANGE OF 2 SEGMENT BOUNDARY. ; 2. NOT WITHIN ALLOWED RANGE OF MISSING BID'S. ; 3. BID PARITY-ERROR. ; 4. CRC-ERROR IN AN EB OUT OF SEQUENCE,BUT WITHIN ; THE ALLOWED RANGE OF MISSING BID'S. ; ; CALLED BY: ED5100, ED4990, ED4950 ; ; CALLS: ED4500, ED4520, ED1602 ; ; ENTRIES: ED4910 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R3 - DEST ; R4 - DEST ; R5 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4910: ; MOV R5 RL4910 ; MOD R6 ; MOVC ECIFLG R7 ; GET ADDRESS OF INPUT FLAGS IBN X7 ECIEOS2 ; IF ALREADY 2 EOS'S JMP ED4912 ; EXIT - THE BLOCK IS GARBAGE MOV ECINXI.X6 R7 ; GET EXPECTED BID JMP S4 ED4520 ; FIND STATUS ARRAY ENTRY FOR IT IBN X7 ECINAKF ; IF A NAKF HAS ALREADY BEEN SENT JMP ED4912 ; THEN EXIT SETS X7 ECINAKF ; SET THE NAKF FLAG MOVC BTNAKF R0 ; MOV ECINXI.X6 R1 ; GET EXPECTED BID AGAIN ADDC -1 R1 ; MOD R6 ; MOVC ECCNQH R3 ; GET LOC OF NAK QUEUE HEAD JMP S4 ED4500 ; CREATE THE NAKF BLOCK JMP ED4912 ; NO BINS FOR NAK JMPI S4 EI1602 ; SCHEDULE NAK_QUEUE ED4912: ; JMPI RL4910 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; GOT MISSING BLOCK ; ; A PREVIOUSLY NAK'D EDC BLOCK IS RECEIVED. ; IF CRC-ERROR THEN RETRANSMISSION REQUESTED ; ELSE QUEUE FOR PROCESSING. ; ; CALLED BY: ED4990 ; ; CALLS: ED4500, ED4510, ED1602 ; ; ENTRIES: ED4920 ; ; RETURNS: LINK CRC-ERROR ; LINK+1 EB OK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R3 PTR_STATUS DEST ; R4 - DEST ; R5 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4920: ; MOV R5 RL4920 ; MOVC 1<TSTCRC R0 ; JMP S4 ED4510 ; CHECK FOR CRC ERROR JMP ED4922 ; JUMP ON CRC ERROR FOUND SETS X3 ECIOK ; SET BLOCK RECEIVED OK JMP 1. X5 ; RETURN TO LINK+1 ED4922: ; MOV CIBID R1 ; SET UP TO NAK THE NEWLY MOVC BTNAK R0 ; RECEIVED BLOCK MOD R6 ; MOVC ECCNQH R3 ; JMP S4 ED4500 ; CREATE THE NAK BLOCK JMPI RL4920 ; NO BINS FOR NAK JMPI S4 EI1602 ; SCHEDULE_NAK_QUEUE JMPI RL4920 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; GOT EXPECTED EDC BLOCK ; ; THIS PROCEDURE IS ENTERED DURING FAULTLESS ; TRANSMISSION. ; ; CALLED BY: ED4990 ; ; CALLS: ED4500, ED4510, ED4540, ED1602 ; ; ENTRIES: ED4930 ; ; RETURNS: LINK CRC-ERROR ; LINK+1 EB OK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R3 STATUS_PTR DEST ; R4 - DEST ; R5 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4930: ; MOV R5 RL4930 ; RELS X3 ECIEXP ; CLEAR "EXPECTED BID" FLAG INC ECINXI.X6 ; SET UP NEXT EXPECTED BID JMP S4 ED4540 ; SET STATUS ARRAY ENTRIES OPEN ; FOR LEGAL BIDS MOVC 1<TSTCRC R0 ; JMP S4 ED4510 ; CHECK FOR CRC ERROR JMP LOC+2 ; CRC ERROR FOUND JMP ED4932 ; BLOCK OK - NO CRC ERROR SETS X3 ECINAK ; SET "NAK'D" FLAG MOVC BTNAK R0 ; SET UP TO CREATE A NAK FOR MOV CIBID R1 ; THE BLOCK MOD R6 ; MOVC ECCNQH R3 ; JMP S4 ED4500 ; CREATE THE NAK BLOCK JMPI RL4930 ; NO BINS FOR NAK JMPI S4 EI1602 ; SCHEDULE NAK_QUEUE JMPI RL4930 ; RETURN TO LINK ED4932: ; SETS X3 ECIOK ; SET "BLOCK OK" FLAG JMP 1. X5 ; RETURN TO LINK+1 ;---------------------------------------------------------------------- ;---------------------------------------------------------------------- ; ; GOT AN EXISTING BLOCK ; ; CALLED BY: ED4990 ; ;---------------------------------------------------------------------- ED4940: ; JMP X5 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; GOT A BLOCK WHOSE BID IS SUBSEQUENT TO THE EXPECTED ONE. ; ; THIS PROCEDURE IS ENTERED ON RECEIPT OF ; AN EB OUT OF SEQUENCE, BUT WITHIN THE ALLO- ; WED RANGE OF MISSING EB'S ; ; CALLED BY: ED4990 ; ; CALLS: ED4500, ED4910, ED4540, ED4510, ED1602, ED4520 ; ; ENTRIES: ED4950 ; ; RETURNS: LINK (VIA GOT_INVALID) ; LINK+1 EB OK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 STATUS-PTR. DEST ; R4 - DEST ; R5 LINK DEST ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4950: ; MOV R5 RL4950 ; MOVC 1<TSTCRC R0 ; JMP S4 ED4510 ; CHECK FOR CRC ERROR JMP ED4910 ; CRC ERROR FOUND MOV ECINXI.X6 R1 ; GET BID OF EXPECTED BLOCK ED4952: ; MOV R1 R7 ; JMP S4 ED4520 ; GET STATUS ARRAY LOC FOR THE BID IEQ R3 R7 ; IS THIS THE CURRENT BID JMP ED4954 ; YES - DONE WITH LOOP RELS X7 ECIEXP ; CLEAR "EXPECTED BID" FLAG SETS X7 ECINAK ; SET THE "NAK'D" FLAG ADDC 1 R1 ; SET TO GET NEXT BID JMP ED4952 ; CONTINUE LOOP ED4954: ; SETS X3 ECIOK ; SET "BLOCK OK" FLAG FOR LATST ID MOV ECINXI.X6 R1 ; GET EXPECTED BID XTR R1 EOCBDX ; MOV CIBID R2 ; SET UP FOR NAK OR NAK2 ADDC -1 R2 ; DEPENDING ON # OF BIDS SKIPPED INE R1 R2 ; MODC BTNAK2-BTNAK ; MOVC BTNAK R0 ; MOD R6 ; MOVC ECCNQH R3 ; ADDC 2 R2 ; MOV R2 ECINXI.X6 ; SET NEXT EXPECTED BID TO ; ONE MORE THAN THE CURRENT ONE JMP S4 ED4540 ; SET ALLOWABLE BIDS IN STATUS ARY MOV RL4950 R5 ; JMP S4 ED4500 ; CREATE NAK OR NAK2 BLOCK JMP 1. X5 ; NO BINS FOR NAK JMPI S4 EI1602 ; SCHEDULE NAK_QUEUE JMP 1. X5 ; RETURN TO LINK+1 ;---------------------------------------------------------------------- ;---------------------------------------------------------------------- ; ; INVALID STATE IN STATUS ARRAY DETECTED ; ; CALLED BY: ED4990 ; ; CALLS: ED4620 ; ; ENTRIES: ED4970 ; ; RETURNS: LINK ; ;---------------------------------------------------------------------- ED4970: ; MOV R5 RL4970 ; JMPI S4 EI1900 ;UE REPORT IN VALID STATE IN ;UE STATUS ARRAY JMP S4 ED4620 ; DISCARD THE BLOCK JMPI RL4970 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PROCESS BLOCKS BASED ON STATUS ARRAY FLAGS ; ; BLOCKS CONTAINING DATA ARE PROCESSED BASED ON THE CONTENTS OF THE ; FOUR FLAGS DESCRIBED BELOW. \HE RELATIONSHIP BETWEEN THESE FLAGS ; AS WELL AS THEIR POSITION IN THE STATUS WORD IS CRITICAL. ANY ; CHANGES IN THIS AREA WILL NECESSITATE CHANGES IN THE FOLLOWING CODE. ; THE FOUR FLAGS ARE: ; ECIOK = 1 BLOCK RECEIVED OK ; ECINAK = 1 BLOCK PREVIOUSLY NAK'D ; ECIOPN = 1 THIS BID IS PERMITTED ; ECIEXP = 1 BID IS THE NEXT ONE EXPECTED ; ; CALLED BY: ED5100, ED5200 ; ; CALLS: ED4520, ED4910, ED4920, ED4930, ED4940, ED4950, ED4970 ; ; ENTRIES: ED4990 ; ; RETURNS: RETURNS INDIRECTLY VIA CALLED ROUTINES ; ; REGISTERS ENTRY EXIT ; R0 - - ; R1 - - ; R2 - - ; R3 - STATUS_PTR ; R4 - DEST ; R5 LINK UNCH ; R6 ECRPTR UNCH ; R7 - DEST ;---------------------------------------------------------------------- ED4990: ; MOV CIBID R7 ; JMP S4 ED4520 ; GET LATST BID STATUS ARRAY LOC MOV R7 R3 ; MOV X7 R7 ; GET STATUS WORD FROM ARRAY XTR R7 ECIOK+1 ; GET 4 FLAGS DEALT WITH BELOW MOD R7 ; JMP S4 ED4992 ; ED4992: ; ECIOK ECINAK ECIOPN ECIEXP JMP ED4910 ; 0 0 0 0 ; BLOCK UNEXPECTED JMP ED4970 ; 0 0 0 1 ; ILLEGAL JMP ED4950 ; 0 0 1 0 ; BLOCK UNEXPECTED BUT LEGAL JMP ED4930 ; 0 0 1 1 ; EXPECTED BLOCK JMP ED4970 ; 0 1 0 0 ; ILLEGAL JMP ED4970 ; 0 1 0 1 ; ILLEGAL JMP ED4920 ; 0 1 1 0 ; PREVIOUSLY NAK'D BLOCK JMP ED4970 ; 0 1 1 1 ; ILLEGAL JMP ED4970 ; 1 0 0 0 ; ILLEGAL JMP ED4970 ; 1 0 0 1 ; ILLEGAL JMP ED4940 ; 1 0 1 0 ; PREVIOUSLY RECEIVED BLOCK JMP ED4970 ; 1 0 1 1 ; ILLEGAL JMP ED4970 ; 1 1 0 0 ; ILLEGAL JMP ED4970 ; 1 1 0 1 ; ILLEGAL JMP ED4940 ; 1 1 1 0 ; PREVIOUSLY REC'D NAK'D BLOCK JMP ED4970 ; 1 1 1 1 ; ILLEGAL ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; DATA BLOCK PROCESSING ; ; IF A SETBD HAS NOT YET BEEN RECEIVED THE BLOCK IS DISCARDED AND ; THE ROUTINE EXITS. THE HALTED MESSAGE SECTOR TIMER IS RESET VIA ; ED1475. ECISETB, WHICH INDICATES THE LAST BLOCK WAS A SETBD, IS ; CLEARED. IF AN ACK HAS BEEN SENT, ACK BOOKKEEPING IS PERFORMED ; (ED4700) TO REMOVE IT FROM THE RECORDS. THE BID IS CHECKED FOR ; PARITY ERROR AND TO SEE IF IT IS IN LEGAL RANGE. IF EITHER CHECK ; FAILS ED4910 IS CALLED TO GENERATE A NAK. THE BLOCK IS THEN DISCARDED ; AND THE ROUTINE EXITS. FURTHER VALIDITY CHECKS ARE MADE VIA ED4990. ; IF ANY OF THOSE CHECKS FAIL THE BLOCK IS DISCARDED AND THE ROUTINE ; EXITS. ; IF THE BLOCK PASSES ALL CHECKS IT IS INSERTED IN THE CYCLIC QUEUE ; (ED4600) AND CALLED TO THE ATTENTION OF IDP (ED4610). ; ; CALLED BY: ED2100 ; ; CALLS: ED4510, ED4990, ED4600, ED4800, ED4610, ED4620, ED4910 ; ED4700, ED1475 ; ; ENDTRIES: ED5100 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - DEST ; R7 - DEST ;---------------------------------------------------------------------- ED5100: ; MOV R4 RL5100 ; MOV ECRPTR R6 ; GET POINTER TO CURRENT ECR MOD R6 ; MOVC ECIFLG R5 ; GET CURRENT ECR FLAG WORD LOC. IBN X5 ECISCQ ; IF SETBD REQUIRED, THEN JMP ED5102 ; DISCARD THE EDC BLOCK JMPI S4 EI1475 ; RESET HALTED MS TIMER RELS X5 ECISETB ; CLR "LST BLK SETBD" FLAG IBN X5 ECIAP1 ; IF AN ACK WAS SENT, THEN JMP S4 ED4700 ; DO ACK BOOKKEEPING MOVC 1<TSTBID+1<TSTSPAN R0 ; JMP S4 ED4510 ; TEST BID PARITY AND SPAN JMP ED5104 ; BID PARITY OR SPAN ERROR JMP S5 ED4990 ; MAKE FURTHER CHECKS JMP ED5102 ; FAILED FURTHER CHECKS JMP S4 ED4600 ; INSERT BLOCK IN CYCLIC QUEUE JMP S4 ED4610 ; SEND DATA TO IDP JMP ED5106 ; EXIT ED5102: ; JMP S4 ED4620 ; DISCARD THE BLOCK JMP ED5106 ; EXIT ED5104: ; JMP S5 ED4910 ; PROCESS INVALID BLOCK JMP S4 ED4620 ; DISCARD THE BLOCK ED5106: ; JMPI RL5100 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; EOS/EOM PROCESSING ; ; IF A SETBD HAS NOT YET BEEN RECEIVED THE BLOCK IS DISCARDED AND ; THE ROUTINE EXITS. THE HALTED MESSAGE SECTOR TIMER IS RESET VIA ; ED1475. ECISETB, WHICH INDICATES THE LAST BLOCK WAS A SETBD, IS ; CLEARED. IF AN ACK HAS BEEN SENT, ACK BOOKKEEPING IS PERFORMED ; (ED4700) TO REMOVE IT FROM THE RECORDS. THE BID IS CHECKED FOR ; PARITY ERROR AND TO SEE IF IT IS IN LEGAL RANGE. IF EITHER CHECK ; FAILS ED4910 IS CALLED TO GENERATE A NAK. THE BLOCK IS THEN DISCARDED ; AND THE ROUTINE EXITS. FURTHER VALIDITY CHECKS ARE MADE VIA ED4990. ; IF ANY OF THOSE CHECKS FAIL THE BLOCK IS DISCARDED AND THE ROUTINE ; EXITS. ; IF THE BLOCK PASSES ALL CHECKS IT IS PROCESSED (ED4800), INSERTED ; IN THE CYCLIC QUEUE (ED4600) AND CALLED TO THE ATTENTION OF IDP. ; ; CALLED BY: ED2100 ; ; CALLS: ED4510, ED4990, ED4800, ED4600, ED4610, ED4620, ED4910, ; ED4700, ED1475 ; ; ENTRIES: ED5200 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - DEST ; R7 - DEST ;---------------------------------------------------------------------- ED5200: ; MOV R4 RL5200 ; MOV ECRPTR R6 ; GET POINTER TO CURRENT ECR MOD R6 ; MOVC ECIFLG R5 ; GET CURRENT ECR FLAG WORD LOC. IBN X5 ECISCQ ; IF SETBD REQUIRED, THEN JMP ED5202 ; DISCARD THE BLOCK JMPI S4 EI1475 ; RESET HALTED MS TIMER RELS X5 ECISETB ; SET LAST BLOCK NOT SETBD IBN X5 ECIAP1 ; IF AN ACK WAS SENT, THEN JMP S4 ED4700 ; GO BOOKKEEP ACK'S MOVC 1<TSTBID+1<TSTSPAN R0 ; JMP S4 ED4510 ; TEST BID PARITY AND SPAN JMP ED5204 ; BID PARITY OR SPAN ERROR JMP S5 ED4990 ; FURTHER CHECKS JMP ED5202 ; FAILED FURTHER CHECKS JMP S4 ED4800 ; EOS PROCESSING JMP S4 ED4600 ; INSERT BLOCK IN CYCLIC QUEUE JMP S4 ED4610 ; SEND BLOCK TO IDP JMP ED5206 ; EXIT ED5202: ; JMP S4 ED4620 ; DISCARD THE BLOCK JMP ED5206 ; EXIT ED5204: ; JMP S5 ED4910 ; PROCESS INVALID BLOCK JMP S4 ED4620 ; DISCARD THE BLOCK ED5206: ; JMPI RL5200 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PROCESS INCOMMING SETBD'S ; ; WHEN A VALID SETBD BLOCK IS RECEIVED IT IS PROCESSED AS FOLLOWS: ; RECOVERY MODE, "SEGMENT RECEIVED" FLAGS AND "SETBD REQUIRED" ; ARE CLEARED. ; SETBD RECEIVED IS SET IN ECF AND CSTVF4. ; IF A TERMINATION BLOCK HAS NOT BEEN QUEUED ONE IS CREATED ; AND QUEUED. IDP IS THEN NOTIFIED. ; RESYNCHRONIZATION IS DONE VIA ED4750. ; SPAN OF ACCEPTABLE BIDS IS SET VIA ED4630. ; ; CALLED BY: ED2100 ; ; CALLS: ED4510, ED4502, ED4750, ED4620, ED4580, ED1475, ED1251, ED4630 ; ; ENTRIES: ED5300 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - DEST ; R7 - DEST ;---------------------------------------------------------------------- ED5300: ; MOV R4 RL5300 ; MOV ECRPTR R6 ; JMP S4 ED4620 ; DISCARD BLOCK - NO LONGER REQ'D MOVC 1<TSTCRC+1<TSTBID R0 ; JMP S4 ED4510 ; TEST BID PARITY AND CRC JMP ED5302 ; BID PARITY OR CRC ERROR MOD R6 ; MOVC ECIFLG R5 ; GET LOC. OF INPUT DATA FLAG RELS X5 ECIRR ; CLEAR POSSIBLE RECOVERY MODE RELS X5 ECIEOS1 ; CLEAR PENDING SEGMENT FLAGS RELS X5 ECIEOS2 ; RELS X5 ECISCQ ; CLEAR SETBD REQUIREMENT SETS X5 ECISETB ; SET SETBD LAST BLOCK RECEIVED MOD CSTPTR ; MOVC CSTVF4 R7 ; SETS X7 EECSBR ; SET SETBD REC'D IN CSTVF4 IBN X5 ECIQTB ; IF TERMINATION BLOCK QUEUED JMP ED5301 ; SKIP BUILDING ONE MOD CSTPTR ; MOVC CSTFIB R3 ; SETS X5 ECIITR ; SET FLAG TO NOTIFY IDP JMP S4 ED4502 ; CREATE TERMINATION BLOCK WHICH ; INDICATES AN ERROR & QUEUE IT NOP ; ED5301: ; SETS X5 ECIQTB ; FLAG TERMINATION BLOCK QUEUED MOV CIBID R0 ; JMP S4 ED4750 ; RESYNCH. AND CLEAR STATUS ARRAY JMP S4 ED4630 ; SET SPAN OF ACCEPTABLE BIDS IBNP X5 ECIITR ; IF IDP IS TO BE NOTIFIED RELS X5 ECIITR ; CLEAR NOTIFICATION FLAG AND JMPI S4 EI4580 ; NOTIFY IDP JMPI S4 EI1475 ; RESET HALTED MS TIMER. JMPI S4 EI1251 ; CLEAR ACKS & NAKS WAITING OUTPT ED5302: ; JMPI RL5300 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PROCEDURE RR(EB) PROCESS INCOMMING RR'S ; ; WHEN A VALID RR BLOCK IS RECEIVED: ; ACK BOOKKEEPING IS DONE. ; IF THE LAST BLOCK WAS A SETBD AND DATA IS STILL IN THE SYSTEM ; RECOVERY MODE IS SET AND THE ROUTINE EXITS. FINAL PROCESSING ; IS DELAYED TILL THE LAST MP-ACK IS RECEIVED. ; IF THERE IS NO DATA THEN THE "LAST BLOCK SETBD" FLAG IS CLEARED. ; ALL OUTSTANDING NAK'S ARE RESENT. IF NO NAK'S EXIST THEN THE ; LAST ACK IS REPEATED. ; ; CALLED BY: ED2100 ; ; CALLS: ED4510, ED4500, ED4620, ED4500, ED4700, ED4530, ED1601/1602 ; ; ENTRIES: ED5400 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - DEST ; R7 - DEST ;---------------------------------------------------------------------- ED5400: ; MOV R4 RL5400 ; MOV ECRPTR R6 ; MOD R6 ; MOVC ECIFLG R5 ; IBN X5 ECISCQ ; IF SETBD COMMAND REQUIRED THEN JMP ED5412 ; DISCARD EDC BLOCK MOVC 1<TSTCRC+1<TSTBID R0 ; TO REQUEST TEST OF CRC & BID JMP S4 ED4510 ; IF AN ERROR IS FOUND JMP ED5412 ; THEN GO DISCARD EB IBN X5 ECIAP1 ; IF AN ACK IS PENDING THEN JMP S4 ED4700 ; DO ACK BOOKKEEPING IBN X5 ECISETB ; IF LAST INPUT BLK WAS SETBD AND IBZ X5 ECIAR1 ; DATA IS IN THE SYSTEM - SKIP JMP ED5402 ; OTHERWISE JUMP ;----------------------------------- ; --- RECOVERY SITUATION --- ; ; THE LAST BLOCK WAS A SETBD BUT ; DATA IS STILL IN THE SYSTEM. ; SET THE RECOVERY FLAG (ECIRR) ; AND FINISH PROCESSING WHEN THE ; LAST MP-ACK (RELEASE) ARRIVES. ;----------------------------------- SETS X5 ECIRR ; SET RECOVERY FLAG RELS X5 ECISETB ; CLEAR "LST EB WAS SETBD" FLAG JMP ED5412 ; EXIT ;----------------------------------------------------------------------- ; --- NO RECOVERY --- ; ; AT THIS POINT WE KNOW THE LAST ; BLOCK WAS NOT A SETBD OR THERE ; IS NO DATA IN THE SYSTEM. WE NOW ; RESEND ALL NAKS OR SEND LAST ACK ED5402: ;----------------------------------- RELS X5 ECISETB ; CLEAR LAST EB AS SETBD MOVC FALSE R5 ; INITIALIZE QUEUE FLAG TO ACK MOV ECINQI.X6 R2 ; GET BID OF NXT EB TO GO TO ; IDP FOR THIS CHANNEL ED5403: ; MOV R2 R7 ; JMP S4 ED4520 ; GET ADDR. OF STATUS IN ARRAY IBN X7 ECIEXP ; IF BID WAS EXPECTED THEN JMP ED5408 ; GO CHECK FOR NAKF MOV R2 R1 ; ED5404: ; IBN X7 ECINAK ; IF PREVIOUSLY NAK'D THEN SKIP IBN X7 ECIOK ; IF BLOCK NOW OK THEN JMP ED5405 ; GO CHECK FOR A NAK2 ; THERE IS A NAK ON THIS BLOCK MOVC TRUE R5 ; SET FOR NAK QUEUE ADDC 1 R2 ; SET FOR NEXT STATUS ENTRY MOV R2 R7 ; JMP S4 ED4520 ; GET NEXT STATUS ENTRY JMP ED5404 ; LOOK AT NEXT BLOCK FOR NAK2/NAKF ED5405: ; IEQ R1 R2 ; IF R1 = R2 THEN JMP ED5406 ; NO NAK NEEDED ADDC -1 R2 ; SEE IF MORE THAN ONE BLOCK INE R1 R2 ; MUST BE NAK'D MODC BTNAK2-BTNAK ; YES - NAK2 MOVC BTNAK R0 ; NO - NAK MOD R6 ; MOVC ECCNQH R3 ; JMP S4 ED4500 ; CREATE REQ'D NAK BLOCK JMPI RL5400 ; NO BINS AVAILABLE ED5406: ; ADDC 1 R2 ; SET FOR NXT STATUS ARRAY ENTRY JMP ED5403 ; CONTINUE ED5408: ; MOV R2 R1 ; MOV CIBID R2 ; GET CURRENT BID IBZP X7 ECINAKF ; IF NAKF HAS NOT BEEN SENT AND JMPI S4 EI4530 ; NXT BID QUED > RR BID JMP ED5410 ; SEND AN ACK MOVC BTNAKF R0 ; MOD R6 ; MOVC ECCNQH R3 ; ADDC -1 R1 ; JMP S4 ED4500 ; CREATE A NAKF JMPI RL5400 ; NO BINS AVAILABLE MOVC TRUE R5 ; SET FLAG FOR NAK QUEUE ED5410: ; INE R5 FALSE ; IF NAK MADE UP THEN JMP ED5411 ; GO SEND A NAK MOVC BTACK R0 ; MOD R6 ; MOVC ECCAQH R3 ; MOV ECIPAI.X6 R1 ; GET LAST ACK'D BID JMP S4 ED4500 ; CREATE ACK BLOCK JMPI RL5400 ; NO BINS AVAILABLE MODC EI1601-EI1602 ; SCHEDULE ACK QUEUE ED5411: ; JMPI S4 EI1602 ; SCHEDULE NAK QUEUE ED5412: ; JMP S4 ED4620 ; DISCARD THE RR BLOCK JMPI RL5400 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PROCESS INCOMMING LCB BLOCKS ; ; WHEN A VALID LCB BLOCK IS RECEIVED THE END OF BLOCK FLAG IS SET ; IN THE BLOCK AND IT IS PASSED TO IDP. ; ; CALLED BY: ED2100 ; ; CALLS: ED4510, ED4620, ED4580, ED4570 ; ; ENTRIES: ED5500 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 - DEST ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK DEST ; R5 - DEST ; R6 - DEST ; R7 - DEST ;---------------------------------------------------------------------- ED5500: ; MOV R4 RL5500 ; MOV ECRPTR R6 ; MOD R6 ; MOVC ECIFLG R5 ; GET INPUT FLAG IBN X5 ECISCQ ; IF SETBD REQ'D THEN JMP ED5504 ; GO DISCARD THE BLOCK MOVC 1<TSTCRC+1<TSTBID R0 ; JMP S4 ED4510 ; TEST BID PARITY AND CRC JMP ED5504 ; BID PARITY OR CRC ERROR IBN X5 ECIALR ; IS AN LCB IN THE SYSTEM JMP ED5504 ; YES - REJECT THE BLOCK MOD R6 ; READ BLOCK COUNT IN LCB MOV ECCIQH+QCCQE R3 ; INE R3 1 ; IF MORE THAN 1 BLOCK IN LCB JMP ED5504 ; THEN GO DISCARD THE BLOCK MOV CIBID R0 ; MOV R0 ECIALB.X6 ; SAVE LCB'S BID SETS X5 ECIALR ; SET "WAIT FOR MP-ACK" FLAG MOD ECRPTA ; MOVC ECCIQH R4 ; MON LNOQ ; FETCH LCB FROM INPUT BIN QUEUE NOP ; MOD CSTPTA ; MOVC CSTFIB R4 ; QUEUE LCB FOR IDP MON LNIQ ; MOVC 1<BINEIB R0 ; JMP S4 ED4570 ; SET END OF BLOCK FLAG IN LCB JMPI S4 EI4580 ; NOTIFY IDP JMP ED5506 ; ED5504: ; JMP S4 ED4620 ; DISCARD THE BLOCK ED5506: ; JMPI RL5500 ; ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; PRESET INPUT AREA ; ; THIS ROUTINE CLEARS THE INPUT AREA OF AN ECR. IT IS USED WHEN ; INPUT IS CLOSED. ; ; CALLED BY: ED3300 ; ; CALLS: ED4550 ; ; ENTRIES: ED5600 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0-R3 - DEST ; R4 LINK DEST ; R5-R7 - DEST ;---------------------------------------------------------------------- ED5600: ; MOV R4 RL5600 ; MOVC 1 R1 ; BID1 = 1 MOVC ECISAD R2 ; BID2 = ECISAD JMP S4 ED4550 ; CLEAR STATUS ARRAY JMPI S4 EI1900 ;UE BID ERROR (NOT LIKELY) MOVC 1<ECISCQ R0 ; MOD ECFPTR ; SET "SETBD REQ'D" FLAG MOV R0 ECIFLG ; JMPI RL5600 ; RETURN TO LINK 99 ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; HALTED MESSAGE PROCESSING ; ; WHEN A HALTED MESSAGE IS DETECTED, THIS ROUTINE IS CALLED TO ; RELEASE ALL BINS IN THE HALTED BLOCK AND SEND A "HALTED MESSAGE" ; BLOCK TO IDP. ; ; CALLED BY: ED1550 ; ; CALLS: ED4570, ED4580 ; ; ENTRIES: ED5700 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0-R3 - DEST ; R4 LINK DEST ; R5-R7 - DEST ;---------------------------------------------------------------------- ED5700: ; MOV R4 RL5700 ; MOD ECRPTA ; MOVC ECCIQH R4 ; DISCARD ECR INPUT BIN QUEUE BINS MODN XBASE ; EXCEPT THE LAST ONE MOV QCCQE. X4 R3 ; ADDC -1 R3 ; JOZ R3 ED5702 ; IF ONLY ONE BIN - NO RELEASE MON LNOQ ; LINK BINS OUT JMPI S4 EI1990 ;E DEQUEUE ERROR MON RNBN ; RELEASE BINS TO BIN POOL ED5702: ; MOVC 1 R3 ; MOD ECRPTA ; MOVC ECCIQH R4 ; GET THE BIN WE SAVED MON LNOQ ; I.E. LINK IT OUT OF QUEUE JMPI S4 EI1990 ;E DEQUEUE ERROR MOVC 1<BINEIB R0 ; JMP S4 ED4570 ; SET END OF BLOCK FLAG IN BIN MOD CSTPTA ; MOVC CSTFIB R4 ; MOVC 1 R3 ; QUEUE IT FOR IDP MON LNIQ ; JMPI S4 EI4580 ; NOTIFY IDP JMPI RL5700 ; RETURN TO LINK ;---------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ; EXTERNALE NAMES: FILE : EDINOD. ; ;---------------------------------------------------------------------- BEGIN EXTERNAL ED4300,ED4410,ED5100,ED5200,ED5300,ED5400,ED5500,ED5600,ED5700 EXTERNAL ED4530,ED4580 NAMES END ;---------------------------------------------------------------------- END «eof»