|
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 - metrics - download
Length: 98816 (0x18200) Types: TextFile Names: »EDMMOD«
└─⟦7c4388e5c⟧ Bits:30005071 8" CR80 Floppy CR80FD_0009 ( EDM SYS 1 PJ DEC 3,80 ) └─⟦193e12850⟧ └─⟦this⟧ »EDMMOD«
LIST ;----------------------------------------------------------------------- ; ; PROJECT: NICS-TARE/CP ; ; MODULE IDENTIFICATION: NIC/290 ; ; CPS NAME: ERROR DETECTION AND CORRECTION (EDC) SUBMODULE ; EDC MAIN PROGRAM SECTION (EDM). ; ; MERGE FILES: SEE LIST BELOW ; ; MODULE FILES: EDMSOD,EDMMOD,EDMHOD,EDMNOD,EDMVOD ; ; REFERENCES: NIC/200/PSP/0006 ; ;----------------------------------------------------------------------- BEGIN MODULE EDMSYS USE BASE XDATE:=#0722 ;----------------------------------------------------------------------- ; ; MERGE FILE MESSAGES ; ;----------------------------------------------------------------------- NOLIST MESSAGE <:CALL XPDNOD:> ; 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 <:CALL SYSNOD:> ; 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 <:CALL MNNNOD:> ; 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 <:CALL CCONOD:> ; 00000102 0 0000 LEVEL 1 NAMES: USE BASE CCBCT2:= #0107 CCECS1:= #0000 CCSTCL:= #008C CCECS2:= #0001 CCLEBC:= #0001 CCECS3:= #0002 CCECS4:= #0003 CCECS5:= #0004 CCECS6:= #0005 CCLWDT:= #2500 CCEDCM:= #0002 CCHCPC:= #0005 CCPRPT:= #030B CCLMBC:= #0008 CCLNBC:= #0008 CCHSBC:= #000A CCSWDT:= #1300 CCHSCC:= #0005 CCEMOC:= #0005 CCCONF:= #0002 CCHMOC:= #0007 CCSPUR:= #0002 CCCRRC:= #00FF CCLSBC:= #0008 CCLSCC:= #0001 CCSPAC:= #8C8C CCMNAL:= #006C CCPBCT:= #0015 CCMNEL:= #0014 CCHTMC:= #0003 CCOLOC:= #0000 CCIMCX:= #2400 CCLPA:= #0010 CCHABC:= #0008 CCUNCL:= #0005 CCCPC2:= #0002 CCMNLL:= #006C CCCPC3:= #0003 CCMNML:= #0014 CCPSPA:= #00FF CCMNNL:= #0014 CCHEBC:= #0004 CCBCT1:= #0015 USE #0 MESSAGE <:CALL ADANOD:> ; 00000065 0 0015 LEVEL 1 NAMES: USE BASE ADMON:= #0011 ADOLTO:= #0010 ADIPT:= #0000 ADTMSK:= #0007 ADGST:= #0005 ADTLVL:= #0012 ADICP:= #0004 ADCLK:= #0013 ADOTOD:= #0006 ADCIVT:= #0008 ADRCPU:= #0014 USE #0 MESSAGE <:CALL GDSNOD:> ; 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 <:CALL 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 MESSAGE <:CALL PCFNOD:> ; 00000114 0 0252 LEVEL 1 NAMES: PCGSRL= #0000 PCGSRN= #0017 PCGSRS= #0001 PCTJTN= #0010 USE BASE PCNMQE:= #0005 PCFMQO:= #000F PCNMQI:= #000D PCSCCT:= #010A PCNCD1:= #0001 PCNCD2:= #0002 PCNOAT:= #008D PCNRTA:= #0014 PCMCRS:= #0017 PCSMQE:= #0006 PCRSPA:= #0009 PCMXAP:= #0012 PCEIST:= #0092 PCEMQT:= #0248 PCNGSR:= #0000 PCSMQI:= #000E PCNMQO:= #0010 PCMSAT:= #0020 PCCTJT:= #0040 PCZERO:= #0019 PCEOST:= #009C PCEIS0:= #0000 PCEIS1:= #0001 PCMCEF:= #0016 PCNIST:= #0050 PCSMQO:= #0011 PCEOS0:= #0000 PCEOS1:= #0001 PCSCHA:= #00BA PCNOST:= #0088 PCNIS0:= #0050 PCEIAT:= #00A6 PCPSWM:= #0008 PCGSR1:= #0212 PCEOS8:= #0008 PCLIRA:= #000A PCEOS9:= #0009 PCFMQE:= #0004 PCMREF:= #0015 PCFMQI:= #000C PCTOAA:= #0240 PCOFA:= #0007 PCNOS0:= #0000 PCNCCT:= #0112 PCPBCT:= #0003 PCLIC:= #000B PCEOAT:= #00B0 PCNOS4:= #0003 PCMXAF:= #0013 PCNOS5:= #0004 PCFLGT:= #0252 USE #0 MESSAGE <:CALL CDTNOD:> ; 00000237 0 0010 LEVEL 1 NAMES: CDPSTC= #001D CDIMCA= #0013 CDETYP= #0019 CDSTC= #001C CDBID= #0018 CDMOX= #0003 CDPPEC= #0021 CDPEC= #0020 CDICCA= #0012 USE BASE CDESIZ:= #001B CDISNR:= #D110 CDNCT:= #0001 CDOSC:= #0008 CDIRPS:= #0007 CDOSTA:= #0019 CDPSTA:= #0004 CDOCCA:= #0015 CDTELT:= #001B CDIRPV:= #0009 CDTNCT:= #FF0F CDIRXO:= #0004 CDOCEB:= #000A CDOEST:= #0012 CDIBLC:= #000F CDMOP:= #0000 CDIBNA:= #0000 CDOSNM:= #182C CDOSCX:= #0003 CDOLTO:= #0002 CDOEBE:= #000F CDOONT:= #0005 CDIOST:= #0008 CDOIBD:= #0001 CDOSNR:= #182C CDICBR:= #0005 CDIAIM:= #1010 CDIPSW:= #6000 CDITXO:= #0003 CDPRPT:= #000F CDETAB:= #000C CDIRXS:= #000A CDIAIR:= #9130 CDCSEC:= #0005 CDOBLC:= #0016 CDSCHA:= #001A CDOBNA:= #0000 CDIBDS:= #000D CDPPAC:= #0010 CDOPBC:= #0017 CDONEB:= #0018 CDIBML:= #000C CDRPT:= #0010 CDOOBE:= #000D CDOSSR:= #183C CDOAIM:= #18E4 CDIOAM:= #00C0 CDIBUF:= #0008 CDITXS:= #000B CDOPSW:= #6000 CDISCH:= #0008 CDIOAP:= #7835 CDOAIR:= #1010 CDPCA:= #0003 CDSPAC:= #000E CDIPER:= #0001 CDOBDS:= #000E CDLIC:= #0006 CDIRGO:= #0006 CDOBML:= #000C CDFLNK:= #0003 CDIMSA:= #0007 CDOFD:= #000B CDMTCF:= #0002 CDOEDS:= #000F CDOBUF:= #0014 CDTYP:= #0001 CDISCM:= #0007 CDLINK:= #0000 CDPIC:= #000D CDIOAT:= #02C0 CDISEM:= #9010 CDTIME:= #0002 CDITME:= #000F CDODIS:= #0004 CDIMCX:= #0009 CDOPEN:= #0003 CDBCT:= #000B CDIHNT:= #0007 CDISER:= #9110 CDIINT:= #0004 CDLCN:= #0008 CDOMSA:= #0013 CDISC:= #0000 CDISTA:= #0011 CDUSED:= #0005 CDOSCM:= #0700 CDISTC:= #000F CDOSEM:= #183C CDIBEB:= #000E CDIEST:= #0006 CDISNM:= #5010 CDISCX:= #0003 CDIOSM:= #0008 CDOSER:= #000B CDIOP:= #7835 CDICFE:= #0002 CDOINT:= #0005 CDZDIS:= #0004 CDIOSP:= #7835 CDMOM= #0007-128*BASE-128*(PROG-1) USE #0 MESSAGE <:CALL ECFNOD:> ; 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 <:CALL EOCNOD:> ; 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 <:CALL EDCNOD:> ; 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 <:CALL EDINOD:> ; 00003318 0 00B4 LEVEL 2 NAMES: USE PROG ED5100:= #07DE ED4300:= #05AC ED5200:= #07FA ED5300:= #0817 ED4410:= #05D1 ED5400:= #083D ED5500:= #088A ED5600:= #08AC ED5700:= #08B7 ED4530:= #064B ED4580:= #068E USE #0 MESSAGE <:CALL EDONOD:> ; 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 <:CALL CSTNOD:> ; 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 <:CALL 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 <:CALL 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 MESSAGE <:CALL BINNOD:> ; 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 <:CALL MSBNOD:> ; 00000135 0 0044 LEVEL 1 NAMES: MSLADM= #FF00 MSCACX= #0008 MSMCCM= #00FF MSLADS= #0008 MSMCCS= #0000 MSSECM= #0700 MSLADX= #0008 MSMCCX= #0008 MSPREM= #F000 MSSECS= #0008 MSSECX= #0003 MSSEQM= #00FF MSPRES= #000C MSCACM= #00FF MSPREX= #0004 MSSHD1= #0076 MSSHD2= #0077 MSSHD3= #0078 MSSEQS= #0000 MSSHD4= #0079 MSSEQX= #0008 MSCACS= #0000 USE BASE MSITYP:= #0006 MSBSEC:= #0008 MSCHA:= #0002 MSOCAP:= #0080 MSICSF:= #0003 MSLAD:= #007B MSIEOM:= #000E MSI0:= #000F MSCW1:= #003B MSMCC:= #007A MSI1:= #000E MSIVFF:= #0007 MSCW2:= #003C MSI2:= #000D MSCW3:= #003D MSI3:= #000C MSCW4:= #003E MSI4:= #000B MSCW5:= #003F MSI5:= #000A MSI6:= #0009 MSI7:= #0008 MSI8:= #0007 MSIND:= #003F MSI9:= #0006 MSILCT:= #0008 MSWXO:= #0002 MSISPD:= #0004 MSIEOS:= #0000 MSIHMS:= #000B MSIOI:= #4000 MSIEXL:= #000C MSSEC:= #007D MSI10:= #0005 MSITER:= #0009 MSDLM:= #000B MSI11:= #0004 MSIURE:= #0001 MSLOC:= #0044 MS1CAP:= #0072 MSI12:= #0003 MS2CAP:= #0076 MSI13:= #0002 MSI14:= #0001 MSI15:= #0000 MSBSEX:= #0003 MSIOM:= #C000 MSIOO:= #8000 MSPRE:= #007D MSOSEQ:= #0042 MSISOM:= #000F MSIFL4:= #0005 MSITMP:= #0040 MSLNK:= #0000 MSCNT:= #0000 MSLGT:= #0044 MSMSAX:= #0002 MSCNX:= #0008 MSIO:= #000E MSSEQ:= #007C MSCXO:= #0004 MSUMI:= #0040 MSISTP:= #000D MSSTA:= #0001 MSISPU:= #000A MSIOCF:= #0002 USE #0 MESSAGE <:CALL COPNOD:> ; 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 <:CALL DBPNOD:> ; 00000048 0 0000 LEVEL 1 NAMES: DATE= #0401 USE #0 MESSAGE <:CALL DANNOD:> ; 00000062 0 0000 LEVEL 1 NAMES: USE BASE DACR:= #0014 DASXDL:= #0034 DAMXI:= #0046 DAALT1:= #0020 DAOC1:= #0005 DALP:= #0010 DAMPS:= #0018 DAOC8:= #0021 DAMBC:= #0000 DAESCP:= #002B DACCPU:= #0000 DAMRAM:= #000E DA3050:= #000F DASLT1:= #0010 DAFD:= #0008 DACP1A:= #0040 DACP2A:= #0080 DAMCPU:= #0007 DAMPI:= #003C DASXDI:= #0038 DAOC:= #0005 DAPROM:= #000F USE #0 LIST ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; RETURN LINKS (RL)/WORK. ; ;----------------------------------------------------------------------- LOC=EMBASE INTSTA: LOC=LOC+1 ; INT._DRIVEN_PROCESS STATE (IDLE/]1>!) ;----------------------------------------------------------------------- ; ; THE FOLLOWING ARE RETURN LINKS FOR VARIOUS ROUTINES ; ;----------------------------------------------------------------------- RL1000: LOC=LOC+1 ; RL1050: LOC=LOC+1 ; RL1055: LOC=LOC+1 ; RL1060: LOC=LOC+1 ; RL1100: LOC=LOC+1 ; RL1220: LOC=LOC+1 ; RL1230: LOC=LOC+1 ; RL1250: LOC=LOC+1 ; RL1252: LOC=LOC+1 ; RL1260: LOC=LOC+1 ; RL1390: LOC=LOC+1 ; RL1400: LOC=LOC+1 ; RL1410: LOC=LOC+1 ; RL1460: LOC=LOC+1 ; RL1470: LOC=LOC+1 ; RL1510: LOC=LOC+1 ; RL1520: LOC=LOC+1 ; RL1540: LOC=LOC+1 ; RL1550: LOC=LOC+1 ; RL1560: LOC=LOC+1 ; RL1600: LOC=LOC+1 ; RL1650: LOC=LOC+1 ; RL3200: LOC=LOC+1 ; RL3210: LOC=LOC+1 ; RL3300: LOC=LOC+1 ; RL3310: LOC=LOC+1 ; RL3500: LOC=LOC+1 ; RL3600: LOC=LOC+1 ; RL3380: LOC=LOC+1 ; ;----------------------------------------------------------------------- ; ; ASSIGNED CONSTANTS ; ;----------------------------------------------------------------------- PCIDLE:=-1 ; PROCESS IDLE. ; ; BITS: BIT7:= 7 ; ; CAUSE CODES: TIMEOUT:=3 ; TIMEOUT ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; EDC MAIN PROGRAM SECTION. ; ;----------------------------------------------------------------------- USE PROG LOC=EMPROG EI1650:ED1650 ; ;----------------------------------------------------------------------- ; INITIALIZE THE INTERRUPT PROCESS (EDI) ; ; CALLED BY: ED2000 ; ; CALLS: ED1050, ED1055, ED1060 ; ; ENTRIES: ED1000 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3 - DESTROYED ; R4 LINK DESTROYED ; R5,R6,R7 - DESTROYED ;----------------------------------------------------------------------- ED1000: ; MOV R4 RL1000 ; JMP S4 ED1050 ; INITIALIZE PROCESS DESCRIPTOR JMP S4 ED1055 ; SET UP GENERAL AREA OF ECF JMP S4 ED1060 ; CREATE ECR'S MON GLET ; GET A LETTER JMPI S4 EI1940 &;E NO LETTER - REPORT ERROR MOV R5 ECIITL ; SAVE LOCATION OF LETTER JMPI RL1000 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; INITIALIZE POINTERS IN THE PROCESS DESCRIPTOR ; ; CALLED BY: ED1000, ED1100 ; ; CALLS: NONE ; ; ENTRIES: ED1050 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0 - DESTROYED ; R4 LINK DESTROYED ; R5 - GSTP (REL) ; R7 - DESTROYED ; R1, R2, R3, R6 - UNCHANGED ;----------------------------------------------------------------------- ED1050: ; MOV R4 RL1050 ; MOV XBASE R7 ; MOV XGSTPR R5 ; INITIALIZE GST POINTERS MOV R5 GSTPTA ; SUB R7 R5 ; MOV R5 XGSTPR ; MOV GSTECF.X5 R0 ; INITIALIZE ECF POINTERS MOV R0 ECFPTA ; SUB R7 R0 ; MOV R0 ECFPTR ; MOV GSTPCF.X5 R0 ; INITIALIZE PCF POINTERS MOV R0 PCFPTA ; SUB R7 R0 ; MOV R0 PCFPTR ; MOV GSTMQE.X5 R0 ; INITIALIZE MQE POINTERS MOV R0 MQEPTA ; SUB R7 R0 ; MOV R0 MQEPTR ; MOV R0 NMQEPT ; MOV GSTMQI.X5 R0 ; INITIALIZE MQI POINTERS MOV R0 MQIPTA ; SUB R7 R0 ; MOV R0 MQIPTR ; MOV R0 NMQIPT ; MOV GSTMQO.X5 R0 ; INITIALIZE MQO POINTERS MOV R0 MQOPTA ; SUB R7 R0 ; MOV R0 MQOPTR ; MOV R0 NMQOPT ; JMPI RL1050 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; INITIALIZE GENERAL ECF AREA ; ; CALLED BY: ED1000 ; ; CALLS: NONE ; ; ENTRIES: ED1055 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R3 - DESTROYED ; R2,R7 - UNCHANGED ; R4 LINK DESTROYED ; R5 - GSTP (REL) ; R6 - ECFP (REL) ;----------------------------------------------------------------------- ED1055: ; MOV R4 RL1055 ; MOV ECFPTR R6 ; MOVC EOCHMT R0 ; PRESET HALTED MS TIMER. MOV R0 ECGHMT.X6 ; MOVC EOCRCL R0 ; PRESET RETRANSMISSION CONTER MOV R0 ECGRCL.X6 ; MOVC EOARMB R0 ; MOV R0 ECGARMB.X6 ; SETUP ALLOWED MISSING BID RANGE MOD R6 ; MOVC ECGAKA R4 ; MOVC ECGAK0 X4 ; PRESET ACK_ARRAY ADDC ECGALA-ECGAKA R4 ; MOVC ECGAL0 X4 ; PRESET ACKL_ARRAY MOV XGSTPR R5 ; MOV GSTTCC.X5 R0 ; MOD R0 ; LOOKUP CST ENTRY ADDRESSES ADDC GSTCDY-2 R5 ; OF THE TWO HIGHEST LOGICAL MOVL 0. X5 R01 ; NUMBERED CST ENTRIES MOVL R01 ECGCIM.X6 ; SETUP TD&M CST ENTRY POINTERS JMPI RL1055 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; CREATE ECR'S AT INITIALIZATION ; ; CALLED BY: ED1000 ; ; CALLS: NONE ; ; ENTRIES: ED1060 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R3 - DESTROYED ; R1,R2 - UNCHANGED ; R4 LINK DESTROYED ; R5 - GSTP (REL) ; R6,R7 - DESTROYED ;----------------------------------------------------------------------- ED1060: ; MOV R4 RL1060 ; MOV XGSTPR R5 ; GET RELATIVE GST POINTER MOV ECFPTR R6 ; GET RELATIVE ECF POINTER ADDC ECGSIZ-ECRSIZ R6 ; SET TO POINT AT 1ST ECR ; AFTER ADDING AT ED1062 MOV GSTNSE.X5 R0 ; NO. OF EDC CHANNELS (COUNTER) MOV R0 R3 ; ED1062: ; ADDC ECRSIZ R6 ; INCREMENT TO NEXT ECR MOV R6 R7 ; MOD XBASE ; ADDC ECRSIZ R7 ; GET LOC. OF FOLLOWING ECR MOV R7 ECCLNK.X6 ; SET LINK TO FOLLOWING ECR SOB R0 ED1062 ; CONTINUE TILL ECR LINKS DONE CLR ECCLNK.X6 ; SET LAST LINK TO ZERO ADD XBASE R6 ; ABS. LOC. OF LAST ECR MOV ECFPTR R4 ; MOD ECFPTA ; MOVC ECGSIZ R7 ; LOCATION OF 1ST ECR MOV R7 ECGFQH+QCFQE. X4 ; SET LOC. OF 1ST ECR IN QUEUE MOV R6 ECGFQH+QCLQE. X4 ; SET LOC. OF LAST ECR IN QUEUE MOV R3 ECGFQH+QCCQE. X4 ; SET NO. OF ECR'S IN QUEUE MOD ECFPTA ; MOVC ECGUQH+QCFQE R0 ; SET UP QCB FOR USED ECR'S MOV R0 ECGUQH+QCLQE. X4 ; JMPI RL1060 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; INITIALIZE LETTER DRIVEN PROCESS (EDL) ; ; CALLED BY: ED3000 ; ; CALLS: ED1050, ED1920, ED1950 ; ; ENTRIES: ED1100 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3 - DESTROYED ; R4 LINK DESTROYED ; R5,R6,R7 - DESTROYED ;----------------------------------------------------------------------- ED1100: ; MOV R4 RL1100 ; JMP S4 ED1050 ; INITIALIZE PROCESS DESCRIPTOR ;----------------------------------- ; CONSTRUCT AND SEND A LETTER ; TO RTC TO CAUSE PERIODIC ; ACTIVATION OF THE LETTER PROCESS ;----------------------------------- MON GLET ; GET A LETTER JMPI S4 EI1950 &;E NO LETTER - REPORT ERROR MOV R5 LETPTA ; MOV R5 R7 ; SUB XBASE R7 ; REL. POINTER TO LETTER MOVC EDCRTC R0 ; LETTER TYPE = EDCRTC MOVC RTCLPN R2 ; RECEIVER = RTC MOVC EDLLPN R3 ; SENDER = EDL MOV R0 LTTYP. X7 ; MOVL R23 LTRCV. X7 ; MOVC LTMST1 R0 ; MSG_TYPE=LTMST1 MOVC EOCRTE R1 ; TIME BETWEEN LETTERS MOV R0 LTMS1. X7 ; MOV R1 LTMS4. X7 ; MON SLET ; SEND THE LETTER JMPI S4 EI1920 &;E REPORT LETTER SENDING ERROR JMPI RL1100 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; GET POINTERS TO CST, CDT, ECR, DEPENDING ON ENTRY ; ; CALLED BY: ED1500, ED1510, ED8600, ED8610 ; ; CALLS: NONE ; ; ENTRIES: ED1200 GETS ALL POINTERS ; ED1201 GETS CDT AND ECR ONLY ; ; RETURNS: LINK - NO CDT OR NO ECR ; LINK+1 - DONE ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3,R5 - UNCHANGED ; R4 LINK DESTROYED ; R6 LCN ECRP (REL) ; R7 (CSTP (REL)) CSTP (REL) ;----------------------------------------------------------------------- ED1200: ; MOV XGSTPR R7 ; MOD R6 ; MOV GSTCDY.X7 R7 ; GET CST ADDR. FOR GIVEN LCN MOV R7 CSTPTA ; SAVE ABSOLUTE LOCATION SUB XBASE R7 ; MOV R7 CSTPTR ; SAVE RELATIVE CST LOCATION ED1201: ; MOV CSTCDT.X7 R6 ; GET CDT POINTER FROM CST IEQ R6 0 ; IF NO CDT EXISTS - THEN JMP 0. X4 ; RETURN TO LINK MOV R6 CDTPTA ; SAVE ABSOLUTE CDT POINTER SUB XBASE R6 ; MOV R6 CDTPTR ; SAVE RELATIVE CDT POINTER MOV CSTECR.X7 R6 ; GET ECR POINTER FROM CST IEQ R6 0 ; IF NO ECR EXISTS - THEN JMP 0. X4 ; RETURN TO LINK MOV R6 ECRPTA ; SAVE ABSOLUTE ECR POINTER SUB XBASE R6 ; MOV R6 ECRPTR ; SAVE RELATIVE ECR POINTER JMP 1. X4 ; RETURN TO LINK+1 ;----------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; ENABLE INTERRUPTS MOMENTARILY ; ; THIS SUBROUTINE IS ENTERRED FROM A VARIETY OF PLACES FOR THE ; PURPOSE OF OPENING A "WINDOW" FOR INTERRUPTS TO BE SERVICED. ; ; CALLED BY: ED2100, ED2200, ED2500, ED3340, ED3600 ; ; CALLS: NONE ; ; ENTRIES: ED1210 - RESERVES CPU INTERRUPT BEFORE ENABLING INTERRUPTS ; ED1212 - ENABLES INTERRUPTS ONLY ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0,R1,R5,R6 - UNCHANGED ; R2,R3,R7 - DESTROYED (ED1210 ENTRY ONLY) ; R4 LINK DESTROYED ;---------------------------------------------------------------------- ED1210: ; MON RCPU ; RESERVE CPU INTERRUPT ED1212: ; ENABLE WITHOUT RESERVE LDM 2#100 ; INT. WINDOW LDM 2#111 ; MODN R4 ; INTSTA<>IDLE CLR INTSTA.X4 ; JMP 0. X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ALLOCATE AN ECR ; ; AN EMPTY ECR IS ALLOCATED, I.E. REMOVED FROM THE LIST OF EMPTIES ; AND ADDED TO THE LIST OF THOSE IN USE. VARIOUS DATA WITHIN THE ECR ; AND ITS ASSOCIATED CST ARE INITIALIZED. ; ; CALLED BY: ED3350 ; ; CALLS: NONE ; ; ENTRIES: ED1220 ; ; RETURNS: LINK - NO ECR IN LIST OF EMPTIES ; LINK+1 - DONE ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3 - DESTROYED ; R4 LINK DESTROYED ; R5 - DESTROYED ; R6 - ECRP (REL) ; R7 - CSTP (REL) ;----------------------------------------------------------------------- ED1220: ; MOV R4 RL1220 ; ; 1. GET AN ECR MOD ECFPTA ; MOVC ECGFQH R4 ; PREPARE TO GET AN ECR FROM MOVC 1 R3 ; THE EMPTY LIST MON LNOQ ; DEQUEUE AN ECR FROM EMPTY LIST JMPI RL1220 &;E NO ECR - RETURN TO LINK SUB XBASE R6 ; MOV R5 ECRPTA ; STORE ABSOLUTE ECR ADDRESS MOV R6 ECRPTR ; STORE RELATIVE ECR ADDRESS MOD ECFPTA ; MOVC ECGUQH R4 ; MON QDLE ; QUEUE ECR ON THE USED LIST MOV CSTPTA R0 ; MOV CSTPTR R7 ; MOV ECRPTA R1 ; MOV R0 ECCCST.X6 ; SET POINTER TO CST IN ECR MOV R1 CSTECR.X7 ; SET POINTER TO ECR IN CST ; ; 2. INITIALIZE ECR COMMON SECTION MOV CSTCS1.X7 R0 ; IF CSTLAD NE 0 THEN SRL R0 CSTLAD FI XTR R0 CSTLAX ; MOV R0 ECCLCN.X6 ; SAVE LCN IN ECR MOVC ECCIQH R0 ; JMP S4 ED1224 ; INITIALIZE INPUT BIN QUEUE MOVC ECCAQH R0 ; JMP S4 ED1224 ; INITIALIZE ACK QUEUE MOVC ECCNQH R0 ; JMP S4 ED1224 ; INITIALIZE NAK QUEUE MOVC ECCALQH R0 ; JMP S4 ED1224 ; INITIALIZE ACKL QUEUE ; ; 3. INITIALIZE ECR INPUT SECTION MOVC 1<ECISCQ R0 ; MOV R0 ECIFLG.X6 ; SET SETBD COMMAND REQUIRED ; (ALL OTHER ECIFLG'S CLEAR) MOVC ECISAD R0 ; MOV R0 ECISBC.X6 ; SETUP_INPUT_ARRAY_DIMENTION ; ; 4. INITIALIZE ECR OUTPUT SECTION MOVC 1<ECOSCQ R0 ; MOV R0 ECOFLG.X6 ; SET SETBD COMMAND REQUIRED ; (ALL OTHER ECOFLG'S CLEAR) MOV RL1220 R4 ; JMP 1. X4 ; RETURN TO LINK+1 ;----------------------------------------------------------------------- ; LOCAL SUBROUTINE USED TO ; INITIALIZE QUEUES. ; R0 = QCB LOCATION ; R6 = ECRPTR ;----------------------------------- ED1224: ; MOVC 0 R3 ; MOV R6 R5 ; ADD R0 R5 ; ADD ECRPTA R0 ; MOV R3 QCFQE. X5 ; SET 1ST QUEUE ELEMENT TO ZERO MOV R0 QCLQE. X5 ; LST QUEUE ELE. = ADDR. OF 1ST MOV R3 QCCQE. X5 ; SET ELEMENT COUNT TO ZERO JMP 0. X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; OPEN THE OUTPUT AREA OF AN ECR ; ; THE OUTPUT SECTION OF AN ECR IS PREPARED FOR THE START OF OUTPUT. ; THE OUTPUT AREA AND STATUS ARRAYS ARE CLEARED AND VARIOUS FLAGS ; AND POINTERS ARE INITIALIZED. ; ; CALLED BY: ED3360 ; ; CALLS: NONE ; ; ENTRIES: ED1240 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0 BID DEST ; R1,R2,R5,R7 - UNCH ; R3 - DEST ; R4 LINK UNCH ; R6 ECRP(REL) UNCH ;---------------------------------------------------------------------- ED1240: ; MOV R0 EDWRK0 ; MOD ECRPTA ; MOVC ECOOFS R0 ; ABS. LOC. OF ECR OUTPUT AREA MOVC ECOCSZ R3 ; CLEAR OUTPUT PART OF ECR MON CLEAR ; MOD ECRPTA ; MOVC ECOSTA R0 ; ABS. LOC. OF OUTPUT STAT ARRAY MOVC 2*ECOASZ R3 ; MON CLEAR ; CLEAR ENTIRE ARRAY MOV EDWRK0 R0 ; XTR R0 EOCBDX ; MAKE SURE BID IS MODULO 128 MOV R0 ECOPSB.X6 ; INITIALIZE PREV. SEGMENT BID MOV R0 ECOFSB.X6 ; INITIALIZE 1ST SEGMENT BID MOV R0 ECOSSB.X6 ; INITIALIZE 2ND SEGMENT BID ADDC 1 R0 ; MOV R0 ECONIX.X6 ; INITIALIZE NXT ARRAY INDEX MOV R0 ECONTX.X6 ; INITIALIZE NXT TO XMIT BID ;----------------------------------- ; INITIALIZE OUTPUT FLAGS TO SHOW: ; SETBD MODE ; OUTPUT PROCESSING REQ'D ; ACK TIMEOUT ; ACKL TIMEOUT ;----------------------------------- MOVC 1<ECOSBM+1<ECOATO% ; +1<ECOALTO+1<ECOPCQ R0 ; MOV R0 ECOFLG.X6 ; JMP 0. X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; RELEASE DATA FROM QUEUES ; ; THIS SUBROUTINE HAS TWO ENTRIES. ED1251 RELEASES ALL DATA CONNECTED ; WITH ACK, NAK AND ACKL QUEUES. ED1250 DOES THE SAME AS ED1251 BUT IN ; ADDITION RELEASES DATA FROM THE INPUT BIN QUEUE. ; ; CALLED BY: ED3330,ED5300 ; ; CALLS: NONE ; ; ENTRIES: ED1250 - RELEASE DATA FROM ALL QUEUES ; ED1251 - RELEASE ALL INPUT GENERATED OUTPUT ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3 - DESTROYED ; R4 LINK DESTROYED ; R5,R6,R7 - DESTROYED ;----------------------------------------------------------------------- ED1250: ; MOV R4 RL1250 ; MOVC ECCIQH R4 ; JMP S6 ED1252 ; RELEASE INPUT BIN QUEUE JMP LOC+2 ; ED1251: ; BEGIN RELEASE OF OUTPUT DATA MOV R4 RL1250 ; MOVC ECCAQH R4 ; JMP S6 ED1252 ; RELEASE ACK QUEUE MOVC ECCNQH R4 ; JMP S6 ED1252 ; RELEASE NAK QUEUE MOVC ECCALQH R4 ; JMP S6 ED1252 ; RELEASE ACKL QUEUE JMPI RL1250 ; RETURN ;----------------------------------------------------------------------- ; LOCAL SUBROUTINE PERFORMS THE ; ACTUAL RELEASE. ;----------------------------------- ED1252: ; MOV R6 RL1252 ; MOVC 255 R3 ; ADD ECRPTA R4 ; MON LNOQ ; DEQUEUE ALL BINS NOP ; MON RNBN ; RELEASE ALL BINS JMPI RL1252 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; RELEASE OUTPUT DATA ; ; THIS ROUTINE IS USED TO RELEASE ALL OUTPUT DATA FOR A GIVEN ECR. ; ; CALLED BY: ED3340, ED3360, ED3600 ; ; CALLS: ED6520 ; ;ENTRIES: ED1260 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0,R1,R2,R3,R5,R7 - DESTROYED ; R4 LINK DESTROYED ; R6 ECRP (REL) ECRP (REL) ;----------------------------------------------------------------------- ED1260: ; MOV R4 RL1260 ; MOVC 0 R0 ; MOVC ECOSAZ R1 ; R1 = ARRAY SIZE = 32 JMPI S4 EI6520 ; CLEAN OUT STATUS ARRAY MOV ECOQCW.X6 R0 ; GET QUEUE CONTROL WORD IBN R0 ECOLTX ; IF BLOCK IS NOT AN LCB OR IBN R0 ECOLIT ; IF THE LCB IS IN TRANSMISSION JMP ED1262 ; THEN GO RELEASE DATA MOVC NT% ; (1<ECOLCP+1<ECOLTX) R0 ; AND R0 ECOQCW.X6 ; CLEAR ALL BUT LCB BITS INECOQCW MOVC 1 R3 ; MOV ECOLER.X6 R5 ; MON RNBN ; RELEASE LCB BLOCK ED1262: ; MOV CSTPTR R6 ; MON RODCST ; RELEASE OUTPUT DATA FROM CST MOV ECRPTR R6 ; BEGIN DISCARD MQO'S IN PROGRESS MOVC EOCTDC R0 ; I.E. MOV R0 ECOTQI0.X6 ; SET QUEUE TYPES TO "DISCARD" MOV R0 ECOTQI1.X6 ; JMPI RL1260 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; GET AN MQE ENTRY ; ; THIS SUBROUTINE IS CALLED TO ACCESS AN MQE ENTRY WHICH IS READY ; TO BE PROCESSED. THE FLAG AND STATUS WORDS ARE MOVED TO LOCAL ; STORAGE AND MQE TABLE BOOKKEEPING IS DONE. ; ; CALLED BY: ED2090 ; ; CALLS: ED19F1 ; ; ENTRIES: ED1390 ; ; RETURNS: LINK - NON-EDC MQE ; LINK+1 - EDC MQE ; LINK+2 - MQE TABLE EMPTY ; ; REGISTERS: ENTRY EXIT ; R0,R1,R2,R6 - DESTROYED ;R3,R5,R7 - UNCHANGED ; R4 LINK DESTROYED ;---------------------------------------------------------------------- ED1390: ; MOV R4 RL1390 ; MOV NMQEPT R6 ; GET NXT MQE RELATIVE ADDRESS MOVL MQEFLG.X6 R01 ; GET MQE FLAGS AND STATUS MOVC NT(1<MQEEND) R2 ; AND R0 R2 ; MASK OUT "MQE'S END" FLAG IEQ R2 0 ; IF REMAINING FLAGS = ZERO - THEN JMP 2. X4 ; TAKE "EMPTY" EXIT IBZ R0 MQEEDC ; IF NOT AN EDC MQE - THEN JMP ED1392 ; GO NOTIFY MXI ADDC 1 R4 ; SET UP "EDC MQE" EXIT IBZ X6 MQERDY ; IF MQE NOT READY TO PROCESS JMPI S4 EI19F1 ;E REPORT AN ERROR RELS X6 MQERDY ; CLEAR "READY TO PROCESS" FLAG MOV R0 CEFLG ; MOVE FLAGS AND STATUS TO MOV R1 CEEST ; LOCAL STORAGE JMP ED1394 ; ED1392: ; MOVC DAMXI R0 ; INT R0 ; *** TRIGGER MXI *** ED1394: ; IBZP X6 MQEHLD ; IF MXI HAS NOT SEEN THIS MQE SETS X6 MQEHLD ; SET "HANDLED ONCE" FLAG JMP ED1396 ; MOVC 1<MQEEND R0 ; CLEAR THE MQE - DONE WITH IT AND R0 MQEFLG.X6 ; ED1396: ; IBZP X6 MQEEND ; IF NOT END OF MQE'S - THEN ADDC MQEESZ R6 ; SET UP FOR NEXT MQE JMP LOC+2 ; ELSE MOV MQEPTR R6 ; USE START OF MQE'S AS NEXT MOV R6 NMQEPT ; JMP 0. X4 ; RETURN LINK+0/1 ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; GET AN MQI ENTRY ; ; THIS SUBROUTINE IS CALLED TO ACCESS THE NEXT MQI TABLE ENTRY WHICH ; IS READY TO BE PROCESSED. MQI ENTRY CONTENTS ARE MOVED TO LOCAL ; STORAGE AND MQI TABLE BOOKKEEPING IS DONE. ; ; CALLED BY: ED2100 ; ; CALLS: ED19F1 ; ; ENTRIES: ED1400 ; ; RETURNS: LIN5 - MQI TABLE EMPTY ; LINK+1 - NON-EDC MQI ; LINK+2 - DONE ; ; REGISTERS ENTRY EXIT ; R0,R2 - DESTROYED ; R1,R3,R5,R6 - UNCHANGED ; R4 LINK DESTROYED ; R7 - DESTROYED ;----------------------------------------------------------------------- ED1400: ; MOV R4 RL1400 ; MOV NMQIPT R4 ; GET NEXT MQI RELATIVE ADDRESS MOVL MQIFLG.X4 R01 ; GET FLAG AND STATUS WORDS MOVC NT 1<MQIEND R2 ; AND R0 R2 ; MASK OUT "END OF MQI'S" FLAG IEQ R2 0 ; IF OTHER FLAG BITS = ZERO THEN JMPI RL1400 ; TAKE THE EMPTY RETURN MOVC RL1400 R7 ; IBZP R0 MQIEDC ; IF A NON-EDC MQI - THEN INC 0. X7 ; SET FOR NON-EDC MQI RETURN JMP ED1401 ; GO DO BOOKKEEPING IBZ X4 MQIRDY ; IF MQI NOT READY TO PROCESS JMPI S4 EI19F1 ;E REPORT AN ERROR RELS X4 MQIRDY ; CLEAR "READY TO PROCESS" FLAG MOVC CIFLG R5 ; MODC MQIESZ ; MOVE MQI CONTENTS TO MOVM X4 X5 ; LOCAL STORAGE INC 0. X7 ; SET UP FOR "DONE" RETURN INC 0. X7 ; ED1401: ; MOV NMQIPT R4 ; IBN X4 MQIHLD ; IF MXI HAS SEEN THE MQI THEN JMP ED1403 ; GO CLEAN OUT THE MQI SETS X4 MQIHLD ; SET "HANDLED ONCE" FLAG IBNP R0 MQISYN ; IF SYNCH NON-EDC CHANNEL - THEN IBZ R0 MQIEDC ; JMP ED1402 ; GO TRIGGER MXI MOVC 1<MQIBML+1<MQISTC R2 ; AND R2 R1 ; INE R1 0 ; IF NO STUCK TAPE OR BIN MISLNK IBN R0 MQIEDC ; OR MQI IS EDC - THEN JMP ED1404 ; GO SET UP FOR NEXT MQI ED1402: ; MOVC DAMXI R0 ; *** TRIGGER MXI *** INT R0 ; JMP ED1404 ; ED1403: ; MOVC 1<MQIEND R0 ; CLEAR FLAGS EXCEPT "END OF MQI" AND R0 MQIFLG.X4 ; ED1404: ; IBZP X4 MQIEND ; IF NOT END OF MQI TABLE ADDC MQIESZ R4 &; SET UP FOR NEXT MQI JMP LOC+2 &; ELSE MOV MQIPTR R4 &; USE MQI TABLE START ADDRESS MOV R4 NMQIPT ; JMPI RL1400 ; RETURN(1/2) ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; GET AN MQO ENTRY ; ; CALLED BY: ED2200 ; ; CALLS: ED19F1 ; ; ENTRIES: ED1410 ; ; RETURNS: LINK - MQO TABLE EMPTY ; LINK+1 - NON-EDC MQO ; LINK+2 - DONE ; ; REGISTERS ENTRY EXIT ; R0,R2 - DESTROYED ; R1,R3,R5,R6 - UNCHANGED ; R4 LINK DESTROYED ; R7 - DESTROYED ;----------------------------------------------------------------------- ED1410: ; MOV R4 RL1410 ; MOV NMQOPT R4 ; GET NEXT MQO RELATIVE ADDRESS MOVL MQOFLG.X4 R01 ; GET FLAG AND STATUS WORDS MOVC NT 1<MQOEND R2 ; AND R0 R2 ; MASK OUT "END OF MQO'S" FLAG IEQ R2 0 ; IF OTHER FLAG BITS = ZERO - THEN JMPI RL1410 ; TAKE "EMPTY" RETURN MOVC RL1410 R7 ; IBZP R0 MQOEDC ; IF NON-EDC MQO - THEN INC 0. X7 ; SET UP "NON-EDC MQO" RETURN JMP ED1411 ; AND GO DO BOOKKEEPING IBZ X4 MQORDY ; IF MQO NOT READY TO PROCESS JMPI S4 EI19F1 ;E THEN REPORT AN ERROR RELS X4 MQORDY ; CLEAR "READY TO PROCESS" FLAG MOVC COFLG R5 ; MODC MQOESZ ; MOVM X4 X5 ; MOVE MQO TO LOCAL STORAGE INC 0. X7 ; SET UP "DONE" RETURN INC 0. X7 ; ED1411: ; MOV NMQOPT R4 ; IBN X4 MQOHLD ; IF MXI HAS SEEN THIS MQO - THEN JMP ED1413 ; GO CLEAN IT OUT SETS X4 MQOHLD ; SET "HANDLED ONCE" FLAG IBNP R0 MQOSYN ; IF A SYNCH NON-EDC CHANNEL THEN IBZ R0 MQOEDC ; JMP ED1412 ; GO TRIGGER MXI MOVC 1<MQOBML+1<MQOSER R2 ; AND R2 R1 ; INE R1 0 ; IF NO SEC. OR BIN LINK. ERRORS IBN R0 MQOEDC ; OR IT IS AN EDC MQO JMP ED1414 ; THEN GO SET U- NE0T M-O ADDRESS ED1412: ; MOVC DAMXI R0 ; *** TRIGGER MXI *** INT R0 ; JMP ED1414 ; ED1413: ; MOVC 1<MQOEND R0 ; CLEAR FLAGS EXCEPT "END OF MQO" AND R0 MQOFLG.X4 ; ED1414: ; IBZP X4 MQOEND ; IF NOT END OF MQO TABLE - THEN ADDC MQOESZ R4 &; SET UP FOR NEXT MQO JMP LOC+2 &; ELSE MOV MQOPTR R4 &; USE MQO START AS NEXT ADDRESS MOV R4 NMQOPT ; JMPI RL1410 ; RETURN(1/2) ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; UPDATE CSTVF1 ; ; THIS SUBROUTINE UPDATES CSTVF1 FROM STATUS BITS IN AN MQI. ; SETS "STATUS CHANGE" ; SETS "TRANSMIT OVERRUN" ; SETS "RECEIVE OVERRUN/INTERRUPT" ; IF "STATUS CHANGE" IS ON, THEN SEND AND RECEIVE STATUS ARE ADDED ; TO CSTVF1. IF THERE IS A MUX LINKAGE ERROR, CSTBML IS SET AND THE ; ERROR IS REPORTED. ; ; CALLED BY: ED1510 ; ; CALLS: ED19C0 ; ; ENTRIES: ED1450 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0 - DESTROYED ; R1,R2,R5,R6 - UNCHANGED ; R3 - BIN STATUS WORD ; R4 LINK DESTROYED ; R7 CSTP (REL) CSTP (REL) ;----------------------------------------------------------------------- ED1450: ; MOV CIEST R3 ; GET STATUS MOVC 1<CSTSCH+% ; 1<CSTTXO+1<CSTRXO R0 ; AND R3 R0 ; UNPACK 3 FLAGS SHOWN ABOVE IOR R0 CSTVF1.X7 ; PUT THEM IN CSTVF1 ADDC CSTVF1 R7 ; IBN R0 CSTSCH ; IF STATUS CHANGE IS ON - THEN MODC 1<CSTRCS+1<CSTSNS ; ADD SEND AND RECEIVE STATUS PUT R3 X7 ; TO CSTVF1 IBNP R3 CDIBML ; IF A BIN LINKAGE ERROR SETS X7 CSTBML ; THEN SET FLAG IN CSTVF1 JMPI S4 EI19C0 ;E AND REPORT THE ERROR ADDC -CSTVF1 R7 ; RESTORE R7 JMP 0. X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; UPDATE STATUS IN A BIN ; ; THIS SUBROUTINE CHECKS FOR A HALTED MESSAGE (VIA ED1470), STUCK TAPE ; OR INPUT OVERRUN. CORRESPONDING FLAGS ARE SET IN THE BIN STATUS WORD. ; IF ANY OF THE ABOVE ERRORS ARE FOUND THEN THE TERMINATION ERROR FLAG ; IS SET IN LOCAL STATUS (CIEST). ; ; CALLED BY: ED1510 ; ; CALLS: ED1470 ; ; ENTRIES: ED1460 ; ; RETURNS: LINK - BIN EMPTY ; LINK+1 - BIN NOT EMPTY OR HALTED MESSAGE OR STUCK TAPE ; ; REGISTERS ENTRY EXIT ; R0,R1 - DESTROYED ; R2 - BIN STATUS FLAGS ; R3 - DESTROYED ; R4 LINK DESTROYED ; R5 - BUFP (ABS) ; R6 - CSTP (REL) ; R7 - DESTROYED ;----------------------------------------------------------------------- ED1460: ; MOV R4 RL1460 ; MOV CIBUF R5 ; GET BIN ADDRESS MOV CSTPTR R6 ; JMP S4 ED1470 ; CHECK HALTED MS MODC 1<BINHMS &; HALTED MESSAGE DETECTED MOVC 0 R2 ; MOV R0 EDWRK0 ; SAVE CHAR. COUNT FROM ED1470 MOV CIEST R3 ; IBN R3 CDISTC ; IF STUCK TAPE DETECTED - THEN SETS R2 BINSTP ; SET STUCK TAPE FLAG IBNP R3 CDIINT ; IF OVERRUN DETECTED - THEN SETS R2 BINSTP ; SET STUCK TAPE AND SETS R2 BINHMS ; HALTED MESSAGE FLAGS MOV CIBUF R5 ; GET BIN ADDRESS MOVC BINSTA R0 ; GET STATUS POSITION IN A BIN MOVC BINIFM R1 ; GET BIT MASK MON PBUF ; PUT STATUS FLAGS IN THE BIN MOV EDWRK0 R0 ; MOV RL1460 R4 ; AND R2 R1 ; JON R1 ED1464 ; IF ERRORS FOUND GO SET TERM ERR IEQ R0 0 ; IF CHAR_COUNT=0 THEN JMP 0. X4 ; TAKE EMPTY BIN RETURN JMP 1. X4 ; RETURN(1) ED1464: ; MOVC CIEST R7 ; SETS X7 CDITME ; SET TERMINATION ERROR JMP 1. X4 ; RETURN(1) ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; CHECK FOR A HALTED MESSAGE (ED1470). OR ; RESET HALTED MESSAGE TIMER (ED1475) ; ; IF THE CHARACTER COUNT IS NON ZERO IT IMPLIES THAT THE MESSAGE IS ; NOT HALTED. IF THE COUNT IS ZERO THE TIME SINCE LAST FULL BIN IS ; CALCULATED. IF TIME CALCULATED IS LESS THAN THE HALTED MESSAGE TIME ; NO HALTED MESSAGE CAN BE ASSUMED. ; OTHERWISE THE HALTED MESSAGE EXIT IS TAKEN . ; ; CALLED BY: ED1460, ED5100, ED5200, ED5300 ; ; CALLS: NONE ; ; ENTRIES: ED1470 - CHECK FOR HALTED MESSAGE ; ; ED1475 - RESET HALTED MESSAGE TIMER ; ; REGISTERS: ENTRY EXIT ; R0 - COUNT ; R1 - DEST ; R2 - DEST ; R3 - DEST ; R4 LINK LINK ; R5 BUFP(ABS) BUFP(ABS) ; R7 - DEST ;----------------------------------------------------------------------- ED1470: ; MOV R4 RL1470 ; MON GBSM ; GET PAGE OF BIN MOV XBASE R1 ; SVS R2 ; SAVE CURRENT PAGE LDS R3 ; SET FOR BIN PAGE MODN R1 ; MOV BINSTA.X5 R0 ; GET STATUS WORD FROM BIN LDS R2 ; RESTORE CURRENT PAGE XTR R0 BINCNX ; UNPACK CHARACTER COUNT MOV RL1470 R4 ; INE R0 0 ; IF CHARACTER COUNT IS NON ZERO JMP 1. X4 ; TAKE MESSAGE OK RETURN MODN XBASE ; MOV ADCLK R3 ; MOV ECRPTR R7 ; MOV ECICLK.X7 R1 ; CALCULATE TIME ELAPSED SUB R1 R3 ; SINCE PREVIOUS DATA BUFFER. MOD ECFPTR ; MOV ECGHMT R1 ; ILO R3 R1 ; IF TIME<HALTED MS THEN JMP 1. X4 ; TAKE "OK" RETURN ED1475: ; MODN XBASE ; MOV ADCLK R1 ; MOD ECRPTR ; MOV R1 ECICLK ; RESET HALTED MESSAGE TIMER JMP 0. X4 ; RETURN TO LINK ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS STATUS FROM AN MQI ; ; THIS ROUTINE CHECK VALIDITY OF THE INPUT. ; IF THERE IS NO ECR OR IF THE CHANNEL IS NOT OPEN OR IF THE ; BIN IS EMPTY, THE INPUT BIN IS RELEASED (IF IT ISN'T THE DUMMY). ; WE SHOULD NEVER SEE THE DUMMY. ; THE ROUTINE UPDATES CSTVF1 VIA ED1450. ; THE ROUTINE WILL IGNORE A DUMMY BIN ON AN OPEN CHANNEL. ; A NEW BIN IS GIVEN TO THE MUX VIA MONITOR CALL XMIBUF. ; BIN STATUS IS UPDATED FROM THE MQI VIA ED1460. ; ; CALLED BY: ED1550 ; ; CALLS: ED1450, ED1460, ED1970, ED1200 ; ; ENTRIES: ED1510 ; ; RETURNS: LINK - NO BIN ; LINK+1 - DISCONNECTED BIN RELEASED ; LINK+2 - DISCONNECTED BIN IS READY TO PROCESS. ; ; REGISTERS ENTRY EXIT ; R0,R1,R2 - DESTROYED ; R3 - DESTROYED ; R4 LINK DESTROYED ; R5 - DESTROYED ; R6 LCN DESTROYED ; R7 - DESTROYED ;----------------------------------------------------------------------- ED1510: ; MOV R4 RL1510 ; JMP S4 ED1200 ; GET POINTERS TO CST, CDT AND ECR JMP ED1512 ; NO ECR - GO RELEASE BIN MOV CSTCS2.X7 R0 ; IBZ R0 CSTICO ; IF CHANNEL NOT OPEN - THEN JMP ED1512 ; GO RELEASE THE BIN JMP S4 ED1450 ; UPDATE CSTVF1 ; SETS R3 = BIN STATUS ON EXIT MOV CIBUF R5 ; GET BIN ADDRESS MOD GSTPTR ; MOV GSTDIB R4 ; GET DUMMY BIN ADDRESS INE R4 R5 ; IF BIN IS THE DUMMY OR IBZ R3 CDIBDS ; BIN NOT RELEASED BY MXP - THEN JMPI RL1510 ; TAKE "NO BIN" RETURN MON XMIBUF ; EXCHANGE MUX INPUT BINS JMP ED1514 &; NO FREE BIN TO GIVE MUX JMP ED1516 &; BIN SWITCHING ERROR JMP S4 ED1460 ; UPDATE BIN STATUS JMP ED1512 &; GO RELEASE EMPTY BIN MOV RL1510 R4 ; JMP 2. X4 ; BIN "READY" RETURN ED1512: ; MOV CIEST R3 ; GET MQI STATUS MOV CIBUF R5 ; GET BIN LOCATION MOD GSTPTR ; MOV GSTDIB R4 ; GET DUMMY BIN LOCATION INE R4 R5 ; IF BIN IS THE DUMMY OR IBZ R3 CDIBDS ; BIN NOT RELEASED BY MXP - THEN JMPI RL1510 ; TAKE "NO BIN" RETURN MOVC 1 R3 ; MOV R5 R6 ; MON RNBN ; RELEASE THE BIN MOV RL1510 R4 ; JMP 1. X4 ; TAKE "BIN RELEASED" RETURN ED1514: ; MOV CSTPTR R6 ; MOVC 1<CSTLAC R0 ; SET FLAG TO TELL MP THAT IOR R0 CSTVF1.X6 ; THERE ARE NO FREE BINS JMPI RL1510 ; TAKE "NO BIN" RETURN ED1516: ; JMP S4 ED1970 ;E REPORT BIN SWITCH ERROR JMPI RL1510 ; TAKE "NO BIN" RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS STATUS FROM AN MQO ; ; THIS ROUTINE CHECKS FOR A SECURITY OR BUFFER MISLINKAGE ERROR. ; IF EITHER ERROR IS FOUND AN ERROR BIT IS SET IN CSTVF1 AND THE ; ERROR IS REPORTED (ED19C0). ; ; CALLED BY: ED1560 ; ; CALLS: ED19C0, ED19D0 ; ; ENTRIES: ED1520 ; ; RETURNS: LINK - BLOCK INCOMPLETE ; LINK+1 - BLOCK COMPLETE ; ; REGISTERS ENTRY EXIT ; R0 - DESTROYED ; R1,R2,R5,R6 - UNCHANGED ; R3 - DESTROYED ; R4 LINK DESTROYED ; R7 - DESTROYED ;----------------------------------------------------------------------- ED1520: ; MOV R4 RL1520 ; MOV COEST R3 ; GET STATUS FROM MQO MOVC 1<CDOSER+1<CDOBML R0 ; CHK FOR SECURITY/MISLINK ERROR AND R3 R0 ; JON R0 ED1522 ; JUMP TO PROCESS ERROR IF FOUND MOVC 1<CDOEDS R0 ; AND R0 R3 ; INE R0 R3 ; IF BLOCK DISCONNECTED BY MXP JMP ED1524 ; THEN GO FLAG THE ERROR JMP 1. X4 ; "BLOCK COMPLETE" RETURN ED1522: ; MOV CSTPTR R7 ; MOVC 1<CSTMBE R0 ; IOR R0 CSTVF1.X7 ; SET ERROR IN CSTVF1 JMP S4 ED19C0 ;E REPORT THE ERROR ED1524: ; JMP S4 ED19D0 ;E REPORT BLK DISCONNECT ERROR JMPI RL1520 ; ;----------------------------------------------------------------------- ;FF\f ;---------------------------------------------------------------------- ; PROCESS AN MQE ; ; FOR AN INPUT OR OUTPUT MQE FOR WHICH THERE HAS BEEN AN INTERRUPT, ; ONLY AN LTU TIMEOUT CHECK IS MADE. FOR AN OUTPUT MQE WITH AN ; INTERRUPT, TRANSMISSION STATUS IS UPDATED BEFORE THE LTU TIMEOUT ; CHECK IS MADE. ; ; CALLED BY: ED2090 ; ; CALLS: ED1200 ; ; ENTRIES: ED1540 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0,R2,R3,R5 - UNCHANGED ; R1,R4,R6,R7 - DESTROYED ;---------------------------------------------------------------------- ED1540: ; MOV R4 RL1540 ; MOV CEEST R1 ; GET STATUS FROM MQE IBN R1 MQETYP ; IF AN INPUT MQE OR IBZ R1 MQEONT ; NO OUTPUT INTERRUPT - THEN JMP ED1544 ; GO CHECK LTU TIMEOUT MOV CEFLG R6 ; GET FLAG BITS FROM MQE SWP R6 ; XTR R6 MQELAX ; UNPACK LCN JMP S4 ED1200 ; GET CST, CDT, ECR POINTERS NOP ; ADDC ECOFLG R6 ; OUTPUT FLAG LOCATION IN ECR IBNP R1 MQEDIS ; IF OUTPUT DISABLED - THEN SETS X6 ECOTXO ; SET XMIT STATUS OFF JMP LOC+2 ; RELS X6 ECOTXO ; SET XMIT STATUS ON ED1544: ; MOV CSTPTR R6 ; IBN R1 MQELTO ; IF LTU TIMEOUT MON LTUTMO ; THEN PROCESS IT JMPI RL1540 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS AN MQI ; ; PROCESSES MQI STATUS VIA ED1510. IF A BIN DOESN'T EXIST, NO FURTHER ; WORK IS DONE. IF A BIN EXISTS IT IS QUEUED TO THE ECR'S INPUT QUEUE. ; IF A TERMINATION ERROR IS FOUND (IN ED1510) IT IS PROCESSED BY ED5700. ; IF AN END OF EDC BLOCK IS FOUND THEN THE TYPE AND BID ARE ; STORED LOCALLY. ; ; CALLED BY: ED2100 ; ; CALLS: ED1510, ED5700 ; ; ENTRIES: ED1550 ; ; RETURNS: LINK - EDC BLOCK INCOMPLETE ; LINK+1 - EDC BLOCK COMPLETE (END OF BLOCK FOUND) ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3 - DESTROYED ; R4 LINK DESTROYED ; R5,R6,R7 - DESTROYED ;----------------------------------------------------------------------- ED1550: ; MOV R4 RL1550 ; MOV CIFLG R6 ; GET FLAGS FROM MQI SWP R6 ; XTR R6 MQILAX ; UNPACK LCN JMP S4 ED1510 ; PROCESS MQI STATUS JMPI RL1550 &; NO BIN - "INCOMPLETE" RETURN JMP ED1551 &; BIN RELEASED - SKIP QUEUEING MOVC 1 R3 ; MOD ECRPTA ; MOVC ECCIQH R4 ; ADD THE INPUT BIN TO MOV CIBUF R5 ; THE INPUT BIN QUEUE WHICH MOV R5 R6 ; COLLECTS BINS INTO MON LNIQ ; EDC BLOCKS ED1551: ; MOV CIEST R0 ; IBN R0 CDITME ; IF A TERM. ERROR WAS FOUND THEN JMP ED1554 ; GO PROCESS IT IBZ R0 CDIBEB ; IF NOT END OF EDC BLOCK - THEN JMPI RL1550 ; TAKE "BLOCK INCOMPLETE" RETURN MOV CITAB R0 ; GET TYPE AND BID OF BLOCK MOV R0 R1 ; SWP R0 ; XTR R0 8 ; XTR R1 8 ; TYPE AND BID UNPACKED MOV R0 CITYPE ; SAVE TYPE LOCALLY MOV R1 CIBID ; SAVE BID LOCALLY MOV RL1550 R4 ; JMP 1. X4 ; TAKE "BLOCK COMPLETE" RETURN ED1554: ; JMPI S4 EI5700 ; GO PROCESS TERMINATION ERROR JMPI RL1550 ; TAKE "BLOCK INCOMPLETE" RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS AN MQO ; ; THIS SUBROUTINE IS CALLED TO PROCESS MQO'S. IT IS USED MAINLY ; AS AN ENTRY TO THE STATUS PROCESSING ROUTINE (ED1520). ; ; CALLED BY: ED2200 ; ; CALLS: ED1200, ED1520, ED1980 ; ; ENTRIES: ED1560 ; ; RETURNS: LINK - NO ECR OR BLOCK DISCONNECTED BY MXP ; LINK+1 - DONE ; ; REGISTERS ENTRY EXIT ; R0,R3,R7 - DESTROYED ; R1,R2,R5 - UNCHANGED ; R4 LINK DESTROYED ; R6 - ECRP (REL) ;----------------------------------------------------------------------- ED1560: ; MOV R4 RL1560 ; MOV COFLG R6 ; GET FLAGS FROM MQO SWP R6 ; XTR R6 MQOLAX ; UNPACK LCN JMP S4 ED1200 ; GET CST, CDT, ECR POINTERS JMP ED1562 ; NO ECR - GO REPORT ERROR JMP S4 ED1520 ; PROCESS MQO STATUS JMPI RL1560 &; TAKE "BLOCK DISCONNECTED" RETURN MOV RL1560 R4 ; JMP 1. X4 ; TAKE "DONE" RETURN ED1562: ; JMP S4 ED1980 ;E REPORT "NO ECR" ERROR JMPI RL1560 ; ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ACTIVATE A TRANSMISSION QUEUE ; ; THE ENTRY CHOSEN DETERMINES THE QUEUE TO BE ACTIVATED. ; ; CALLED BY: ED4100, ED4200, ED4910, ED4920, ED4930, ED4950, ED5400 ; ED7060, ED7070, ED7080 ; ; CALLS: NONE ; ; ENTRIES: ED1600 - DATA QUEUE ; ED1601 - ACK QUEUE ; ED1602 - NAK QUEUE ; ED1603 - ACKL QUEUE ; ED1604 - LCB QUEUE ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0 - DESTROYED ; R1,R2,R3,R5,R7 - UNCHANGED ; R4 LINK LINK ; R6 ECRP (REL) ECRP (REL) ;----------------------------------------------------------------------- ED1600: MODC 1<ECODTP-1<ECOAKP ; ED1601: MODC 1<ECOAKP-1<ECONKP ; ED1602: MODC 1<ECONKP-1<ECOALP ; ED1603: MODC 1<ECOALP-1<ECOLCP ; ED1604: MOVC 1<ECOLCP R0 ; IOR R0 ECOQCW.X6 ; SET REQUIRED BIT IN THE ; OUTPUT QUEUE CONTROL WORD IBZ R0 ECODTP ; IBN R0 ECOLCP ; FOR DATA OR LCB ALSO SET ECOOEP MODC 1<ECOOEP ; SET OUTPUT FLAGS TO TRIGGER MOVC 1<ECOEBP+1<ECOPCQ R0 ; PROPER PROCESSING IOR R0 ECOFLG.X6 ; JMP 0. X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS AN EDC MQO ; ; THIS ROUTINE DOES FINAL PROCESSING OF AN EDC BLOCK FOR WHICH AN MQO ; HAS BEEN RECEIVED. ; ; CALLED BY: ED2200, ED3340 ; ; CALLS: ED7110, ED7120, ED7130, ED7140, ED7150, ED7160, ED7170, ED7190 ; THE ABOVE ARE ALL CALLED VIA A TABLE (ED0500) IN EDC. ; ; ENTRIES: ED1650 ; ; RETURNS: LINK ; ; REGISTERS: ENTRY EXIT ; R0,R1,R2,R5,R7 - DESTROYED ; R3 EBR(MQO) DESTROYED ; R4 LINK DESTROYED ; R6 ECRP (REL) DESTROYED ;----------------------------------------------------------------------- ED1650: ; MOV R4 RL1650 ; IOZ ECOOSW.X6 ; MOVL ECOTQI0.X6 R01 ; GET PROPER XMIT QUEUE DATA ION ECOOSW.X6 ; MOVL ECOTQI1.X6 R01 ; INV ECOOSW.X6 ; SWITCH TRANSMIT QUEUES DEC ECOTEC.X6 ; REDUCE EDC BLOCK XMIT COUNT MOVC 1<ECOPCQ R2 ; IOR R2 ECOFLG.X6 ; SET "PROCESSING REQ'D" FLAG MOD R0 ; USE XMIT QUEUE I.D. TO GET TO JMPI S4 ED0500 ; PROCESSING PGM (VIA ED0500) JMPI RL1650 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; REPORT ERRORS VIA CSTVF4 ; ; CALLED BY: ED2100, ED4400, ED7086 THRU ED7098, ED7380 ; ; CALLS: NONE ; ; ENTRIES: ED1800 ; ; RETURNS: LINK - UNRECOVERABLE ERROR ; LINK+1 - RECOVERABLE ERROR ; ; REGISTERS ENTRY EXIT ; R0 ERROR CODE ERROR CODE (SHIFTED) ; R1,R2,R3,R5 - UNCHANGED ; R4 LINK LINK ; R6 - DESTROYED ; R7 - CSTP (REL) ;----------------------------------------------------------------------- ED1800: ; MOV CSTPTR R7 ; GET RELATIVE CST POINTER SLL R0 EECECX ; POSITION ERROR CODE ADDC CSTVF4 R7 ; MOD8 #FF ; TO STORE ERROR CODE PUT R0 X7 ; MOV CSTPTR R7 ; SET R7 FOR EXIT ; IBZ R0 EECURE ; IF ERROR IS RECOVERABLE - THEN JMP 1. X4 ; TAKE "RECOVERABLE" RETURN MOV ECRPTR R6 ; ED1804: ; MOVC 1<ECOSCQ+1<ECOATO+% ; SET "SETBD REQ'D" PLUS BOTH 1<ECOALTO R0 ; "TIME-OUTS OCCURRED" IN IOR R0 ECOFLG.X6 ; THE OUTPUT FLAG JMP 0. X4 ; TAKE "UNRECOVERABLE" RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; GROSS ERROR HANDLING ; ; THIS ROUTINE IS ENTERRED FOR ERRORS WHICH QUESTION THE INTEGRITY ; OF THE SOFTWARE. THE ERROR REPORTED DEPENDS ON THE PARTICULAR ; ENTRY POINT. ALL ERRORS ARE REPORTED VIA MON ERR. CURRENT DESIGN ; OF MON ERR DOES NOT INCLUDE A RETURN TO THE CALLER. IT IS A SYSTEM ; HALT. THEREFORE THIS ROUTINE DOES NOT RETURN DESPITE THE CODING. ; ; CALLED BY: NUMEROUS ROUTINES AND SUBROUTINES ; ; CALLS: NONE ; ; ENTRIES: SHOWN BELOW IN CODE ; ; RETURNS: NONE ; ; REGISTERS: SINCE THIS ROUTINE HAS NO ENTRY PARAMETERS AND DOES NOT ; RETURN, REGISTER CONTENTS ARE UNIMPORTANT. ;----------------------------------------------------------------------- ED1900: MODC GSTCPF - GSTCPE ; ERROR0 (GENERAL CP ERROR) ED1910: MODC GSTCPE - GSTLME ; ERROR1 (CREATE PROCESS): ED1920: MODC GSTLME - GSTUXS ; ERROR2 (LETTER MECHANISM): ED1930: MODC GSTUXS - GSTLTE ; ERROR3 (UNEXPECTED SENDER): ED1940: MODC GSTLTE - GSTNLT ; ERROR4 (LETTER TYPE ERROR): ED1950: MODC GSTNLT - GSTNBF ; ERROR5 (NO LETTER): ED1960: MODC GSTNBF - GSTNNE ; ERROR6 (NO BUFFER): ED1970: MODC GSTNNE - GSTNEC ; ERROR7 (NO NEXT BUFFER): ED1980: MODC GSTNEC - GSTCPF ; ERROR8 (NO ECR FOUND): ED1990: MODC GSTCPF - GSTCRF ; ERROR9 (GENERAL CP FAULT): ED19A0: MODC GSTCRF - GSTFLE ; ERRORA (CDT RESERVATION FAULT): ED19B0: MODC GSTFLE - GSTOSE ; ERRORB (FIFO LPN ERROR): ED19C0: MODC GSTOSE - GSTMDE ; ERRORC (MUX OUTPUT SECURITY): ED19D0: MODC GSTMDE - GSTEBM ; ERRORD (MUX BUF DISC ERROR): ED19E0: MODC GSTEBM - GSTUTQ ; ERRORE (EB-BIN MISMATCH): ED19F0: MODC GSTUTQ - GSTMOF ; ERRORF (UNDEFINED TX QUEUE): ED19F1: MOVC GSTMOF R0 ; ERRORF1(MMQ OVERFLOW): MOV R0 XLICC ; XLICC:=CAUSE MOV R4 XLIRP ; XLIRP:=RETURN MON ERR ;E CALL ONLINE ERROR PROCESSING JMP 0. X4 ; NOT EXECUTED ;---------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; INTERRUPT DRIVEN MAIN PROGRAM INITIALIZATION ; ;----------------------------------------------------------------------- ED2000: ; JMP S4 ED1000 ; INITIALIZE INTERRUPT PROCESS MOVC EDILPN R3 ; MOV XBASE R4 ; GET BASE OF INTERRUPT PROCESS MON CRP ; CREATE INTERRUPT PROCESS JMP S4 ED1910 &;E CREATION ERROR - REPORT MON RCPU ; RESERVE_CPU_INTERRUPT MON RTI ; RETURN TO INITIATOR (DBA) ;----------------------------------------------------------------------- ; THE FIRST INTERRUPT WILL START ; THE PROGRAM HERE. ;----------------------------------- MOVC PBEXPR R0 ; MON INQ ; LINK PROCESS INTO EXPRESS QUEUE JMPI S4 EI1990 ;E REPORT QUEUE LINKAGE ERROR ;----------------------------------------------------------------------- ; ; START INTERRUPT_SERVICE HERE. ; ; THIS IS THE MAIN LINE OF CODE USED BY THE INTERRUPT PROCESS. ALL ; INTERRUPT RELATED ACTIVITIES ARE CONTROLLED FROM HERE. ; ;----------------------------------------------------------------------- ED2050: ; MOVC PCIDLE R0 ; MOV R0 INTSTA ; SET "IDLE" FLAG TO "IDLE" ; IF ANY WORK IS DONE THIS FLAG ; WILL BE CLEARED. WHEN THE PROC- ; CESSING LOOP IS COMPLETE THE ; FLAG IS TESTED. IF IT'S ZERO ; THE CYCLE WILL BE RESTARTED ; HERE. THIS CAUSES THE PROCESS ; TO RUN TILL THERE IS ABSOLUTELY ; NO MORE WORK TO DO. ;---------------------------------------------------------------------- ; ; BEGIN MQE SERVICE ; ; ALL AVAILABLE MQE'S ARE SCANNED FOR SERVICE UNTIL THEY ARE EXHAUSTED. ; ONLY THEN ARE MQI'S (ED2100) ADDRESSED. ; ;----------------------------------------------------------------------- ED2090: ; JMP S4 ED1390 ; GET AN MQE JMP ED2090 ; X0: NON_EDC_MQE JMP S4 ED1540 & ; X1: EDC_MQE JMP ED2100 ; X2: END MQE_SERVICE ;----------------------------------------------------------------------- ; ; BEGIN MQI SERVICE ; ; ALL AVAILABLE MQI'S ARE SCANNED FOR SERVICE UNTIL THEY ARE EXHAUSTED. ; ONLY THEN ARE MQO'S (ED2200) ADDRESSED. ; ;----------------------------------------------------------------------- ED2100: ; JMP S4 ED1400 ; GET AN MQI JMP ED2190 &; X0: NO MQI'S JMP ED2100 &; X1: GOTO_REPEAT (NON-EDC MQI) ; X2: EDC MQI FOUND JMP S4 ED1550 ; INITIAL MQI PROCESSING JMP ED2100 &; X0: REPEAT BLOCK INCOMPLETE ; X1: EDC BLOCK COMPLETE ;----------------------------------------------------------------------- ; WHEN WE GET HERE A COMPLETE EDC ; BLOCK HAS BEEN RECEIVED ;----------------------------------- MOV ECRPTR R6 ; THIS CODE PREPARES FOR ENTRY TO MOV ECCIQH.X6 R1 ; MON EDITST. EDITST IS THE MOV CIEST R3 ; HOOK USED BY THE TEST DRIVE MOV CIBID R4 ; SYSTEM TO ALTER EDC INPUTS. MOV CITYPE R5 ; THE DATA IN REGISTERS ARE MOV CSTPTR R6 ; PROVIDED TO THE TDS FOR POSSIBLE MON EDITST ;TC MODIFICATION. JMP ED2150 &; TDS SAYS DISCARD THE BLOCK MOV R3 CIEST ; RESTORE DATA POSSIBLY MOV R4 CIBID ; MODIFIED BY THE TDS. MOV R5 CITYPE ; MOV CSTCS7.X6 R0 ; IBNP R0 CSTEMM ; IF EDC MONITORING IS ON - THEN MON EDCTMI ;TM TAKE CARE OF INPUT MONITORING JMPI S4 EI1960 &;E REPORT MONITORING ERROR MOV CITYPE R0 ; GET BLOCK TYPE IBN R0 BIT7 ; IF TYPE PARITY ERROR - THEN JMP ED2130 ; REPORT PARITY ERROR ADDC -<:A:> R0 ; IHS R0 <:K:>-<:A:>+1 ; IF TYPE IS UNDEFINED - THEN JMP ED2140 ; REPORT RANGE ERROR MOV ECRPTR R6 ; MOD R0 ; USE TYPE TO INDEX PROPER JMPI S4 ED0300 ; PROCESSING ROUTINE JMP S4 ED1210 ;I OPEN INTERRUPT WINDOW JMP ED2100 ; GET NEXT MQI ;----------------------------------- ; PARITY AND RANGE ERRORS ARE ; REPORTED AND THE BLOCK IS ; DISCARDED. ;----------------------------------- ED2130: ; MODC EEC030-EEC031 ; TYPE PARITY ERROR ED2140: ; MOVC EEC031 R0 ; TYPE RANGE ERROR JMP S4 ED1800 ;E REPORT THE ERROR NOP ; ED2150: ; READY TO RELEASE THE EDC BLOCK MOVC 1000 R3 ; MOD ECRPTA ; MOVC ECCIQH R4 ; MON LNOQ ; DEQUEUE BLOCK FROM INPUT BIN QUE NOP ; MON RNBN ; RELEASE BLOCK TO FREE BIN POOL JMP ED2100 ; GET NEXT MQI ED2190: ; END MQI_SERVICE. ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; BEGIN MQO SERVICE ; ; ALL AVAILABLE MQO'S ARE SCANNED FOR SERVICE UNTIL THEY ARE EXHAUSTED. ; ONLY THEN ARE PROCESSING REQUESTS (ED2500) ADDRESSED. ; ;----------------------------------------------------------------------- ED2200: ; JMP S4 ED1410 ; GET AN MQO JMP ED2290 &; X0: GOTO END_MQO_SERVICE JMP ED2200 &; X1: GOTO REPEAT (NON-EDC MQO) ; X2: EDC MQO FOUND JMP S4 ED1560 ; MQO STATUS PROCESSING JMP ED2200 &; X0: MQO N.G. - GET NEXT ONE ; X1: STATUS OK MOV ECRPTR R6 ; GET ECR POINTER MOV COBUF R3 ; GET EDC BLOCK POINTER JMP S4 ED1650 ; FINAL MQO PROCESSING JMP S4 ED1210 ;I OPEN INTERRUPT WINDOW JMP ED2200 ; GET NEXT MQO ED2290: ; ;----------------------------------------------------------------------- ; ; PROCESS REQUEST HANDLING ; ; IN ORDER TO REDUCE THE TIME REQUIRED TO CYCLE THE MQO TABLE, SOME ; PROCESSING IS PUT OFF UNTIL NOW. EACH ECR IS CHECKED TO SEE IF ; ADDITIONAL PROCESSING WAS REQUESTED WHEN THE MQO'S WERE BEING CHECKED. ; ;----------------------------------------------------------------------- ED2500: ; MOV ECFPTR R5 ; MOV ECGUQH+QCFQE.X5 R6 ; GET ADDRESS OF 1ST USED ECR MOV ECGUQH+QCCQE.X5 R0 ; GET NUMBER OF USED ECR'S IEQ R0 0 ; IF NO USED ECR'S - THEN JMP ED2590 ; THERE IS NO WORK TO DO ED2502: ; MOV R0 LOOPCT ; SAVE LOOP COUNT SUB XBASE R6 ; RELATIVIZE ECR ADDRESS MOV ECOFLG.X6 R0 ; GET THE ECR'S OUTPUT FLAGS IBZ R0 ECOPCQ ; IF NO PROCESSING NEEDED - THEN JMP ED2504 ; GO GET NEXT ECR MOVC NT(1<ECOPCQ) R0 ; AND R0 ECOFLG.X6 ; CLEAR "PROCESSING REQ'D" FLAG MOV ECCLCN.X6 R6 ; GET ECR'S LCN JMP S4 ED1200 ; GET CST, CDT POINTERS JMPI S4 EI1980 ; POINTER MISSING - REPORT ERROR JMPI S4 EI7290 ; DO REQUIRED PROCESSING JMP S4 ED1210 ;I OPEN INTERRUPT WINDOW JMP ED2500 ; RESTART PROCESSING LOOP. THIS ; MAKES SURE THAT ALL PROCESSING ; IS DONE WHEN THE ROUTINE EXITS. ;---------------------------------- ED2504: ; MOV ECCFLK.X6 R6 ; GET NEXT ECR IN THE CHAIN MOV LOOPCT R0 ; SOB R0 ED2502 ; DECREMENT LOOP CTR AND CONTINUE ; WHILE PROCESSING REQUIRED. ED2590: ; MOV INTSTA R0 ; INE R0 PCIDLE ; IF ANY WORK WAS DONE - THEN JMP ED2050 ; GO CHECK ONE MORE TIME ;----------------------------------------------------------------------- ; ; RESERVE CPU INTERRUPT ; ; AT THE COMPLETION OF THE PROCESSING CYCLE THE CPU INTERRUPT IS ; RESERVED TO ENABLE THE NEXT CYCLE. EDC RETURNS FROM INTERRUPT AND ; WAITS FOR THE NEXT CPU INTERRUPT TO START A NEW CYCLE. ; ;----------------------------------------------------------------------- ED2900: ; LDM 2#111 ; DISABLE_INTERRUPTS MON RCPU ; RESERVE_CPU_INTERRUPT MON RFI ; RETURN_FROM_INTERRUPT JMPI S4 EI1990 ;E REPORT INVALID PROCESS I.D. ERR JMP ED2050 ; NEW INTERRUPT STARTS HERE ;----------------------------------------------------------------------- ; ; LOCAL INTERRUPT SERVICE. ; ;----------------------------------------------------------------------- ED2990: ; MOV XLIRP R4 ; MON ERR &;E CALL ONLINE ERROR PROCESSING ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; THIS IS THE MAIN LINE CODE USED BY THE LETTER DRIVEN PROCESS. ALL ; LETTER RELATED PROCESSING IS CONTROLLED FROM HERE. ; ;----------------------------------------------------------------------- ; ; LETTER DRIVEN MAIN PROGRAM INITIALIZATION ; ;----------------------------------------------------------------------- ED3000: ; JMP S4 ED1100 ; INIT. LETTER PROCESS BASE AREA MOVC EDLLPN R3 ; PROCESS NO. FOR EDL MOV XBASE R4 ; GET ABS. BASE OF EDL MON CRP ; CREATE EDL PROCESS JMP S4 ED1910 &;E REPORT CREATION ERROR MON RTI ; RETURN FROM INITIALIZATION ;----------------------------------------------------------------------- ; ; WAIT FOR A LETTER HERE ; ;----------------------------------------------------------------------- ED3100: ; MON WL ; WAIT HERE MOV R5 LETPTA ; SAVE ABS. ADDRESS OF LETTER MOV R7 LETPTR ; SAVE REL. ADDRESS OF LETTER MOV LTRCV. X7 R0 ; GET LETTER SENDER - MONITOR PUTS ; SENDER IN RECEIVER POSITION MOV LETPTR R7 ; IEQP R0 RTCLPN ; IF SENDER = REAL TIME CLOCK JMP S4 ED3200 ; THEN PROCESS RTC LETTER JMP ED3110 ; IEQP R0 CMILPN ; IF SENDER IS CMI - THEN JMP S4 ED3300 ; PROCESS CMI LETTER JMP ED3110 ; IEQP R0 TQMLPN ; IF SENDER = TIME QUEUE MONITOR JMPI S4 EI3500 ; PROCESS TQM LETTER JMP ED3110 ; IEQP R0 ODPLPN ; IF SENDER IS ODP - THEN JMPI S4 EI3600 ; PROCESS ODP LETTER JMP ED3110 ; JMP S4 ED1930 ; REPORT UNEXPECTED SENDER ED3110: ; RETURN FROM LETTER PROCESSOR JMP ED3100 ; GO WAIT FOR NEXT LETTER ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS_RTC_LETTER ; ; THIS ROUTINE PROCESSES LETTERS FROM THE REAL TIME CLOCK EVERY 100 MS. ; IT CONTROLLS THE THROTTLING STATE AND MAKES SURE THAT THE INTERRUPT ; PROCESS (EDI) IS ACTIVATED AT LEAST EVERY 100 MS. ; ; CALLED BY: ED3100 ; ; CALLS: ED4300, ED1920, ED1940 ; ; ENTRIES: ED3200 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3,R5,R6 - DESTROYED ; R4 LINK DESTROYED ; R7 LETP (REL) DESTROYED ;----------------------------------------------------------------------- ED3200: ; MOV R4 RL3200 ; MOV LTMS1. X7 R4 ; GET MESSAGE TYPE INE R4 LTMST1 ; IF MESSAGE TYPE NOT 1 - THEN JMP ED3208 ; IT'S AN ERROR MON GSST ; GET NO. OF VACANT SECTORS IN R0 MOV ECFPTR R4 ; GET POINTERS TO ECF AND GST MOV XGSTPR R5 ; MOV ECGFLG.X4 R1 ; GET GLOBAL ECF FLAGS IBN R1 ECGTHR ; IF THROTTLING IS ON - THEN JMP ED3202 ; GO CHECK ITS STATUS ;---------------------------------- ; THROTTLING IS NOT ON ;---------------------------------- MOV GSTTL1.X5 R2 ; GET LOWER THROTTLING LIMIT SLT R0 R2 ; IF NO. VACANT SECTORS > LIMIT JMP ED3204 ; THEN ALL OK - SEND LETTER TO RTC SETS R1 ECGTHR ; SET THROTTLING FLAG ON MOVC CCBCT2 R2 ; GET 10 SEC. BUFFER CONN. TIME MOVC TRUE R3 ; FOR GST THROTTLING FLAG JMP ED3203 ; ;----------------------------------- ; THROTTLING IS ON ;----------------------------------- ED3202: ; MOV GSTTL2.X5 R2 ; GET UPPER THROTTLING LIMIT ILT R0 R2 ; IF NO. VACANT SECTORS < LIMIT JMP ED3204 ; THEN LEAVE THROTTLING ALONE MOVC ECGTHR R2 ; CLRS R1 R2 ; CLEAR ECF THROTTLING FLAG MOVC CCBCT1 R2 ; GET .8 SEC. CONNECT TIME MOVC FALSE R3 ; FOR GST THROTTLING FLAG ED3203: ; MOV R1 ECGFLG.X4 ; STORE ECF THROTTLING FLAG MOV R3 GSTTHR.X5 ; STORE GST THROTTLING FLAG MOD GSTPCF.X5 ; MODN XBASE ; MOV R2 PCPBCT ; SET CONNECT TIME FOR MXP JMPI S4 EI4300 ; PROCESS_MP_ACK ED3204: ; MOV LETPTA R5 ; MOVC EOCRTE R0 ; GET 100 MS TIME TILL NEXT LETTER MODN XBASE ; MOV R0 LTMS4. X5 ; PUT 100 MS TIME IN RTC LETTER MON SLET ; SEND LETTER TO RTC JMP S4 ED1920 &;E REPORT LETTER HANDLING ERROR CPU ; *** TRIGGER EDI PROCESS *** JMPI RL3200 ; RETURN ED3208: ; JMP S4 ED1940 ;E REPORT MESSAGE TYPE ERROR JMPI RL3200 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS_CMI_LETTER ; ; THIS ROUTINE PROCESSES LETTERS FROM CMI WHICH RELATE TO COMMANDS ; RECEIVED FROM THE MP. ; ; CALLED BY: ED3100 ; ; CALLS: ED3310, ED3320, ED3330, ED3340, ED3350, ED3360, ED3370, ; ED3380, ED4300, ED1920, ED3430, ED3410, ED1201, ED6420 ; ; ENTRIES: ED3300 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3,R5,R6 - DESTROYED ; R4 LINK DESTROYED ; R7 LETP DESTROYED ;----------------------------------------------------------------------- ED3300: ; MOV R4 RL3300 ; MOVL LTMS1. X7 R01 ; GET MESS. TYPE AND SUB-COM. LOC. MOV R1 R5 ; INE R0 LTMST1 ; IF MESSAGE TYPE NOT 1 - THEN JMP ED3306 ; GO CHECK FOR 2 SUB XBASE R5 ; RELATIVIZE SUB-COMMAND LOC. MOVL OCSCTS.X5 R01 ; R0 = SC TYPE, R1 = PAD/LAD XTR R0 OCSCTX ; MOV R0 CSCTYP ; UNPACK AND STORE TYPE MOV R1 CSCPLA ; STORE PAD AND LAD SWP R1 ; XTR R1 CSTLAX ; UNPACK LAD (LCN) MON GETCST ; GET CST LOC. FOR THE LCN JMPI S4 EI3430 &;V REPORT ERROR FINDING CST MOV R4 CSTPTA ; SAVE CST LOC. MOV R6 CSTPTR ; MOV CSCTYP R0 ; GET SUBCOMMAND TYPE IEQP R0 OCS5 ; IF TYPE IS 5 - THEN JMP S4 ED3350 ; GO DO CHANNEL SETUP JMP ED3303 ; AND RETURN LETTER TO CMI MOV CSTCS6.X6 R0 ; MOVC 1<CSTTST+% ; UNPACK TEST, SYNCH AND EDC FLAGS 1<CSTSYN+1<CSTEDC R3 ; AND R0 R3 ; INE R3 1<CSTSYN+1<CSTEDC ; IF LCN IN TEST OR NOT SYNCH EDC JMPI S4 EI3410 ;V THEN REPORT A VIOLATION MOV R6 R7 ; JMP S4 ED1201 ; GET CDT AND ECR POINTERS JMPI S4 EI3410 ;E NO POINTERS - REPORT VIOLATION MOV CSCTYP R0 ; INEP R0 OCS1 ; IF SC TYPE = 1 OR 2 - THEN INE R0 OCS2 ; JMP ED3301 ; JMP S4 ED3310 ; OPEN INPUT AND JMP S4 ED3320 ; OPEN OUTPUT JMP ED3303 ; GO RETURN LETTER TO CMI ED3301: ; INEP R0 OCS3 ; IF SC TYPE = 3 OR 4 - THEN INE R0 OCS4 ; JMP ED3302 ; JMP S4 ED3330 ; CLOSE INPUT AND JMP S4 ED3340 ; CLOSE OUTPUT JMPI S4 EI6420 ; DEACTIVATE ACK TIME OUT JMPI S4 EI6440 ; DEACTIVATE ACKL TIME OUT JMP ED3303 ; RETURN LETTER TO CMI ED3302: ; IEQP R0 OCS12 ; IF SC TYPE = 12 - THEN JMP S4 ED3360 ; GENERATE A SETBD JMP ED3303 ; AND RETURN LETTER TO CMI INE R0 OCS13 ; TEST FOR START /STOP OF IEQP R0 OCS14 ; NORMAL MONITORING JMP S4 ED3370 ; GO PROCESS NORMAL MONITORING JMP ED3303 ; AND RETURN CMI LETTER INE R0 OCS15 ; TEST FOR START/STOP OF IEQP R0 OCS16 ; EDC MONITORING JMP S4 ED3380 ; GO PROCESS EDC MONITORING JMP ED3303 ; AND RETURN CMI LETTER JMPI S4 EI3410 ; BAD SC TYPE - REPORT VIOLATION ED3303: ; MOVC 0 R0 ; SET COMMAND COMPLETE CODE ;----------------------------------- ; THIS ROUTINE IS ; ENTERED FROM ED3400 ALSO ;----------------------------------- ED3304: ; MOV LETPTA R5 ; MODN XBASE ; MOV R0 LTMS4. X5 ; STORE COMPLETION CODE IN LETTER MON SLET ; SEND LETTER BACK TO CMI JMPI S4 EI1920 &;E REPORT LETTER HANDLING ERROR JMPI RL3300 ; RETURN ;----------------------------------------------------------------------- ED3306: ; INE R0 LTMST2 ; IF MSG TYPE NOT = 2 - THEN JMP ED3308 ; GO REPORT THE ERROR MOV LETPTR R7 ; CLR LTMS4. X7 ; JMPI S4 EI4300 ; PROCESS MP ACKS JMPI RL3300 ; ED3308: ; JMP S4 ED1940 ;E REPORT BAD LETTER TYPE JMPI RL3300 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; SUB-COMMAND_HANDLING_PROCEDURES. ; ; CALLED BY: ED3300 ; ; CALLS: ED1240, ED1250, ED1260, ED1210, ED1650, ED3410 ; ; ENTRIES: ED3310 - OPEN INPUT ; ED3320 - OPEN OUTPUT ; ED3330 - CLOSE INPUT ; ED3340 - CLOSE OUTPUT ; ED3350 - SET UP CHANNEL ; ED3360 - SETBD HANDLING ; ED3370 - START/STOP NORMAL MONITORING ; ED3380 - START/STOP EDC MONITORING ; ; RETURNS: LINK - COMPLETE ; ED3410 - VIOLATION DETECTED ; ; REGISTERS ENTRY EXIT ; R0 SC_TYPE SC_TYPE ; R1,R2,R3,R5,R6,R7 - DESTROYED ; R4 LINK DESTROYED ;----------------------------------------------------------------------- ; ED3310: ; BEGIN OPEN_INPUT ;---------------------------------- MOV R4 RL3310 ; MOV CSTPTR R6 ; MOV CSTCS2.X6 R0 ; IBZ R0 CSTCSU ; IF CHANNEL NOT SET UP - THEN JMP S4 ED3410 ;V REPORT VIOLATION IBN R0 CSTICO ; IF CHANNEL ALREADY OPEN - THEN JMP 0. X4 ; EXIT - DONE MON OEICDT ; OPEN_EDC_INPUT_CDT JMP S4 ED3410 ;V CDT OPENING ERROR - VIOLATION MOV CSTPTR R6 ; MON PIPCST ; PRESET_IDP_CST_PARAMETERS MOVC 1<CSTICO R0 ; IOR R0 CSTCS2.X6 ; SET "INPUT CHANNEL OPEN" FLAG MON BEQCST ; PUT CHANNEL IN BAUD RATE QUEUE JMPI RL3310 ; ;----------------------------------------------------------------------- ED3320: ; BEGIN OPEN_OUTPUT ;---------------------------------- MOV R4 RL3310 ; MOV CSTPTR R6 ; MOV CSTCS2.X6 R0 ; IBZ R0 CSTCSU ; IF CHANNEL NOT SET UP - THEN JMP S4 ED3410 ;V REPORT A VIOLATION IBN R0 CSTOCO ; IF CHANNEL ALREADY OPEN - THEN JMP 0. X4 ; EXIT - DONE MON OEOCDT ; OPEN_EDC_OUTPUT_CDT(CDTP) JMP S4 ED3410 &;V CDT OPEN ERROR - VIOLATION MOV CSTPTR R6 ; MOVC 1<CSTOCO R0 ; IOR R0 CSTCS2.X6 ; SET OUTPUT CHANNEL OPEN MOV ECRPTR R6 ; MOVC 1<ECOSCQ+1<ECOALTO+% ; SET "SETBD REQ'D", "ACK TIMEOUT" 1<ECOATO R0 ; "ACKL TIMEOUT" MOV R0 ECOFLG.X6 ; IN ECR'S OUTPUT FLAG CPU ; ***TRIGGER INTERRUPT PROCESS*** JMPI RL3310 ; RETURN ;----------------------------------------------------------------------- ED3330: ; BEGIN CLOSE_INPUT ;---------------------------------- MOV R4 RL3310 ; MOV CSTPTR R6 ; MOV CSTCS2.X6 R0 ; IBZ R0 CSTICO ; IF CHANNEL ALREADY CLOSED - THEN JMP 0. X4 ; EXIT - DONE MOVC NT 1<CSTICO R0 ; AND R0 CSTCS2.X6 ; SET CHANNEL CLOSED FOR INPUT MON CGICDT ; CLOSE_GENERAL_INPUT_CDT NOP ; MOV CSTPTR R6 ; MON BDQCST ; REMOVE CST FROM BAUD RATE QUEUE MOV ECRPTR R6 ; JMP S4 ED1250 ; RELEASE_ECC_INPUT_DATA. ; JMPI S4 EI5600 ; RELEASE_ECI_DATA. ; JMPI RL3310 ; RETURN ;----------------------------------------------------------------------- ED3340: ; BEGIN CLOSE_OUTPUT ;---------------------------------- MOV R4 RL3310 ; MOV CSTPTR R6 ; MOV CSTCS2.X6 R0 ; IBZ R0 CSTOCO ; IF CHANNEL ALREADY CLOSED - THEN JMP 0. X4 ; EXIT - DONE MOVC NT 1<CSTOCO R0 ; AND R0 CSTCS2.X6 ; SET OUTPUT CHANNEL CLOSED MOV ECRPTR R6 ; JMP S4 ED1260 ; RELEASE_OUTPUT_DATA. ED3342: ; UNTIL CTD_CLOSED DO MOV CSTPTR R6 ; MON CEOCDT ; CLOSE_GENERAL_OUTPUT_CDT. JMPI S4 EI19A0 ;E X0: RESERVATION ERROR. JMP ED3344 ; X1: EB RETREIVED FROM CDT ; AND CDT NOT CLOSED. ; GOTO SIM_MQO. ; (R3:=EB_REF.) JMP ED3346 ; X2: CDT CLOSED,AWAIT_OUT- ; STANDING MQO'S. ED3344: ; MOV ECRPTR R6 ; BEGIN SIM_MQO. MOV ECOTEC.X6 R0 ; GET OUTPUT BLOCK COUNT ILT R0 2 ; IF < 2 OUTSTANDING BLOCKS THEN JMP ED3345 ; GO HANDLE 0 OR 1 PSEUDO MQO'S INV ECOISW.X6 ; SIM THE LAST MQO,I.E. INV ECOOSW.X6 ; SWITCH OOSW/OISW ED3345: ; JMPI S4 EI1650 ; PROCESS THE EDC BLOCK JMP ED3342 ; GO TRY CLOSING AGAIN ED3346: ; MON RODCST ; RELEASE_OUTPUT_DATA_CST. JMP S4 ED1251 ; RELEASE_ECC_OUTPUT_DATA. MOV ECRPTR R6 ; ED3348: ; WAIT TILL ALL MQO'S REC'D IOZ ECOTEC.X6 ; IF NO OUTSTANDING BLOCKS - THEN JMP ED3349 ; EXIT CPU ; ***TRIGGER INTERRUPT PROCESS*** JMP S4 ED1212 ; OPEN INTERRUPT WINDOW JMP ED3348 ; KEEP WAITING ED3349: ; JMPI RL3310 ; RETURN ;----------------------------------------------------------------------- ED3350: ; BEGIN SETUP_CHANNEL ;---------------------------------- MOV R4 RL3310 ; SAVE RETURN LINK MOV CSTPTR R6 ; GET CST POINTER MON PRGCST ; PROGRAM CST JMP & S4 ED3430 ;V OPEN CST RETURN MON DECR ; DEALLOCATE ECR JMP & S4 ED3410 ;E OPEN/BAD RETURN NOP ; NONE WAS ALLOCATED MON DCDT ; DEALLOCATE POSSIBLE CDT JMP & S4 ED3410 ;E OPEN CDT RETURN NOP ; NO ONE ALLOCATED MON CKPCST ; CHECK PROGRAMMING JMP & S4 ED3430 ;V WRONG CONTENTS RETURN MON PGPCST ; PRESET CST PARAMETERS MOV CSTCS1.X6 R3 ; IF CSTPAD NE 0 THEN SRL R3 CSTPAD FI XTR R3 CSTPAX ; GET PAD(CS1) ED3352: SIO R0 R3 ; CHECK, THAT LTU EXISTS MON CHKLTU ; CHECK LTU TYPE JMP & S4 ED3430 ;V WRONG TYPE MON PRGLTU ; PROGRAM LTU ED3354: ; NO LTU RETURN - CONTINUE: MON ACDT ; ALLOCATE CDT JMP & S4 ED3410 ;E GOT AN OPEN ONE JMP & S4 ED3430 ;V NONE AVAILABLE MON PGPCDT ; PRESET GENERAL CDT PARAMETERS JMP & S4 ED3410 ;E NOT RESERVABLE MON PEPCDT ; PRESET SYNC EDC CDT JMP & S4 ED3410 ;E NOT RESERVABLE JMP S4 ED1220 ; ALLOCATE ECR JMP & S4 ED3430 ;V NONE AVAILABLE MOV R6 R0 ; ADDC CSTCS2 R0 ; SETS X0 CSTCSU ; DECLARE CHANNEL SETUP JMPI RL3310 ; RETURN ;---------------------------------------------------------------------- ED3360: ; BEGIN SETB_SC_HANDLING. ;---------------------------------- MOV R4 RL3310 ; MOV CSTPTR R6 ; MOV CSTCS2.X6 R3 ; MOVC 1<CSTICO+1<CSTOCO R0 ; AND R0 R3 ; INE R0 R3 ; IF CHANNEL NOT OPEN - THEN JMP S4 ED3430 ; REPORT A VIOLATION MOV ECRPTR R6 ; JMP S4 ED1260 ; RELEASE_OUTPUT_DATA JMPI S4 EI6420 ; DEACTIVATE ACK TIMEOUT JMPI S4 EI6440 ; DEACTIVATE ACKL TIMEOUT MOV ECONIX.X6 R0 ; JMP S4 ED1240 ; PREPARE ECR OUTPUT AREA MOD CSTPTR ; MOVC CSTVF4 R7 ; GET CSTVF4 LOCATION SETS X7 EECSRA ; SET SETBD COMMAND IN PROGRESS CPU ; ***TRIGGER INTERRUPT PROCESS*** JMPI RL3310 ; RETURN ;----------------------------------------------------------------------- ; ED3370: ; BEGIN START/STOP NORMAL MONITORING ;----------------------------------- MOV CSTPTR R6 ; ADDC CSTCS7 R6 ; MOVC CSTNMM R2 ; CLRS X6 R2 ; CLEAR CSTNMM (STOP) BUT IEQ R0 OCS13 ; IF ITS START SETS X6 CSTNMM ; THEN TURN CSTNMM ON JMP X4 ; RETURN ;----------------------------------------------------------------------- ; ED3380: ; BEGIN START/STOP EDC MONITORING ;----------------------------------- MOV CSTPTR R6 ; ADDC CSTCS7 R6 ; SETS X6 CSTEMM ; SET CSTEMM (START) INE R0 OCS16 ; IF SC NOT STOP - THEN JMP X4 ; RETURN FROM START MOV R4 RL3380 ; SAVE RETURN LINK ;----------------------------------- ; PROCESS STOP EDC MONITORING ;----------------------------------- MOVC CSTEMM R2 ; CLRS X6 R2 ; CLEAR CSTEMM (STOP) MOV XGSTPR R6 ; MOV GSTECF.X6 R6 ; SUB XBASE R6 ; REL. LOCATION OF ECF IN R6 MOV ECGCIM.X6 R5 ; REL. LOC. OF CST THAT SUB XBASE R5 ; IS USED FOR INPUT MONITORING MOV CSTIP2.X5 R7 ; SBZ R7 CSTISA ; IF A SECTOR IS ALLOCATED THEN JMP S4 ED3383 ; QUEUE IT FOR THE MP MOV XGSTPR R6 ; MOV GSTECF.X6 R6 ; SUB XBASE R6 ; REL. LOCATION OF ECF IN R6 MOV ECGCOM.X6 R5 ; REL. LOCATION OF CST THAT SUB XBASE R5 ; IS USED FOR OUTPUT MONITORING MOV CSTIP2.X5 R7 ; SBZ R7 CSTISA ; IF A SECTOR IS ALLOCATED THEN JMP S4 ED3383 ; QUEUE IT FOR THE MP JMPI RL3380 ; RETURN ED3383: ; SVS R3 ; SAVE PSW LDM 2#111 ; DISABLE INTERRUPTS MOV R5 XHWRK6 ; PUT CSTPTR IN EDCQMS WORK AREA MON EDCQMS ; QUEUE THE MESSAGE SECTOR LDS R3 ; RESTORE PSW JMP X4 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; SUBCOMMAND ERROR HANDLING ; ; CALLED BY: ED3310, ED3320, ED3350, ED3360 ; ; CALLS: NONE ; ; ENTRIES: ED3410 - CP ERROR ; ED3420 - SUBCOMMAND ERROR ; ED3430 - ATTEMPTED VIOLATION ; ; RETURNS: ED3304 - SUBCOMMAND COMPLETION ; ; REGISTERS ENTRY EXIT ; R0 - CMC ; R1 - DESTROYED ; R2,R3,R7 - UNCHANGED ; R4 LINK DESTROYED ; R5 - GSTP (REL) ; R6 - CSTP (REL) ;----------------------------------------------------------------------- ED3410: MODC CMCCPE-CMCCME ; CP ERROR ED3420: MODC CMCCME-CMCATV ; SUBCOMMAND ERROR ED3430: MOVC CMCATV R0 ; ATTEMPTED VIOLATION MOVC 1<CSTSUE R1 ; MOV CSTPTR R6 ; IOR R1 CSTVF1.X6 ; SET ERROR BITS IN CSTVF1 MOV XGSTPR R5 ; MOV R4 GSTSBR.X5 ; SAVE ERROR DETECTION ADDR IN GST JMP ED3304 ; GOTO SC_COMPLETION. ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS_TQM_LETTERS ; ; TIME QUEUE MONITOR LETTERS ARE RECEIVED WHEN TIMEOUTS EXPIRE. THE ; TIMEOUTS IN QUESTION ARE THE ACK AND ACKL TIMEOUTS. ; ; CALLED BY: ED3100 ; ; CALLS: ED1200, ED1604 ; ; ENTRIES: ED3500 ; ; RETURNS: DONE ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3,R5,R6 - DESTROYED ; R4 LINK DESTROYED ; R7 LETP (REL) DESTROYED ;----------------------------------------------------------------------- ED3500: ; MOV R4 RL3500 ; MOV R7 LETPTR ; SAVE POINTER TO TQM LETTER MOV LETPTR R7 ; MOV LTMS1. X7 R4 ; INE R4 LTMST0 ; IF MSG TYPE IS NOT 0 - THEN JMP ED3506 ; GO RELEASE THE LETTER MOV LTMS4. X7 R6 ; GET LCN AND FLAGS MOV R6 R3 ; XTR R6 CSTLAX ; UNPACK LCN JMPI S4 EI1200 ; GET CST, CDT AND ECR FOR LCN JMP ED3506 &; NO ECR - GO RELEASE LETTER MOV ECOFLG.X6 R0 ; GET OUTPUT FLAGS FOR THE LCN SETS R0 ECOPCQ ; SET "PROCESSING REQ'D" FLAG IBZ R3 EOCLTF ; IF ACKL TIMEOUT NOT ON - THEN JMP ED3502 ; GO CHECK ACK TIMEOUT IONP ECOXLT.X6 ; IF ACKL CTR NOT ZERO THEN DEC ECOXLT.X6 ; DECREMENT IT AND JMP ED3506 ; EXIT IBZ R0 ECOPALT ; IF NO PENDING ACKL TIMEOUT THEN JMP ED3506 ; EXIT MOVC ECOPALT R1 ; CLRS R0 R1 ; CLEAR PENDING ACKL TIMEOUT MOV ECOLCT.X6 R1 ; GET LCB COUNT ILT R1 EOCLCL ; IF LCB COUNT < LCB LIMIT - THEN JMP ED3501 ; GO SET TIMEOUT MOVC EEC10C R0 ; JMPI S4 EI1800 ; REPORT LCB COUNT EXCESS NOP ; JMP ED3506 ; EXIT ED3501: ; SETS R0 ECOALTO ; SET "ACKL TIMEOUT" FLAG MOV R0 ECOFLG.X6 ; JMPI S4 EI1604 ; ACTIVATE LCB OUTPUT QUEUE JMP ED3504 ; GO TRIGGER INTERRUPT PROCESS ED3502: ; IBZ R3 EOCATF ; IF ACK TIMEOUT NOT ON - THEN JMP ED3506 ; EXIT IONP ECOXAT.X6 ; IF ACK COUNTER NON ZER - THEN DEC ECOXAT.X6 ; DECREMENT IT AND JMP ED3506 ; EXIT IBZP R0 ECOPAT1 ; IF NO PENDING ACK TIMEOUTS THEN IBZ R0 ECOPAT2 ; JMP ED3506 ; EXIT SETS R0 ECOATO ; SET ACK TIMEOUT ON MOVC NT% ; (1<ECOPAT1+1<ECOPAT2) R1 ; CLEAR PENDING ACK TIMEOUT FLAGS AND R1 R0 ; MOV R0 ECOFLG.X6 ; ED3504: ; CPU ;I ***TRIGGER INTERRUPT PROCESS*** ED3506: ; MOV LETPTA R5 ; MON RLET ; RELEASE THE LETTER JMPI RL3500 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; PROCESS_ODP_LETTERS ; ; THIS ROUTINE PROCESSES LETTERS FROM ODP WHICH DEAL WITH ; PRE-EMPTION, INITIATION OF OUTPUT OR CHANNEL CLOSING. ; ; CALLED BY: ED3100 ; ; CALLS: ED1200, ED1212, ED1260, ED7200, ED3330, ED6420, ED6440, ; ED1980, ED1920 ; ; ENTRIES: ED3600 ; ; RETURNS: LINK ; ; REGISTERS ENTRY EXIT ; R0,R1,R2,R3,R5,R6 - DESTROYED ; R4 LINK DESTROYED ; R7 LETP (REL) DESTROYED ;----------------------------------------------------------------------- ED3600: ; MOV R4 RL3600 ; MOV R7 LETPTR ; MOV LETPTR R7 ; MOV LTMS1. X7 R4 ; INE R4 LTMST1 ; IF MSG TYPE IS NOT 1 - THEN JMP ED3610 ; GO CHECK PRE-EMPTION MOV ECFPTR R5 ; MOV ECGUQH.X5 R6 ; GET TOP OF USED ECR QUEUE MOV ECGUQH+% ; QCCQE. X5 R0 ; GET NO. OF USED ECR'S IEQ R0 0 ; IF NO ECR'S THEN JMP ED3606 ; EXIT ED3602: ; MOV R0 LOOPCT ; CYCLE USED ECR'S MOV R6 ECRPTA ; SUB XBASE R6 ; MOV ECCCST.X6 R7 ; GET ABS. CST PTR FROM ECR MOV R7 CSTPTA ; SUB XBASE R7 ; RELATIVIZE CST POINTER IOZ QCCQE+CSTOBQ.X7 ; IF OUTPUT BIN QUEUE EMPTY - THEN JMP ED3604 ; GO CHECK NEXT CHANNEL MOD R6 ; MOVC ECOFLG R5 ; GET ADDRESS OF OUTPUT FLAGS RELS X5 ECOEMP ; SET OUTPUT BIN QUEUE NOT EMPTY MOV R6 ECRPTR ; SAVE POINTERS MOV R7 CSTPTR ; IBZP X5 ECOSCQ ; IF NOT IN SETBD MODE - THEN JMPI S4 EI7200 ; GO DO SOME OUTPUT JMP ED3604 ; THEN GET NEXT CHANNEL MOV CSTPTR R6 ; MON RODCST ; RELEASE CST OUTPUT DATA MOV ECRPTR R6 ; ED3604: ; CPU ; ***TRIGGER INTERRUPT PROCESS*** JMP S4 ED1212 ;I OPEN INTERRUPT WINDOW MOV ECCFLK.X6 R6 ; GET LINK TO NEXT ECR MOV LOOPCT R0 ; SOB R0 ED3602 ; PROCESS NEXT ECR UNLESS DONE ED3606: ; CLEAR_FLAG: MOV LETPTA R5 ; MODN XBASE ; CLR LTMS4. X5 ; JMPI RL3600 ; RETURN ;----------------------------------------------------------------------- ; PRE-EMPTION ED3610: ;----------------------------------- INE R4 LTMST2 ; IF MSG TYPE NOT 2 - THEN JMP ED3620 ; GO CHECK CHANNEL CLOSING MOV LTMS3. X7 R6 ; SWP R6 ; XTR R6 CSTLAX ; UNPACK LCN JMPI S4 EI1200 ; GET CST, CDT, ECR POINTERS JMPI S4 EI1980 &;E NO ECR - REPORT ERROR MOV CSTPTR R6 ; CLR CSTNOC.X6 ; CLEAR O/P CHAR. COUNT MOV ECRPTR R6 ; JMP S4 ED1260 ; RELEASE OUTPUT DATA MOVC 1<ECOSCQ+1<ECOATO+% ; 1<ECOALTO R0 ; IOR R0 ECOFLG.X6 ; SET FLAGS AS IF JUST OPENED MOV LETPTR R7 ; MOVC CMILPN R0 ; MOV R0 LTRCV. X7 ; LETTER RECEIVER = CMI CLR LTMS4. X7 ; MOV LETPTA R5 ; MON SLET ; SEND LETTER TO CMI JMPI S4 EI1920 &;E REPORT LETTER HANDLING ERROR JMPI RL3600 ; RETURN ;----------------------------------------------------------------------- ; REQUEST TO CLOSE CHANNEL ED3620: ;----------------------------------- INE R4 LTMST3 ; IF MSG TYPE NOT 3 - THEN JMP ED3630 ; REPORT MESSAGE TYPE ERROR MOV LTMS3. X7 R6 ; SWP R6 ; XTR R6 CSTLAX ; UNPACK LCN JMPI S4 EI1200 ; GET CST, CDT, ECR POINTERS JMP ED3624 ; NO ECR - RETURN JMP S4 ED3330 ; CLOSE INPUT JMP S4 ED3340 ; CLOSE OUTPUT JMPI S4 EI6420 ; DEACTIVATE ACK TIMEOUT JMPI S4 EI6440 ; DEACTIVATE ACKL TIMEOUT ED3624: ; MOV LETPTA R5 ; MON SLET ; RETURN THE LETTER JMPI S4 EI1920 ;E REPORT LETTER HANDLING ERROR JMPI RL3600 ; RETURN ED3630: ; JMPI S4 EI1940 &;E REPORT LETTER TYPE ERROR MOV LETPTA R5 ; MON RLET ; RELEASE LETTER JMPI RL3600 ; RETURN ;----------------------------------------------------------------------- ;FF\f ;----------------------------------------------------------------------- ; ; LOCAL INTERRUPT SERVICE ; ; THE ONLY LEGAL ENTRY TO THIS ROUTINE IS AS A RESULT OF AN LTU ; TIMEOUT WHEN STATUS IS READ DURING PROCESSING OF A SETUP SUBCOMMAND ; ;----------------------------------------------------------------------- ED3990: ; MOV XLIRP R4 ; GET RETURN ADDRESS MOV XLICC R0 ; GET INTERRUPT CAUSE SNE R4 ED3352 ; IF NOT TIMEOUT ON SIO INSTR. INE R0 TIMEOUT ; ADDR. THEN MON ERR ; CALL MON ERR ELSE SVS R7 ; MOVC NT #1800 R3 ; CLEAR LOCAL INTERRUPT AND AND R3 R7 ; TIMEOUT BITS LDS R7 ; IN PSW MOVC 0 R3 ; MOV R3 XLICC ; CLEAR LOCAL INTERRUPT CAUSE JMP ED3354 ; SKIP LTU PROGRAMMING ;----------------------------------------------------------------------- ; ; EXTERNAL NAMES. ; ;----------------------------------------------------------------------- BEGIN EXTERNAL ED1251,ED1475,ED1200 EXTERNAL ED1600,ED1601,ED1602,ED1603,ED1604,ED1800 EXTERNAL ED1900,ED1910,ED1920,ED1930,ED1940,ED1950,ED1960,ED1970 EXTERNAL ED1980,ED1990,ED19A0,ED19B0,ED19C0,ED19D0,ED19E0,ED19F0 EXTERNAL ED2000,ED2990,ED3000,ED3990 EXTERNAL ED19F1,ED3410,ED3420,ED3430,ED3500,ED3600 NAMES END ;----------------------------------------------------------------------- ; ; END OF EDC MAIN PROGRAM SECTION. ; ;----------------------------------------------------------------------- END «eof»