DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 75648 (0x12780) Types: TextFile Notes: UNREAD_DATA_SECTOR Names: »MXIMRG«
└─⟦9d718387b⟧ Bits:30005557 8" CR80 Floppy CR80FD_0058 ( NICS TARE COMMUNICATIONS PROCESSOR 780126 NIC/210/version 01.01 MXI FR WORK ) └─⟦b3aaefac6⟧ └─ ⟦this⟧ »CP.MXIMRG«
LIST ;======================================================================= ; CARD DECK IDENTIFICATION NUMBER: CR/C/0106 ; MODULE IDENTIFICATION: NIC/210 ; VERSION: 0301 ; DATED: 780321/FR,HQH ; ; OPERATIONAL SUBMODULE MULTIPLEXER CPU INTERFACE (MXI) ; ; THE MXI SUBMODULE CONSISTS OF TWO PROCESSES BOTH OF WHICH RUN ; MASKED WHILE UPDATING THEIR RESPECTIVE CDT/CST-RECORDS. ; ; . A CPU-INTERRUPT-DRIVEN ; THE PURPOSE OF THE CPU INTERRUPT DRIVEN PROCESS IS TO SERVE THE ; MUX-CPU GENERATED CPU INTERRUPTS REQUESTING THE COM-CPU TO SERVE ; THE BY THE MUX-CPU CREATED MQI/MQO'S (MESSAGE QUEUES) THROUGH ; WHICH SUPPLYING AND REMOVAL OF BINS FOR THE MUX IS CONTROLLED. ; THE MXI WILL SERVE THE MUX WITH EMPTY BINS FOR INPUT DATA AND ; FULL BINS FOR OUTPUT DATA. THE DIFFERENT STATUS CHANGES REPORTED ; BY THE MUX WILL BE TRANSFERRED TO THE CST FOR LATER RETRIEVAL. ; ; . A LETTER-DRIVEN ; THE PURPOSE OF THE LETTER DRIVEN PART OF THE MXI IS TO HANDLE ; THE LTU RELATED SUBCOMMANDS ISSUED TO THE CMI SUBMODULE, I.E. ; THE SETUP, OPENING, AND CLOSING OF CHANNELS AS WELL AS PART OF ; THE PRE-EMPTION. ; LETTERS ARE DISPATCHED TO THIS SUBMODULE FROM ; . COMMAND INTERPRETER SUBMODULE ; . OUTPUT DATA PROCESSING SUBMODULE ; ; N B THE MUX PSW MUST (AND WILL BE) 2#011 ; ; N O T E IN ORDER FOR THE CPU INTERRUPT DRIVEN PROCESS TO SERVE ; THE MQI/MQO'S SENT FROM THE MUX-CPU PROPERLY IT WILL HAVE ; TO RUN AT A HIGHER (S/W) PRIORITY LEVEL THAN THE LETTER ; DRIVEN PROCESS. ; ; THE SYNCHRONEOUS EDC BLOCK PROTOCOL IS NOT IMPLEMENTED. ; ;======================================================================= BEGIN MODULE SYSMXI PMASK= #C413, CMASK= #9413 MXIOLTO:= TRUE ; SWITCH TO INCLUDE OLTO TEST POINTS USE BASE LOC=0 NOLIST ; ; AU000038 0 0014 LEVEL 1 NAMES: PRIBML= #0002 DEVMAX= #0100 USE BASE IPT:= #0000 MONBAS:= #0011 FSBAS:= #0012 SYSESS:= #0080 SYSGST:= #0005 RESCPU:= #0013 ICP:= #0004 OLTOBS:= #0010 TODEV:= #0006 TMASK:= #0007 CPUIVT:= #0008 USE #0 ; ; AU000072 0 5800 LEVEL 1 NAMES: XT= #0016 USE BASE SYSMPI:= #16E7 A:= #000C OCILPN:= #00F0 ICPLPN:= #0018 SYSERR:= #0A07 IDPLPN:= #006C CRILPN:= #00C0 TSTLPN:= #00FC SYSGO:= #04D7 SYSCPT:= #4800 SYSNUE:= #11A7 SYSMON:= #04F7 SYSRTC:= #0E47 SYSOLO:= #0EE7 ESGLPN:= #000C LPDLPN:= #00CC SYSMXI:= #1927 ODPLPN:= #009C LPILPN:= #00D8 SYSDBA:= #11A7 MPILPN:= #0078 SYSLMT:= #0020 ERRLPN:= #0024 MXCLPN:= #0090 MONLPN:= #0000 RTCLPN:= #0048 PWFLPN:= #003C MXILPN:= #0084 SYSSMT:= #0009 SYSTSM:= #3FF7 DBALPN:= #0060 LTLLPN:= #0030 SYSOCD:= #4657 SYSEND:= #57FF SYSMUX:= #3AE7 SYSCMI:= #1DE7 SYSCRD:= #4317 SYSICP:= #09C7 SYSPEG:= #F000 SYSIDP:= #22E7 TSMLPN:= #00A8 SYSPMB:= #57FF SYSESG:= #0E07 SYSLPD:= #4517 OCDLPN:= #00E4 SYSODP:= #33E7 SYSOPE:= #3C67 CMILPN:= #0054 CRDLPN:= #00B4 USE #0 ; ; AU001260 0 001C LEVEL 1 NAMES: PRESP2= #0006 CSTMAC= #0043 MQIECT= #0080 BINCXO= #0004 CMCATV= #00E0 CSTPAC= #0031 FLASH= #0001 CSTPTS= #0038 CSTCPB= #003D MSCACX= #0008 IDLE= #FFFF CSTMSX= #002F CDPSTC= #001B CSTHMC= #003B CSTOSX= #0003 MQITYX= #0008 MQIBIX= #0008 FS= #001B CDIMCA= #0011 NONSEC= #0000 SECRET= #0002 MSIN1X= #0002 GSTMID= #0004 MQOECT= #0080 MSIN2X= #0008 CDETYP= #0017 CSTSAC= #0030 MSIEOM= #0008 PCGSRL= #0000 CDSTC= #001A CSTSCB= #003C MQILAX= #0008 PRIORI= #0003 PCGSRN= #0017 CDPRPT= #001F UNCLAS= #0005 CMCUD1= #0080 MSBCNT= #0004 CMCCMC= #0040 CMCUD2= #00A0 LS= #001F MAXMSC= #0014 CMCDMC= #0000 MSLADX= #0008 CMCCME= #00C0 ROUT= #0000 CDBID= #0016 CSTCSI= #0032 CMCDME= #0020 MSMCCX= #0008 CDMOX= #0003 CMCCPE= #0060 TOPSEC= #0001 CDRPT= #001E GSTMOD= #0003 CSTCPR= #0034 CSTHMP= #003A XLT= #00E0 MQOLAX= #0008 PCGSRS= #0001 CONFID= #0003 UNPROC= #0000 IMMEDI= #0002 CSTELT= #0060 CSTCSO= #0033 CSTLAX= #0008 BINWXO= #0002 RCH= #00F0 CSTCPS= #000C CSTBLX= #0004 RESTRI= #0004 CSA= #0000 PCTJTN= #0010 CSTMSI= #00FF CSTPAX= #0008 MSSECX= #0003 MST1XO= #0012 ORDN= #0001 MST2XO= #0016 CONFCL= #0007 CSTBRX= #0004 DBMLB= #FF00 PCCHPL= #0100 CSTPPR= #0035 CSTCAC= #0042 WCH= #0070 BINEFX= #0003 MSPREX= #0003 CSTSBX= #0002 ROUTIN= #0004 CSTCSX= #002E CSTMSO= #FF00 MSCCAP= #0076 DBMRB= #00FF SPURIO= #0007 CSTBEF= #0037 CDICCA= #0010 CSTMOX= #0003 CSTISX= #0003 MAXCHN= #0080 EXPR= #0002 CSTPPW= #0036 MSSEQX= #0008 BINLGT= #0012 PRESP1= #0005 BINCNX= #0006 USE BASE CSTMCA:= #0021 CSTLAD:= #0008 CSTCS3:= #003C MQOEND:= #0000 CSTSNS:= #000B MQILOC:= #0004 MQITXS:= #000B MQOSYN:= #0002 BINTER:= #000D PCFMQO:= #0004 CDNCT:= #0001 CSTV2C:= #000C MQISCH:= #0008 MQOFLG:= #0000 IDPRTC:= #0001 RTCIDP:= #0001 CDOSTA:= #0017 CSTCOB:= #0025 CSTOCB:= #002E CSTODA:= #0007 GSTSE0:= #001F CMIMXI:= #0001 MXICMI:= #0001 PCNMQI:= #0005 CDPSTA:= #0004 CDOCCA:= #0014 CSTTPS:= #0013 CSTVF1:= #0038 CSTV2E:= #000E CSTPAD:= #0000 GSTSE1:= #0020 GSTMCA:= #0032 GSTNAB:= #0037 CDTELT:= #0018 CSTF4T:= #000B CSTOSV:= #0000 CSTVF2:= #0039 CSTFLD:= #0005 GSTNAC:= #0008 GSTCMB:= #000D GSTSE2:= #0021 CSTCBR:= #000E CSTLIB:= #0047 CSTFOB:= #0049 GSTSE3:= #0022 GSTCMC:= #0043 GSTLTU:= #000C BINSTA:= #0001 PCNCD1:= #0001 CDOEST:= #0011 CSTPSW:= #000D CSTIS4:= #002B CSTILC:= #0002 CSTVXL:= #0009 CSTSYN:= #000B GSTNAE:= #0009 GSTSE4:= #0023 GSTNCC:= #0035 MSIN1S:= #0008 MXIIDP:= #0002 IDPMXI:= #0001 PCNCD2:= #0002 CDIBLC:= #000E CDMOP:= #0000 CSTMCI:= #0024 CSTIDL:= #0001 CSTNIB:= #0048 GSTODB:= #000E GSTLED:= #008B MSIN2S:= #0000 CSTHME:= #001D GSTECN:= #002D GSTPAE:= #0002 GSTNBF:= #8003 GSTNEC:= #8005 GSTCCP:= #0006 GSTMED:= U_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_D#0023 GSTNAI:= #000A GSTMUX:= #0029 GSTCPE:= #0005 GSTCHM:= #8004 MQIRGO:= #0006 MQOBML:= #000C PCNRTA:= #000E CSTIDP:= #0035 GSTPCF:= #0012 GSTRP0:= #0002 PCRSPA:= #000D CSTREG:= #0000 CSTBAS:= #0008 CSTIHM:= #0005 GSTREC:= #000F GSTILE:= #0001 GSTIPA:= #000E GSTRP1:= #0003 GSTCRE:= #009B CSTIPF:= #0004 GSTRP2:= #0004 MQOLOC:= #0002 MSLAD:= #0017 CSTOIH:= #0006 GSTRP3:= #0005 MSI0:= #0009 RTCODP:= #0001 ODPRTC:= #0001 CSTEC:= #0011 CSTSCC:= #0033 CSTO0S:= #0002 CSTTST:= #000C CSTNS1:= #0042 GSTIOE:= #0009 MQIELT:= #0004 MSMCC:= #001B MSLADS:= #0008 MSI1:= #0008 PCNGSR:= #0000 PCNMQO:= #0003 CSTCCT:= #0031 CSTTTT:= #0007 CSTNS2:= #0043 MSI2:= #0007 CDETAB:= #000B CSTCDT:= #0032 CSTSWS:= #0001 CSTO2S:= #0003 CSTVTS:= #000F MSMCCS:= #0008 MSI3:= #0006 CSTTSW:= #0014 CSTF41:= #000C CSTV2M:= #000A CSTALP:= #0006 CSTLOB:= #004A GSTSBC:= #0046 GSTIRE:= #0008 MSI4:= #0005 PCMSAT:= #0020 PCCTJT:= #0040 CSTSTX:= #0016 CSTLOC:= #003D CSTISA:= #000D CSTNCM:= #0045 GSTNS1:= #003F MSI5:= #0004 MXIODP:= #0001 ODPMXI:= #0001 CDOBLC:= #0015 CSTMCO:= #0027 CSTOMC:= #0030 CSTSCH:= #0008 CSTNOB:= #004B GSTNS2:= #0040 MSI6:= #0003 CSTDEV:= #0012 CSTCIS:= #002A CSTSHD:= #0003 CSTISC:= #0000 CSTCON:= #0007 CSTFWB:= #0052 GSTCLM:= #0026 GSTFD:= #000B MSI7:= #0002 CSTOEM:= #000F CSTOCO:= #000F GSTSED:= #004A MSI8:= #0001 LTTYP:= #0001 CSTCOP:= #0026 CSTOCP:= #002F GSTMMD:= #0033 GSTNCM:= #0042 GSTLOC:= #008B GSTLME:= #0004 MSIND:= #001A MSI9:= #0000 ORDINY:= #0001 CDOPBC:= #0016 CSTPPC:= #000B CSTITE:= #0003 CSTODP:= #0037 CSTFIS:= #004C GSTMPB:= #000F GST25F:= #0018 GSTCOM:= #002E GSTMOC:= #0038 GSTUXS:= #8001 MQIMXI:= #0001 GSTMPC:= #002C GSTLOE:= #000C GSTMCP:= #0000 CSTCRP:= #0006 GSTLPE:= #009C GSTCDY:= #009D MQISTA:= #0001 PCMCEF:= #0010 CDIBUF:= #0007 CSTIPM:= #0004 CSTIVF:= #0001 GSTILM:= #0028 GSTCMR:= #0044 MQIBAD:= #0002 MQISTB:= #0003 BINSTP:= #000B LTMS1:= #0004 CSTLIR:= #0010 CSTPRE:= #001A CSTNPI:= #005F GSTIXA:= #002B GSTUID:= #001F MQISTC:= #000F MQOELT:= #0003 LTMS2:= #0005 CSTIFX:= #0008 CSTRGO:= #0006 MQIBEB:= #000E LTMS3:= #0006 CSTPRG:= #000A GSTHWE:= #008A LTMS4:= #0007 CSTMBS:= #0009 CSTCLS:= #0029 CSTBLT:= #000C GSTMQI:= #0014 PCMSK:= #0008 CDPCA:= #0003 CSTLNK:= #000E CSTCSN:= #0019 CSTSCN:= #001E GSTCC0:= #001A MSLOC:= #001C MSSECS:= #000A EXPRES:= #0002 MXIRTC:= #0001 RTCMXI:= #0001 CSTCOS:= #002C CSTOSC:= #0003 CSTLWB:= #0053 GSTCC1:= #001B MQICFE:= #0002 ROUTIE:= #0000 CMIIDP:= #0000 IDPCMI:= #0000 CDSPAC:= #000D GSTCC2:= #001C GSTSBM:= #0007 MQIBID:= #0008 RTCIOX:= #0002 IOXRTC:= #0002 CSTOSE:= #0001 CSTNWB:= #0054 GSTCC3:= #001D GSTOC:= #0008 CDPBCT:= #0009 CDLIC:= #0006 CSTMCX:= #0017 CSTXLD:= #0007 CSTRCS:= #000A CSTBRT:= #0008 CSTLIS:= #004D CSTFOS:= #004F GSTNSC:= #0007 GSTMUB:= #0011 GST25L:= #0017 GSTCC4:= #001E GSTLNK:= #0034 GSTTNB:= #0036 MQOMXI:= #0001 CDIMSA:= #0006 CSTISM:= #0009 CSTNOM:= #003F GSTMLM:= #0024 GSTCOS:= #002F GSTUCM:= #000D MQIRPS:= #0007 CSTTIM:= #000C CSTIMT:= #0000 CSTERS:= #0002 CSTPAY:= #0003 CSTNPM:= #0040 CSTNIS:= #004E GSTAXM:= #0039 GSTCR:= #0009 MQOSTA:= #0001 CDOBUF:= #0013 CDTYP:= #0001 CSTOEW:= #0005 CSTVHM:= #000D CSTMOP:= #0009 GSTMXB:= #000B GSTOLM:= #0027 GSTSBR:= #0047 GSTLGT:= #011D MQOBAD:= #0002 CDLINK:= #0000 CDPIC:= #000C CSTIPS:= #001F CSTNRM:= #0041 GSTFOS:= #0000 GSTMLP:= #0031 GSTTOE:= #0003 MQIRPV:= #0009 CSTIXL:= #0006 CSTOFX:= #0005 GSTNOM:= #003C GSTXCN:= #8002 MQIRXO:= #0003 CDTIME:= #0002 CSTPRM:= #0004 GSTMRL:= #0030 GSTNPM:= #003D GSTNON:= #000A BINLOC:= #0002 MPITSM:= #0000 TSMMPI:= #0000 PCGSR1:= #0050 CSTSAS:= #0018 CSTDRY:= #0003 CSTFWR:= #0055 GSTMRM:= #0001 MQILAD:= #0008 MQIBNA:= #0000 MSPRES:= #000D CDIMCX:= #0008 CDOPEN:= #0003 CSTIPW:= #001B GSTMQO:= #0015 GSTNRM:= #003E GSTXFN:= #009D CDBCT:= #000A CSTTTA:= #0020 CSTV20:= #0000 CSTSTB:= #0001 GSTPWF:= #000D LTLNK:= #0000 CSTV21:= #0001 GSTPRM:= #0007 LTSND:= #0003 CMIODP:= #0001 ODPCMI:= #0001 CSTV22:= #0002 CSTCSU:= #000D MQIBCP:= #0004 MQOIBD:= #0001 PCMREF:= #000F CDLCN:= #0008 CSTV23:= #0003 GSTSBS:= #0045 CSTSUE:= #0004 CSTV24:= #0004 CSTNSM:= #0044 CSTLOS:= #0050 GSTMC0:= #0003 GST52:= #0016 GST1CL:= #0043 MQIEND:= #0000 MPICMI:= #0002 CMIMPI:= #0002 CDOMSA:= #0012 CSTGST:= #0015 CSTCHA:= #0028 CSTSWD:= #0002 CSTOMS:= #000D CSTOSM:= #000E CSTEDC:= #0008 GSTMC1:= #0004 GSTDBB:= #0010 GSTCST:= #0013 MQISYN:= #0003 PCFMQI:= #0006 CSTSYC:= #0034 CSTVSF:= #0038 CSTVTE:= #000B CSTNOS:= #0051 GSTMC2:= #0005 MQIFLG:= #0000 MQITXO:= #0004 MSSEQ:= #0018 CDISTA:= #0010 CDUSED:= #0005 CSTPSN:= #001C CSTCIB:= #0022 CSTIST:= #0000 CSTITS:= #0007 GSTMC3:= #0006 GST55:= #0019 GSTLP:= #000A LTRCV:= #0002 PCOFA:= #0007 CSTOPS:= #002D CSTI2M:= #000A GSTLOS:= #0001 GSTNSM:= #0041 GSTNLT:= #0006 MQIRXS:= #000A MQITYP:= #0000 MSSEQS:= #0000 CSTISV:= #0008 CSTNXM:= #003D MSPSI:= #0019 CSTFIB:= #0046 GSTNOS:= #0002 GSTSWE:= #0048 MQIIDP:= #0002 CDIEST:= #0005 CSTRPS:= #0007 CSTNZM:= #003E CSTLWR:= #0056 GSTXLM:= #0025 MQOLAD:= #0008 MQOBNA:= #0000 BINLNK:= #0000 CDRPAT:= #000F GSTIDB:= #000C BINCNT:= #0000 CSTNWR:= #0057 GSTNXM:= #003A PCFLGT:= #017F CSTLAA:= #000F CSTRPV:= #0009 MQIBDS:= #000D MSCAC:= #0016 RTCMUX:= #0002 MUXRTC:= #0002 CSTBT1:= #0005 CSTCS1:= #003A GSTMXP:= #002A GSTNZM:= #003B MQIBML:= #000C BINHMS:= #000C CMIRTC:= #0001 RTCCMI:= #0001 CSTBT2:= #0006 CSTLAC:= #0000 CSTCS2:= #003B GSTXPN:= #000B MQOOBE:= #000D BINIO:= #000E MSCACS:= #0000 CSTSTM= #0006-128*BASE-128*(PROG-1) MQOEFM= #FFFE-128*BASE-128*(PROG-1) MSLADM= #FF00-128*BASE-128*(PROG-1) MSMCCM= #FF00-128*BASE-128*(PROG-1) CDMOM= #0007-128*BASE-128*(PROG-1) MQOLAM= #FF00-128*BASE-128*(PROG-1) CSTLAM= #FF00-128*BASE-128*(PROG-1) CSTBLM= #F000-128*BASE-128*(PROG-1) MQILGT= #0200-128*BASE+ 0*(PROG-1) CSTPAM= #00FF-128*BASE-128*(PROG-1) MSSECM= #1C00-128*BASE-128*(PROG-1) CSTBRM= #0F00-128*BASE-128*(PROG-1) MQOLGT= #0180-128*BASE+ 0*(PROG-1) MSPREM= #E000-128*BASE-128*(PROG-1) CSTMOM= #0E00-128*BASE-128*(PROG-1) BINIOI= #4000-128*BASE-128*(PROG-1) MSSEQM= #00FF-128*BASE-128*(PROG-1) BINCNM= #003F-128*BASE-128*(PROG-1) MSCACM= #00FF-128*BASE-128*(PROG-1) BINIOM= #C000-128*BASE-128*(PROG-1) MQIEFM= #FFFE-128*BASE-128*(PROG-1) MQITYM= #00FF-128*BASE-128*(PROG-1) MQIBIM= #FF00-128*BASE-128*(PROG-1) BINIOO= #8000-128*BASE-128*(PROG-1) MSIN1M= #0300-128*BASE-128*(PROG-1) MSIN2M= #00FF-128*BASE-128*(PROG-1) MQILAM= #FF00-128*BASE-128*(PROG-1) USE #0 ; ; AU000069 0 0000 LEVEL 1 NAMES: USE BASE ROL:= #004F RI:= #0053 OLTO:= #0056 GNBF:= #0040 RRL:= #004E RTI:= #006F WA:= #006A GNIB:= #0076 TFRW:= #0061 RWI:= #006E WPSLP:= #005C INCH:= #0073 WE:= #0052 RL:= #004D WPSTLP:= #005C SOLT:= #004B SRLT:= #004A GNOB:= #0077 RNBF:= #0041 RSCOC:= #0059 TODQB:= #0074 WL:= #0069 GPB:= #006C RBF:= #0043 LPERR:= #005F GLET:= #0047 DMLP:= #005E WSCOC:= #0058 OTCH:= #0072 TFRC:= #0062 LPER:= #005F LNIQ:= #0046 GBS:= #0042 RIWE:= #0054 SCH:= #006D WBF:= #0044 GBST:= #0065 REL:= #0050 CPP:= #006B OLTF:= #0056 RBF1:= #0067 CRP:= #0055 RLET:= #0048 WSCLP:= #005B RLI:= #0064 LNOQ:= #0045 WDSLP:= #005D TFOP:= #0060 INQ:= #0070 RLWE:= #0051 ERR:= #0063 RCPU:= #0075 WPSOC:= #005A WDSTLP:= #005D INDQB:= #0071 SLET:= #0049 SELT:= #004C MCX:= #0000 RHXP:= #0057 GNBA:= #0066 WBF1:= #0068 USE #0 ; ; AU000066 0 000B LEVEL 1 NAMES: QUEFIL= #0002 TS10= #4D43 INXFIL= #0003 TS11= #2049 TS20= #4F49 RCCNM= #0006 TS12= #4449 TS21= #2058 TS13= #2050 RCLGM= #0006 TS14= #444F TS15= #2050 TS16= #4244 TS17= #2041 TS18= #554D TS19= #2058 FILTPM= #000E STRT= #0001 ABSFIL= #0000 RELFIL= #0001 SEQM= #0008 FILPGM= #000C PRCFIL= #0000 TS0= #4F4D TS1= #204E TS2= #5452 TS3= #2043 TS4= #5245 TS5= #2052 TS6= #584D SUBM= #0004 TS7= #2049 TS8= #504D TS9= #2049 USE BASE MXI:= #0003 IOX:= #000A DBA:= #0008 ML:= #0080 MN:= #0000 TS22:= #2020 TS23:= #2020 LI1:= #0010 LI2:= #0020 LI3:= #0030 MNX:= #0000 SL:= #00C0 SN:= #0040 TFLTFN:= #0000 MUX:= #0009 CMI:= #0005 TFCNT:= #0002 IDP:= #0006 ERROR:= #0002 TFDPT:= #0001 ODP:= #0007 MPI:= #0004 RTC:= #0001 USE #0 LIST MXUSHD:= 100/10 ; SCHEDULING PERIOD FOR CPU-INTER'PT DRIVEN ; PART IN RTC UNITS (10 MSEC). MXCMP= LTMS4 ; CMI-LETTER WORD WITH RETURN STATUS MXLTOK= 0 ; LTU COMD OK-RETURN STATUS MXASYW:= 80 ; WAIT FOR ASYNC LTU TO RESET> 170 USEC MXMESP:= 7 ; CODE OF LOWEST MED SPEED BAUD RT- 600 MX05SP:= 8<8 ; MED.SPD. HLT MSG BIN CNT 8*.58 = 5 SEC MXMSBD:= 15 ; NMB OF CHARS TO PASS DURING 576 MSEC ON ; MED SPEED CHANNEL BEFORE BIN DISCONNECT. MX30SP:= 37<8 ; LOW SPD HLT MSG BIN CNT 37*.8 = 30 SEC MXLSBD:= 21 ; NMB OF CHARS TO PASS DURING 806 MSEC ON ; LOW SPEED CHANNEL BEFORE BIN DISCONNECT. MXSTUC:= 141 ; STUCK TAPE CHARACTER COUNT MXSTCP= 5 ; RELEASE PULSE STUCK SUPERCOUNT ; MXUSMS= %; MASK FOR CLEARING LTU STATUS -1 %; ALL BITS BUT -1<CSTSNS %; NOT SEND STATUS -1<CSTRCS %; NOT RECEIVE STATUS -1<CSTCBR %; NOT CHANNEL BREAK -1<CSTRPS %; NOT RELEASE PULSE STUCK -1<CSTSCH ; NOT STATUS CHANGED ; ;======================================================================= ; CONSTANT DEFINITIONS ; LETTER-DRIVEN PROCESS (2) ; ;----------------------------------------------------------------------- ; SUBCOMMAND NOMEMCLATURE LOC=0 ; ----------------------- SBCTN: LOC=LOC+1 ; SUBCOMMAND WORD 1: SBBTYP:=SBCTN<1 ; SUBCOMMAND TYPE SBBNMB:=SBBTYP+1 ; SUBCOMMAND SEQUENCE NUMBER SBCSU1: LOC=LOC+1 ; SUBCOMMAND WORD 2: SBBLOG:=SBCSU1*2+1 ; LOGICAL CHANNEL NUMBER ; FOR SET CORRESPONDING TO CSTCS1. SBCSU2: LOC=LOC+1 ; SUBCOMMAND WORD 3 (ONLY SETUP): ; CORRESPONDS TO CSTCS2 SBCSU3: LOC=LOC+1 ; SUBCOMMAND WORD 4 (ONLY SETUP): ; CORRESPONDS TO CSTCS3 SBCSUC= LOC-SBCSU1 ; NMB OF CST PARAMETERS TO MOVE ; ;----------------------------------------------------------------------- ; ; ASYNCHRONUOUS LTU MEMORY LAY-OUT NOMENCLATURE ; ; MODE 0 OF THE ASYNC LTU LOC=0 MODE0: LOC= LOC+1 ; MODE 0 BYTE OF ASYNC LTU SAVLOC2= LOC, LOC= 0 ; BINARY BIT LAY-OUT LTABRS: LOC= LOC+4 ; BAUD RATE CODE FIELD LTARSS: LOC= LOC+1 ; LTU RESET BIT LTASYS: LOC= LOC+1 ; SYNC/ASUNC SISTINCTION LTADSS: LOC= LOC+1 ; CHANNEL DISABLE BIT LTAODS: LOC= LOC+1 ; ODD/EVEN PARITY BIT LOC=SAVLOC2 ; ; MODE 1 OF THE ASYNC LTU MODE1: LOC= LOC+1 ; MODE 1 BYTE OF ASYNC LTU SAVLOC2= LOC, LOC= 0 ; BINARY BIT LAY-OUT LTAFDS: LOC= LOC+1 ; FULL/HALF DUPLEX BIT LTABLS: LOC= LOC+1 ; BLOCK/CHAR ON DEMAND LTAFRS: LOC= LOC+1 ; FREE RUNNING/ON DEMAND MODE LTARDS: LOC= LOC+1 ; END OF BLOCK (REL.PULSE ENABLE) LTASTS: LOC= LOC+2 ; STOPBIT CODE FIELD LTASPS: LOC= LOC+1 ; LOOP BIT LTACLS: LOC= LOC+1 ; 7BIT/5BIT CHAR LENGTH DESIGNATOR ;FF\f ;======================================================================= ; ; CPU INTERRUPT DRIVEN PROCESS (1) ; ;------------------------------------------------------------------------------- ; ;PRCGEN1 ;----------------------------------------------------------------------- ; GENERATE PROCESS DESCRIPTOR FOR FIRST PROCESS. ;----------------------------------------------------------------------- NOLIST ; DATED 771128/FR LOC=-SYSSMHLGT NAME: XNAME1 ; SUBMODULE NAME XNAME2 PRCCNT: XPRTOT ; NUMBER OF PROCESSES SBMLGT: XTOTAL ; SUBMODULE LENGTH RELPRG: XSTOTAL ; RELATIVE PROGRAM ADDRESS PRCBL: XWDS0 ; PROCESS BLOCK LENGTH: THE NUMBER OF WORDS FROM AND ; INCLUDING PRCBL TO AND INCLUDING THE LAST ITEM IN ; THE PROCESS LOAD MODULE DATA TRXLGT: XTXLGT0 ; NUMBER OF WORDS TO BE TRANSFERRED TO THE PROCESS ; EXECUTION AREA FROM THE PROCESS LOAD MODULE AREA. PRCLGT: XLGT0 ; PROCESS LENGTH: THE NUMBER OF WORDS FROM AND ; INCLUDING SR0 TO AND INCLUDING THE LAST ITEM IN ; THE INITIATED PROCESS AT EXECUTION TIME. PRCID: XID0 ; LOGICAL PROCESS IDENTIFICATION NUMBER, 1 WORD SR0: 0 ; SAVE AREA FOR REGISTER 0, 1 WORD SR1: 0 ; SAVE AREA FOR REGISTER 1, 1 WORD SR2: 0 ; SAVE AREA FOR REGISTER 2, 1 WORD SR3: 0 ; SAVE AREA FOR REGISTER 3, 1 WORD SR4: 0 ; SAVE AREA FOR REGISTER 4, 1 WORD SR5: 0 ; SAVE AREA FOR REGISTER 5, 1 WORD SR6: 0 ; SAVE AREA FOR REGISTER 6, 1 WORD SR7: 0 ; SAVE AREA FOR REGISTER 7, 1 WORD BAS: 0 ; SAVE AREA FOR DATA BASE REGISTER, 1 WORD MBAS: 0 ; SAVE AREA FOR MODIFY REGISTER, 1 WORD PRG: 0 ; SAVE AREA FOR PROGRAM BASE REGISTER, 1 WORD PRPC: XPRPC0 ; SAVE AREA FOR PROGRAM COUNTER REGISTER, 1 WORD TIM: XTIM0 ; SAVE AREA FOR TIME PSW: XMASK0 ; SAVE AREA FOR PROCESS STATUS WORD, 1 WORD PRCLNK: 0 ; PROCESS LINK, CONTAINS BAS OF THE NEXT LOWER LEVEL ; PROCESS LINTACT:XERROR0 ; ADDRESS OF ROUTINE FOR PROCESSING LOCAL INTERRUPTS LINTRET:0 ; RETURN LINK FOR LOCAL INTERRUPT AND SOME MONITOR ; FUNCTIONS LINTCAUS: ; CAUSE CODE LOCAL INTERRUPT: 0 ; 0 FOR A TIMER INTERRUPT ; 1 FOR AN ILLEGAL INSTRUCTION ; OR TRAP ; 2 FOR A HARDWARE TIME OUT ; 3 FOR A MEMORY PARITY ERROR DEV: 0 ; ADDRESS AND PRIORITY (8 BIT) OF INTERRUPTING ; IO-DEVICE. WILL CONTAIN -1 IF THE PROCESS WAS ; LOADED BECAUSE OF A CPU INTERRUPT OR BECAUSE ; ANOTHER PROCESS EXECUTED A LDP INSTRUCTION. TIMRSET:XTIM0 ; TIME REGISTER RESET VALUE TSWITCH:0 ; TEST SWITCH GSTPTR: 0 ; POINTER TO GST XPRCNT= 1, XTOT=0 LIST ;----------------------------------------------------------------------- ; DATA AREA,INITIALIZED BY DBA ; MXR7TS: 0 ; SAVE LOC FOR R7 UNDER OLTO CALLS OTFPAG= 0, OTFATY= 0, OTFDTY= 0 OPTREG: OTFTYP= RELFIL, OTFRCN= 1, OTFRCL= 08, OTFST= 0 OTFNM1= <:RE:>, OTFNM2= <:GS:> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST OPTWRK: OTFTYP= RELFIL, OTFRCN= 1, OTFRCL= 12, OTFST= #2A OTFNM1= <:WO:>, OTFNM2= <:RK:> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST OPTCST: OTFTYP= RELFIL, OTFRCN= (CSTELGT+15)/16, OTFRCL= 16, OTFST= 0 OTFNM1= <:CS:>, OTFNM2= <:T :> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST MXITEM: %; TRANSMISSION ERR MASK, MQI ERR 1<MQIPER %; PARITY +1<MQICFE %; FRAMING +1<MQITXO %; TRANSMITTER OVERRUN +1<MQIRXO ; RECEIVER OVERRUN MXOSTM: ; OUTPUT STATUS MASK MXISTM: %; INPUT STATUS MASK 1<MQISCH %; STATUS CHANGED +1<MQIRXS %; RECEIVE STATUS +1<MQITXS ; SEND STATUS MXUPBM: #FF00 ; UPPER BYTE MASK ; MXIDPL: ; NOTE THIS LETTER WILL NOT BE ; RETURNED BY IDP. 0 ; REL. IDP LETTER REF MXIIDP ; LETTER URGENCY IDPLPN, MXILPN ; RECEIVER AND SENDER ; RETURNED BY THE IDP; ;----------------------------------------------------------------------- ; ;PRCGEN2 NOLIST XWDS0=LOC+SR0-PRCBL, XTOT=XTOT+LOC+SR0-NAME, XTXLGT0=XWDS0-3 LIST ;======================================================================= ; ; DATA AREA ,NOT INITIALIZED BY DBA ; CPU INTERRUPT-DRIVEN PROCESS ; ;----------------------------------------------------------------------- MXIGST: LOC= LOC+1 ; REL POINTER TO TOP OF GST MXICDI: LOC= LOC+1 ; REL POINTER TO GST CST-DIRECTORY MXPMQI: LOC= LOC+1 ; MQI PRESET VALUE (ONE REC BEFORE TOP) MXIMQI: LOC= LOC+1 ; CURRENTLY SERVED MQI MXPMQO: LOC= LOC+1 ; MQO PRESET VALUE (ONE REC BEFORE TOP) MXIMQO: LOC= LOC+1 ; CURRENTLY SERVED MQO MXACST: LOC= LOC+1 ; ABS POINTER TO CURRENT CST RECORD MXICST: LOC= LOC+1 ; CURRENT CST-RECORD BEING SERVED MXCBSA: LOC= LOC+1 ; MEMORY SECTION FOR BIN MXCLNK: LOC= LOC+1 ; CURRENT POINTER TO BIN SERVED MXCRBS: LOC= LOC+1 ; CURRENT DISCONNECTED BIN STATUS ;----------------------------------------------------------------------- ; ;PRCGEN3 NOLIST XLGT0=LOC LIST ;FF\f ;======================================================================= ; ;PRCGEN5 ;----------------------------------------------------------------------- ; GENERATE PROCESS DESCRIPTOR FOR SECOND PROCESS. ;----------------------------------------------------------------------- NOLIST LOC=-4 XWDS1 XTXLGT1 XLGT1 XID1 0, REPEAT PRG XPRPC1 XTIM1 XMASK1 0 XERROR1 0 0 0 XTIM1 0 0 XPRCNT= XPRCNT+1 LIST ; ; MXI, LETTER DRIVEN PROCESS. ; ; DATA AREA, INITIALIZED BY DBA ; ;----------------------------------------------------------------------- ; 0 ; SAVE LOC FOR R7 UNDER OLTO CALLS OTFTYP= RELFIL, OTFRCN= 1, OTFRCL= 08, OTFST= 0 OTFNM1= <:RE:>, OTFNM2= <:GS:> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST OTFTYP= RELFIL, OTFRCN= 1, OTFRCL= 14, OTFST= #65 OTFNM1= <:WO:>, OTFNM2= <:RK:> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST OTFTYP= RELFIL, OTFRCN= CSTELGT/16, OTFRCL= 16, OTFST= 0 OTFNM1= <:CT:>, OTFNM2= <:T :> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST OPTCDT: OTFTYP= RELFIL, OTFRCN= (CDTELGT+15)/16, OTFRCL= 16, OTFST= 0 OTFNM1= <:CD:>, OTFNM2= <:T :> ; ; TFDGEN NOLIST ;----------------------------------------------------------------------- ; TEST FILE DECLARATION GENERATOR ; THE FOLLOWING PARAMETERS MUST BE DEFIND BY ASSINGMENT BEFORE USE ; OTFTYP TYPE OF THE FILE ; OTFDTY THE FILE DUMP TYPE (BINARY/ASCII) ; OTFATY THE FILE ADDRESSING TYPE (PELBS/NON-PELBS PAGE ZERO) ; OTFRCN LENGTH OF RECORDS IN WORDS ; OTFRCL LENGTH OF RECORDS IN WORDS ; OTFST THE FILE START ADDRESS (RELATIVE OR 0) ; OTFNM1 THE FILE NAME ; OTFNM2 ;----------------------------------------------------------------------- OTFTYP<FILTPM OR OTFATY<(FILPGM+1) OR OTFDTY<FILPGM OR% (OTFRCL-1)<RCCNM OR OTFRCN OTFST OTFNM1, OTFNM2 ; ; RESET PARAMETERS TO DEFAULT ; OTFTYP= RELFIL OTFDTY= 0 OTFATY= 0 OTFRCL= 21 OTFRCN= 1 OTFST= 0 OTFNM1= <:PR:>, OTFNM2= <:OC:> LIST MXRTCL: ; 0 ; REL. RTC LETTER PNT MXIRTC ; LETTER URGENCY RTCLPN ; RECEIVER MXILPN ; SENDER ; ;----------------------------------------------------------------------- ; MULTIPLE BIT FIELD CONVERSION CONTROL FILE ; ------------------------------------------ MXSUCS: ; ; BAUD RATE FIELD CONVERSION TABLE MXABRT: ; LOC= 0 MXLNK: MXASTT ; LINK TO NEXT FIELD TABLE MXCTL: (CSTCS3-CSTCS1)+CSTBRT<4+MODE0<8 ; BAUDRATE FIELD MXMSK: CSTBRM ; MASK MXVAL: 2#11111111 ; VALIDITY MASK 11111111 MXTAB: LOC= LOC+MXSUCS ; FIRST TABLE ENTRY 7<LTABRS ; 50 6<LTABRS ; 75 5<LTABRS ; 100 4<LTABRS ; 110 3<LTABRS ; 165 2<LTABRS ; 200 1<LTABRS ; 300 0<LTABRS ; 600 ; ; ; STOPBIT LENGTH FIELD CONVERSION MXASTT: ; TABLE MXAMOT ; (CSTCS3-CSTCS1)+CSTSTB<4+MODE1<8 ; STOPBIT LENGTH FIELD CSTSTM ; 2#1110 ; VALIDITY MASK 111. 0 ; SPARE 0<LTASTS ; 1.0 1<LTASTS ; 1.5 2<LTASTS ; 2.0 ; ; MXAMOT: ; MODE OF OPERATION CONVERSION TABLE MXAPRT ; (CSTCS2-CSTCS1)+CSTMOP<4+MODE1<8 ; MODE OF OPERATION FIELD CSTMOM ; 2#1110 ; VALIDITY MASK 111. 0 ; ASYNC INTERNAL MODE (1<LTARDS)+1<LTAFRS ; FREE RUNNING ASYNC LTU (1<LTARDS)+0<LTABLS ; &HARACTER ON DEMAND (1<LTARDS)+1<LTABLS ; BLOCK ON DEMAND ; ; ; ASYNC LTU PARITY FIELD CONVERSION MXAPRT: ; TABLE 0 ; END OF FILE FLAG (CSTCS3-CSTCS1)+CSTPAY<4+MODE0<8 ; PARITY FIELD 1<CSTPAY ; 2#11 0<LTACLS ; EVEN - (DEFAULT ASYNC) 1<LTACLS ; ODD - ;----------------------------------------------------------------------- ; CDT PRESET COUNTERS ; ------------------- MXIMCX: (BINLGT-BINWXO)*2<8+0 ; MAX/CURRENT CHARACTER COUNT PRESET MXRPAT: 250+250<8 ; RELEASE PULSE SUBCOUNT MXSPAC: MXSTUC-1+(MXSTUC-1)<8 ; STUCK TAPE CHAR CNT CDT PRESET ;----------------------------------------------------------------------- ; CHARACTER BLOCK SIZE CONV. TABLE MXBLKT: ; -------------------------------- 32 ; SYNCHRONEOUS 32 ; 128 ; 256 ; 512 ; 1024 ; 2048 ; 4096 ; 30 ; ASYNCHRONEOUS / ITA-5 48 ; ITA-2 60 ; 96 ; 120 ; 192 ; 480 ; 768 ; ;----------------------------------------------------------------------- ; MODE OF OPERATION CONVERSION TABLE (CST -> CDT) MXDMOP: ; ---------------------------------- 1 ; 0 - ASYNC. INTERNAL 2 ; 1 - ASYNC. FREE RUNNING 3 ; 2 - ASYNC. CHARACTER ON DEMAND 4 ; 3 - ASYNC. BLOCK ON DEMAND 5 ; 4 - SYNCHRONEOUS CHANNEL WITH/WITHOUT EDC MXDMAX= LOC-MXDMOP ; ;----------------------------------------------------------------------- ; ;------------------------------------------------------------------------------- ; ;PRCGEN6 NOLIST XWDS1=LOC+SR0-PRCBL, XTOT=XTOT+LOC+SR0-PRCBL, XTXLGT1=XWDS1-3 LIST ;======================================================================= ; ; DATA AREA, NOT INITIALIZED BY DBA ; ; MXI, LETTER-DRIVEN PROCESS. ; ;----------------------------------------------------------------------- MXLETT: LOC= LOC+1 ; REL POINTER TO LETTER ACTIVATING LETTER DRIVEN ; PROCESS. MXGST: LOC= LOC+1 ; REL POINTER TO TOP OF GST MXNCC: LOC= LOC+1 ; POINTER TO NMB OF CONNECTED CHANNELS MXNSC: LOC= LOC+1 ; GST NMB OF SYNCHRONEOUS MXNAC: LOC= LOC+1 ; GST NMB OF ASYNCHRONEOUS CHANNELS MXCDI: LOC= LOC+1 ; REL POINTER TO CST-RECORD LIBRARY MXCST: LOC= LOC+1 ; REL ADDRESS CURRENT CST RECORD MXCDT: LOC= LOC+1 ; CURRENT CDT RECORD ADDRESS MXBSA: LOC= LOC+1 ; BIN BUFFER SECTION ADDRESS MXPHY: LOC= LOC+1 ; SAVE FOR C4RRE-T LTU PHYS ADDRESS MXMOD0: LOC= LOC+1 ; LTU MODE 0 BYTE BUILD UP CELL MXMOD1: LOC= LOC+1 ; 1 BYTE BUILD UP CELL MXR7SV: LOC=LOC+1 ; ; ;PRCGEN7 NOLIST XLGT1=LOC LIST ;FF\f ;======================================================================= ; ; SUBCOMMAND CASETABLE ; MUST RESIDE IN SUBMODULES PROG.REL. AREA. ; USE PROG LOC= 0 ; S/W ERROR JUMP TABLE ; -------------------- MXELMI: MXELM ; 4 - LETTER MECHANISM MXESBI: MXESB ; 7 - RMS (SEC QUEUE BIN CNT) MXEIRI: MXEIR ; 8 - INTERRUPT RESERVE ERROR MXEIOI: MXEIO ; 9 - BUFFER MISLINKAGE MXEUXI: MXEUX ; 8001 - UNEXPECTED SENDER MXEXCI: MXEXC ; 8002 - EXCESSIVE CHANNEL NUMBER MXENBI: MXENB ; 8003 - NO BUFFER AVAILABLE MXECHI: MXECH ; 8004 - CHANNEL MISMATCH MXENEI: MXENE ; 8005- EDC PROC REQUEST MXIERR0:MXERR0 ; POINTER TO S/W ERROR PROCESS MXIERR1:MXERR1 ; POINTER TO S/W ERROR PROCESS MXCSTY: ; MXINVT ; TYPE=0 INVALID MXOPIC ; 1 OPEN INPUT MXOPOC ; 2 OPEN OUTPUT MXCLIC ; 3 CLOSE INPUT MXCLOC ; 4 CLOSE OUTPUT MXSTUP ; 5 SETUP PARAMETERS MXCMAX= LOC-MXCSTY ; MAX TYPE AS ENTRY IN CASE TABLE MXGOBFI: MXGOBF ; MXCPEI: MXCPE ; 6 - CP ERROR MXCMEI: MXCME ; C - COMMAND ERROR MXATVI: MXATV ; E - ATTEMPTED VIOLATION ;FF\f ;======================================================================= ; ; ERROR RECOVERY PROCEDURES MXERR: MXERR0: ; LOCAL INTERRUPT ENTRY, PROCESS0 MXERR1: ; LOCAL INTERRUPT ENTRY, PROCESS 1 MODC 255-GSTNEDC ; *** TEMPORARY *** *** ; RECOVERABLE ERRORS ; ----------------- MXENE: MODC GSTNEDC-GSTCHM ; 8005 - EDC PROC REQUEST MXECH: MODC GSTCHM-GSTNBF ; 8004 - CHANNEL MISMATCH MXENB: MODC GSTNBF-GSTXCN ; 8003 - NO MORE BUFFERS AVAILABL MXEXC: MODC GSTXCN-GSTUXS ; 8002 - EXCESSIVE CHANNEL NMB MXEUX: MODC GSTUXS-GSTIOE ; 8001 - UNEXPECTED SENDER ; UN-RECOVERABLE ERRORS ; --------------------- MXEIO: MODC GSTIOE-GSTIRE ; 9 - BUFFER MISLINKAGE MXEIR: MODC GSTIRE-GSTSBM ; 8 - INTERRUPT RESERVATION ERROR MXESB: MODC GSTSBM-GSTNLT ; 7 - REM(SEC QUEUE BIN CNT) NE 0 MXENL: MODC GSTNLT-GSTCPE ; 6 - NO MORE LETTERS AVAILLABLE MXECP: MODC GSTCPE-GSTLME ; 5 - CREATE PROCESS MXELM: MOVC GSTLME R0 ; 4 - LETTER MECHANISM MOV R0 LINTCAUS ; MOV R4 LINTRET ; SAVE PROC REL POINTER MXHWERR0: MON ERR ; ***TEMPORARY BRAKE JMPI LINTRET ; RETURN ORIGINATOR ON RECOVERABL ; ;======================================================================= ; PROCEDURE MAKE PROCESS KNOWN TO MONITOR; MXCRP: ; MOV PRCID R3 ; GET OWN PROCESS ID MOV BAS R4 ; GET OWN PROCESS BASE MON CRP ; INTRODUCE OWN PROCESS TO MONITOR JMP & S4 MXECP ; ON MISMATCH, DUMP PROCESS JMP X6 ; ;======================================================================= ; PROCEDURE GET LETTER AND COPY FROM OWN PROCESS; MXGLET: ; MON GLET ; GET LETTER FROM POOL JMP & S4 MXENL ; (NO MORE LETTERS LEFT); SUB BAS R5 ; RELATIVIZE MOV R5 X6 ; SAVE LETTER PNT INCD R5 R6 ; ADVANCE TO NEXT WORDS MODC 3 ; MOVM X6 X5 ; PRESET LETTER TYPE, RCVR , SNDR ADDC -4 R5 ; RE-ESTABLISH REL POINTER JMP X4 ; RETURN ;FF\f ;======================================================================= MXINICPU: ; INITIALIZE CPU DRIVEN PROCESS JMP S6 MXCRP ; CREATE OWN PROCESS MOVC MXIDPL R6 ; JMP S4 MXGLET ; GET PRESET IDP LETTER CLR LTMS4. X5 ; FLAG FREE IDP LETTER; MOV BAS R2 ; POINT OWN BASE MOV GSTPTR R5 ; GET ABS POINTER TO THE GST SUB R2 R5 ; KAKE RELATIVE MOV R5 MXIGST ; AND SAVE; MOV GSTMQI.X5 R0 ; GET ABS MQI POINTER SUB R2 R0 ; MOV R0 MXIMQI ; ADDC -MQIELGT R0 ; POINT ONE RECORD BELOW MOV R0 MXPMQI ; MOV GSTMQO. X5 R0 ; GET ABS MQO POINTER SUB R2 R0 ; MOV R0 MXIMQO ; ADDC -MQOELGT R0 ; ADJUST TO ONE RECORD BELOW MOV R0 MXPMQO ; ADDC GSTCDY R5 ; ADJUST GST POINTER TO START OF MOV R5 MXICDI ; CHANNEL POINTERS; ADDC -GSTCDY R5 ; RE-ESTABLISH GST TOP POINTER MOV GSTMXP.X5 R0 ; GET MUX CHANNEL PGM START ADDR SVS R3 ; GET CURRENT CPU STATUS SWP R3 ; RIGHT-ADJUST OWN CPU NMB XTR R3 3 ; ISOLATE ADDC 1 R3 ; LET CPU NMB START WITH ONE; MODN R2 ; COMPENSATE OWN BASE MOVC CPUIVT+7 R1 ; POINT REL BOTTOM CPY TABLE MOVC 8 R7 ; FOR I:=1 UNTIL MAX NMB CPU'S MXIC10: ; DO INE R7 R3 ; IF NOT COM-CPU MOV R0 X1 ; THEN POINT CHANNEL START ADDC -1 R1 ; POINT NEXT ENTRY SOB R7 MXIC10 ; END INITIATING CPU VECTOR TAB; CPU ; CPU INTR'PT TO START MUX CPU'S; MON RCPU ; RESERVE CPU INTERRUPT MON RTI ; RETURN TO PRIOR PROCESS. JMP MXCPST ; ;FF\f ;======================================================================= MXCPST: ; CONTROL ENTERS HERE, MOVC EXPR R0 ; GET EXPRESS PROCESS PRIORITY MON INQ ; INCLUDE PROCESS IN QUEUE JMPI & S4 MXELMI ; (PROCESS NOT KNOWN TO MON); ; WHEN PROCESS INVOKED MXMQIH: ; MOV MXIMQI R6 ; GET MQI PNT IBZ X6 MQIMXI ; IF NO DATA IN MQI JMP MXMQOH ; THEN GO HANDLE MQO S MOV MQIBAD.X6 R5 ; GET BUFFER PNT MON GBS ;(4,6 KEPT) GET BIN SECTION ADDRESS MOV R3 MXCBSA ; SAVE CURRENT SECTION MOV BAS R0 ; POINT ABS OWN BASE MOV X6 R4 ; GET LOG CHAN NMB IF MQILAD NE 0 SRL R4 MQILAD ; RIGHT ADJUST LOG CHAN NMB ELSE XTR R4 MQILAX FI ; ISOLATE LOG CHAN ADDRESS MOD MXICDI ; MOV X4 R4 ; GET ABS CST PNT MOV R4 MXACST ; SAVE ABS CST PNT SUB R0 R4 ; RELATIVE OWN BASE; MOV R4 MXICST ; SAVE RELATIVE CST PNT MOV MQISTA.X6 R1 ; GET CURRENT MQISTATUS ILO R1 1<MQIBML ; IF NO BUFFER DISCONNECT GENR'TED JMP MXCPMQ ; THEN BYPASS BUFFER HANDLING SUB R0 R5 ; MAKE BIN REL OWN BASE; SVS R7 ; SAVE CURRENT STATUS MOV CSTCS2.X4 R2 ; GET CHANNEL STATE WORD 2 IBN R2 CSTICO ; IF INPUT CLOSED JMP MXMI10 ; THEN LDS R3 ; SWITCH TO BIN SECTION MOV BINLNK.X5 R4 ; GET ADDRESS OF NEXT BIN CLR BINLNK.X5 ; FORCE THIS BIN TO BE LAST ADDC BINSTA R5 ; POINT STATUS WORD MOVC 1<BINIO X5 ; TO FLAG INPUT BIN; MOD R0 ; ADDC -BINSTA R5 ; COMPUTE ABS ADDRESS OF BIN MODN R0 ; MOV R5 BINLNK.X4 ; MAINTAIN BIN QUEUE STRUCTURE LDS R7 ; RETURN TO ORIGINAL SECTION MXIOLTOA= 10, MXIOLTOB= 0, MXIOLTOC= SL+LI1 ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: JMP MXCPMQ ; END MAINTAINING EMPTY BIN QUEUE; ;FF\f ;----------------------------------------------------------------------- MXMI10: IBZ R2 CSTSYN ; IF CHANNEL SETUP TO SYNC JMP MXASYI ; THEN ;----------------------------------------------------------------------- MXSYNI: ; SYNC INPUT HANDLING, ENTRY MOVC 1<GSTREC R0 ; FLAG RECOVERABLE ERROR MOV R0 LINTCAUS ; MOVC <:I:> R4 MOV R4 LINTRET MON ERR MOV MXIMQI R6 ; GET MQI PNT JMP MXAI95 ;------------------------------------------------------------------------------- ; REGISTERS ENTRY ; R0 OWN BASE ; R1 CURRENT MQI STATUS ; R2 CST STATUS INDICATORS ; R3 BIN MEM SECTION ADDRESS ; R4 REL CST POINTER ; R5 REL BIN ADDRESS ; R6 REL MQI POINTER ; R7 OWN PSW ; MXASYI: ; ASYNC. BUFFER HANDLING ; THE LINK OF THE BUFFER IS DERIVED ; AND STORED LDS R3 ; SWITCH TO BUFFERS SECTION MOVL BINLNK.X5 R23 ; GET LINK AND STATUS OF BUFFER LDS R7 ; SWITCH BACK MOV R2 MXCLNK ; SAVE CURRENT LINK MOV R3 MXCRBS ; SAVE CURRENT BUFFERSTATUS MXIOLTOA= 20, MXIOLTOB= OPTWRK ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: ; STATUS BIT XFER FROM MQI TO INPUT ; BUFFER: ; STUCK TAPE ; HALTED MESSAGE ; TRANSMISSION ERROR MOVC 0 R2 ; RESET R2 AND BUILD BUFFER STATUS IBN R1 MQISTC ; IF TAPE STUCK SETS R2 BINSTP ; THEN SET STUCK TAPE BIT; XTR R3 BINCNX ; GET BUFFER BYTE COUNT ADDC CSTHME R4 ; GET CSTHME PNT ; JON R3 MXAI20 ; IF BUFFER EMPTY INC X4 ; THEN INCREASE HMSG COUNT MOV X4 R0 ; GET CURRENT AND PRESET HMSG; SWP R0 ; PLACE CUR OVER PRESET AND VV; INE X4 R0 ; IF CURRENT NOT EQ PRESET JMP MXAI30 ; THEN BYPASS INDIC HANDLE; SETS R2 BINHMS ; FLAG HALTED MSG IN BIN; MXAI20: ; END EMPTY BUFFER; ; CLEAR CURRENT HALT.MSG CNT MOV MXUPBM R0 ; GET UPPER BYTE MASK AND R0 X4 ; LET ONLY UPP. BYTE REMAIN MXAI30: ; END OF HALT.MSG BIN ACCOUNTING MOV MXITEM R6 ; PROVIDE TRMS ERR. BIT MASK AND R1 R6 ; INE R6 0 ; IF ANY SET SETS R2 BINTER ; THEN SET TRANSERROR BIN BIR SVS R0 ; MOV MXCBSA R3 ; GET CURRENT SECTION ADDC BINSTA R5 ; GET STATUS PNT TO CURR.BUF. LDS R3 ; SWITCH TO BUFFERS SECTION MODC %; BIN STATUS PUT MASK 1<BINSTP %; STUCK TAPE BIT +1<BINHMS %; HALTED MESSAGE FLAG +1<BINTER ; TRANSMISSION ERROR PUT R2 X5 ; INSERT STATUS BITS IN BIN LDS R0 ; SWITCH BACK MOVC 1 R3 ; GET BUFFER CNT MOV MXACST R4 ; GET ABS CST PNT ADDC CSTFIB R4 ; CALC ABS CSTFIB PNT MOD BAS ; ABSOLUTIZE ADDC -BINSTA R5 ; CALC ABS BIN PNT (FIRST) MOV R5 R6 ; PROVIDE ABS LAST BIN PNT MON LNIQ ;(NO REGS) LINK INTO QUEUE ;------------------------------------------------------------------------------- MXGBF: ; PROVIDE NEW INPUT BUFFER FOR MUX MOVC 1 R3 ; GET BUFFER COUNT MON GNIB ; GET INPUT BUFFERS SPECIFIED JMP & S4 MXGOBF ; GO GET OUTPUT BUFFER MOV MXCLNK R4 ; GET ABS BUFFER LINK IEQ R4 0 ; IF ZERO JMPI S4 MXIERR0 ; THEN INPUT DRIED UP; **************** SUB BAS R4 ; RELATIVIZE MOV MXCBSA R2 ; SVS R1 ; SAVE CURRENT STATUS LDS R2 ; SWITCH TO CURRENT SECTION INEP X4 0 ; IF LINK NOT CLEAR LDS & R1 ; SWITCH BACK JMPI& S4 MXEIOI ; AND INDICATE ERROR *** TEMPORARY MOV R5 X4 ; ELSE PUT NEW ABS PNT INTO LINK LDS R1 ; SWITCH BACK MXIOLTOA= 30, MXIOLTOB= OPTWRK ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: ; STATUS XFER FROM MQISTA TO CST ; TRANSFERRED STATUS IS: ; CHANGED STATUS ; SEND STATUS ; RECEIVE STATUS ; CHANNEL BREAK (ASYNC ONLY) ; RELEASE PULSE STUCK MXCPMQ: ; MOV MXICST R4 ; MOV MXIMQI R6 ; MOV MQISTA.X6 R2 ; GET MQI(O) STATUS FLAGS ADDC CSTVF1 R4 ; GET VOLATILE STATUS FLAG PNT IBNP R2 MQISCH ; IF STATUS CHANGED IBN & R2 MQIBEB ; AND CHANNEL BREAK SETS& X4 CSTCBR ; THEN SET CHANNEL BREAK BIT; ; OUTPUT STATUS CHANGE AND ; RELEASE PULSE STUCH HANDLING: IBZ R2 MQISCH ; IF NO STATUS CHANGE JMP MXAI70 ; THEN BYPASS OUTPUT STATUS UPDATE MOD MXOSTM ; PROVIDE INPUT STATUS MASK (PUT) PUT R2 X4 ; PUT STATUS BITS INTO CST IBN R2 MQIRGO ; IF REL PLS GT 1 CHAR SETS X4 CSTRGO ; THEN SET INDICATOR MXAI70: ; END OF OUTPUT STATUS UPDATE IBZ R2 MQIRPS ; IF REL.PULSE NOT SUB-STUCK JMP MXAI90 ; THEN BYPASS REL PULSE CNT ADDC CSTCS3-CSTVF1 R4 ; CALC CSTCS3 PNT SBZP R2 MQITXS ; IF SEND STATUS ON IBZP X4 CSTFLD ; OR (SIMPLEX CHANNEL) IBZ & R2 MQIRXS ; AND RECEIVE STATUS ON) JMP & MXAI80 ; THEN DEC CSTSCN-CSTCS3.X4 ; DECR REL PLS SUPER CNT MOV CSTSCN-CSTCS3.X4 R0 ; GET CURRENT CNT XTR R0 8 ; ISOLATE REL PLS CNT BYTE JON R0 MXAI90 ; IF NONZERO,THEN BYPASS STUCK SET ADDC CSTVF1-CSTCS3 R4 ; ELSE CALC CSTVSF PNT SETS X4 CSTRPS ; SET REL PLS STUCK INDICATOR IBN R2 MQIRPV ; IF REL PLS CURRENT ON SETS X4 CSTRPV ; SET REL PLS VALUE TO ON ADDC CSTCS3-CSTVF1 R4 ; RESTORE CSTCS3 PNT MXAI80: ; PRESET STUCK REL PLS CNT ADDC CSTSCN-CSTCS3 R4 ; RESTORE CSTSCN PNT MOVC MXSTCP X4 ; PRESET STUCK REL PLS CNT BYTE MXAI90: ; END OF REL PLS HANDLING SETS X6 MQIIDP ; THEN SET MQI READY FOR IDP; ;----------------------------------------------------------------------- MXAI95: MOV MXICST R7 ; THEN GET CURRENT CST PNT : MOV R7 OPTCST+STRT; SAVE IN FILE DECLARATI: MXIOLTOA= 40, MXIOLTOB= OPTCST, MXIOLTOC= ML ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: IBN X6 MQIEND ; IF LAST MQI MOV MXPMQI R6 ; THENPRESET MQI PNT ADDC MQIELGT R6 ; INCREMENT TO NEXT MQI MOV R6 MXIMQI ; AND SAVE MQI PNT LDM 2#110 ; OPAN I/O WINDOW LDM 2#111 ; CLOSE WINDOW JMP MXMQIH ; ;FF\f ;======================================================================= MXMQOH: ; HANDLE MQO-ELEMENT MOV MXIMQO R6 ; GET MQO PNT IBZ X6 MQOMXI ; IF ELEMEMT EMPTY JMP MXQLEM MOV MQOFLG.X6 R4 ; GET LOG CHAN NMB IF MQOLAD NE 0 SRL R4 MQOLAD FI ; RIGHT ADJUST LOG CHAN NMB MOD MXICDI ; FROM CDI MOV X4 R7 ; GET ABS CST PNT MOV R7 MXACST ; SAVE ABS CSTPNT MODN BAS ; RELATIVIZE ADDC CSTCS2 R7 ; CALC REL CSTCS2 PNT IBZ X7 CSTSYN ; IF CHAN SETUP FOR SYNC JMP MXASYO ; THEN ;----------------------------------------------------------------------- MXSYNO: ; SYNC OUTPUT HANDLING,ENTRY MOVC 1<GSTREC R0 ; FLAG RECOVERABLE ERROR MOV R0 LINTCAUS ; MOVC <:O:> R4 MOV R4 LINTRET MON ERR JMP MXAO95 ; END SERVING SYNC OUTPUT ;----------------------------------------------------------------------- ; WRITE: FOB.CST, MXIMQO ; MXASYO: ; ASYNC OUTPUT HANDLING, ENTRY MOV MQOSTA.X6 R2 ; GET MQO STATUS IBN R2 MQOBML ; IF BIN MISLINKED JMPI S4 MXEIOI ; THEN CALL ERROR PROCESSING; ADDC CSTSCN-CSTCS2 R7 ; CALC R.P. SUPER CNT PNT SBZ R2 MQOBDS ; IF NO BUFFER DISCONNECTED IBN R2 MQOIBD ; OR DE-QUEUEING INHIBITED JMP MXAO80 ; THEN BYPASS BUFFER HANDLING; ; HANDLE DISCONNECTED BUFFER MOVC MXSTCP X7 ; PRESET REL.PULS STUCK SUPCNT MOV MQOBAD.X6 R5 ; GET ABS BIN PNT MOV R5 MXCLNK ; SAVE BUFFER LINK MOVC 1 R3 ; NMB OF BINS TO BE RELEASED MOV MXACST R4 ; POINT (ABS) CURRENT CST RECORD ADDC CSTFOB R4 ; CALC ABS CSTFOB PNT MON LNOQ ;(NONE KEPT) LINK BIN OUT OF OUTPUT QUEUE JMPI & S4 MXEIOI ; (LESS N BINS LEFT ERROR); MOD MXCLNK ; PROVIDE MQI BIN ADDRESS INE R5 0-0 ; IF NOT IDENTICAL TO FOB.CST JMPI & S4 MXEIOI ; THEN CP SYSTEM ERROR; MON RNBF ; RELEASE BIN TO FREE POOL; JMP MXAO90 ; BYPASS DRY-UP HANDLING MXAO80: ; ELSE IBNP R2 MQOOBE ; IF OUTPUT BUFFER EMPTY ADDC CSTVF1-CSTSCN R7 ; POINT DIRECT CSTVSF FIELD SETS X7 CSTDRY ; FLAG CHAN DR!-UP; MXAO90: ; END OF DRY-UP CHANNEL CHECK; MXAO95: ; MOV MXIMQO R6 ; GET CURRENT MQO ELEMENT XTR X6 1<MQOEND ; CLEAR MQOFLG, EXCEPT MQOEND IBN X6 MQOEND ; IF MQO LAST IN ARRAY MOV MXPMQO R6 ; THEN PRESET ADDC MQOELGT R6 ; TO START OF ARRAY MOV R6 MXIMQO ; SAVE NEW MQO PNT LDM 2#110 ; OPEN I/O WINDOW LDM 2#111 ; CLOSE AGAIN JMP MXMQOH ; GO SERVE NEXT MQO ;----------------------------------------------------------------------- MXQLEM: ; MOV MXIMQI R6 ; GET CURRENT MQI PNT IBN X6 MQIMXI ; IF MORE MQI'S JMP MXMQIH ; THEN GO SERVE; MON RCPU ; RESERVE CPU INTERRUPT MOVC IDLE R0 ; GET PROCESS IDLE STATE MON INQ ; SET PROCESS IDLE JMPI & S4 MXELMI ; (PROCESS NOT KNOWN TO MON); MOV MXIDPL R5 ; GET REL IDP SOZ LTMS4. X5 ; IF LETTER MXI PROPERTY JMP MXQL50 ; THEN DEC LTMS4. X5 ; FLAG LETTER BUSY MOVC IDPLPN R0 ; SET UP IDP AS RECEIVER MOV R0 LTRCV. X5 ; MOVC MXILPN R0 ; SET UP OWN PROCESS ID MOV R0 LTSND. X5 ; AS SENDER. ADD BAS R5 ; MAKE POINTER ABS MON SLET ; SEND LETTER JMPI& S4 MXELMI ; (LETTER DATA ERROR); MON SCH ; ENSURE RECEIVER ACTIVATION JMP MXCPST ; ON CPU INT GO TO MQI HANDLING MXQL50: ; ELSE MON RTI ; RETURN TO INTERRUPTED PROC JMP MXCPST ; ON INTERRUPT, START MMQ HANDLING ;----------------------------------------------------------------------- MXGOBF: ; JMPI S4 MXENBI ; GET BUFFER FOR INPUT BY JMPI S4 MXIERR0 ; *** TEMPORARY STOP *** *** ; GET INPUT BUFFER BY PREEMPTING ; OUTPUT CHANNEL. ; THIS WILL NOT BE IMPLEMENTED, ; UNTIL PREEMPTION PROCEDURE IS ; SETTLED ;FF\f ;======================================================================= ; LETTER DRIVEN PROCESS ;----------------------------------------------------------------------- MXINILETT: ; INITIATE MXI SUBMODULE, ; FIRST PRESET RTC LETTER JMP S6 MXCRP ; CREATE OWN PROCESS MOVC MXRTCL R6 ; JMP S4 MXGLET ; GET PRESET RTC LETTER MOVC 100/10 R0 ; SET UP RTC DELAY 100 MSEC MOV R0 LTMS4. X5 ; ADD BAS R5 ; MAKE LETTER POINTER ABS MON SLET ; START MXI-RTC ACTIVATION JMPI& S4 MXELMI ; (LETTER MECH ERROR); MOV BAS R2 ; POINT ABS OWN BASE MOV GSTPTR R5 ; GET ABS GST POINTER SUB R2 R5 ; MAKE RELATIVE MOV R5 MXGST ; AND SAVE; ADDC GSTCDY R5 ; POINT TO START OF CHANNEL MOV R5 MXCDI ; CDI PART OF GST; ADDC GSTNCC-GSTCDY R5 ; POINT LOC WITH NMB CONNECTED MOV R5 MXNCC ; ADDC GSTNSC-GSTNCC R5 ; NMB OF SYNCHRONEOUS MOV R5 MXNSC ; ADDC GSTNAC-GSTNSC R5 ; NMB OF ASYNCHRONEOUS MOV R5 MXNAC ; MON RTI ; ;FF\f ;======================================================================= ; LTU RELATED SUBCOMMAND-EXECUTION IN MXI SUBMODULE ; ; THE SUBCOMMANDS HANDLED ARE: ; ; SETUP CHANNEL PARAMETERS ; OPEN INPUT CHANNEL ; OPEN OUTPUT CHANNEL ; CLOSE INPUT CHANNEL ; CLOSE OUTPUT CHANNEL ; ; R7 POINTS TO LETTER (REL) ; ; CONTROL ENTERS HERE WHEN A LETTER FROM CMI IS RECEIVED ; ;----------------------------------------------------------------------- MXAWLT: ; MON WL ; AWAIT NEXT LETTER MXGOTL: ; MOV R7 MXLETT ; SAVE REL POINTER TO LETTER MOV LTTYP. X7 R0 ; GET PRIORITY OF LETTER ILO R0 EXPR ; IF SAME OR HIGHER CPU DRIVEN JMP MXGO10 ; THEN MOVC ORDN R0 ; FORCE LETTER DRIVEN PROCESS MON INQ ; TO BE DOWNGRADED; JMPI & S4 MXELMI ; (LETTER MECH ERROR); MOV MXLETT R7 ; RE-ESTABLISH LETTER POINTER MXGO10: ; END DOWNGRADING PROCESS PRIO; MOVC 0 R0 ; MOV R0 MXCDT ; FLAG NO CDT-RECORD RESERVED MXI MOV LTRCV. X7 R4 ; GET SENDER OF THIS LETTER IEQ R4 RTCLPN, JMP MXLRTC ; IF FROM RTC THEN GO SERVE IEQ R4 CMILPN, JMP MXLCMI ; IF FROM CMI THEN GO SERVE IEQ R4 ODPLPN, JMP MXLODP ; IF FROM ODP THEN GO SERVE; JMPI S4 MXEUXI ; ELSE UNRECOVERABLE ERROR; JMP MXAWLT ; GO WAIT FOR VALID LETTER ;----------------------------------------------------------------------- MXINVT: ; JMP S4 MXCPE ; SUB-COM'D TYPE 0 - SHOULD HAVE ; FILTERED BY CMI; ;----------------------------------------------------------------------- ; COMPLETION CODE GENERATION ; -------------------------- MXCPE: MODC CMCCPE-CMCCME ; 6 - CP ERROR DETECTED SYNCERR: ; *** TEMPORARY BRAKE *** SYNC MXCME: MODC CMCCME-CMCATV ; C - COMMAND ERROR MXATV: MOVC CMCATV-MXLTOK R2 ; E - ATTEMPTED VIOLATION MOV MXCST R6 ; GET CURRENT CST PNT ADDC CSTVF1 R6 ; CALC CURRENT VSF PNT SETS X6 CSTSUE ; INDICATE CHANNEL SETUP ERROR MOD MXGST ; MOV R4 GSTSBR ; SAVE LOC POINTER AS REFERENCE MOD R2 ; CONTINUE COMPL. CODE GENERATION MXGO50: MOVC MXLTOK R2 ; ON NORMAL RETURN GET OK-CODE MOV MXCDT R7 ; POINT CURRENT CDT RECORD; JOZ R7 MXGO90 ; IF CDT RECORD RESERVED MXI ADDC CDNCT R7 ; POINT CDT INDICATORS RELS X7 CDUSED ; RELEASE CDT RECORD TO MUX; MOV R7 OPTCDT+STRT; SAVE IN FILE DECLARATI: MXIOLTOA=100, MXIOLTOB= OPTCDT, MXIOLTOC= MN ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: MXGO90: ; END RELEASING CDT RECORD; MXIOLTOA= 105, MXIOLTOB=OPTWRK ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: LDM 2#100 ; ALLOW CPU AND I/0 INT MOV MXLETT R5 ; GET REL LETTER PNT MOV R2 MXCMP.X5 ; PUT RETURN CODE INTO LETTER ADD BAS R5 ; ABSOLUTIZE LETTER PNT MON SLET ; SEND LETTER JMPI & S4 MXELMI ; ON LETTER CONTROL ERROR JMP MXAWLT ; GO AWAIT NEXT LETTER ;FF\f ;======================================================================= ; ; CASE SERVE RTC LETTER ; ; THIS PROCEDURE WILL BE USED TO ESTABLISH A REGULAR 100 MSEC ; SERVICE FROM THE CPU-INTERRUPT DRIVEN PART OF THE MXI SUBMODULE ; OF CURRENTLY ACTIVE MQI/MQO'S. THIS IS DONE VIA A REGULAR SCHED- ; ULING DONE BY THE RTC SUBMODULE EACH 100 MSEC WHEREUPON THE ; OTHER PART IS ENVOKEN BY A CPU INTERRUPT. ; ; WRITE: TIMER FIELD OF DEDICATED RTC LETTER ; ; CALLED BY: MAIN LINE ; CALL TO: MXAWLT OF MAIN LINE ; ;==========================U_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DIVE LDM 2#111 ; TO ALLOW MQI/MQO BEING DONE; MOVC 100/10 R0 ; SET UP DELAY OF 100 MSEC MOV R0 LTMS4.X7 ; BEFORE NEXT WAKE-UP MON SLET ; ACTIVATE RTC-MXI AGAIN JMPI& S4 MXELMI ; (LETTER MECH ERROR); JMP MXAWLT ; RETURN MAIN LINE TO SERVE; ; ;FF\f ;======================================================================= ; ; CASE SERVE ODP LETTER ; ; PRE-EMPT CHANNEL ; ; READ: MXCDI ; WORK: MXCST, MXCDT ; WRITE: (FOB, LOB, NOB).CST, -.CDT ; ; CALLED BY: MAIN LINE ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;----------------------------------------------------------------------- MXLODP: MOVC CMILPN R2 ; FORCE CMI TO BE MOV R2 LTRCV. X7 ; RECEIVER; MOV BAS R2 ; GET OWN BASE MOV LTMS3. X7 R4 ; GET OFR DAT1,DAT2 FIELDS SRL R4 8 ; ISOLATE CHANNEL NMB; MOD MXCDI ; POINT CORRESPONDING LIB IN GST MOV X4 R4 ; GET ABS CST-RECORD ADDRESS SUB R2 R4 ; MADE REL OWN BASE; MOV R4 MXCST ; MOV CSTCDT.X4 R7 ; GET ABS ASSOCIATED CDT-RECORD SUB R2 R7 ; FORCE REL OWN BASE; MOV R7 MXCDT ; SAVE FOR LATER ADDC CDNCT R7 ; POINT RESERVATION FLAGS MXOD10: RESS X7 CDUSED ; DO UNTIL CDT-RECORD FREE JMP MXOD10 ; WAIT FOR MUX; LDM 2#101 ; OPEN CPU INTR'PT WINDOW CPU ; FORCE CPU-INTR'PT DRIVEN ACTIVE LDM 2#111 ; TO ALLOW MQI/MQO BEING DONE; MOV CSTNOB.X4 R3 ; GET NMB OF OUTBOUND BINS ADD R2 R4 ; RE-ESTAB ABS CST-REC ADDR ADDC CSTFOB R4 ; AND POINT QUEUE CONTROL BLOCK MON LNOQ ; RELEASE BINS FROM QUEUE JMPI& S4 MXCPEI ; (NOT NOB.CST BINS RETURN); MON RNBF ; RELEASE BINS TO FREE POOL; MOVC 1 R3 ; SET UP FOR GETTING ONE OUTPUT BIN MON GNOB ; GET OUTPUT BIN JMPI & S4 MXATVI ; (NO BINS AVAIL); MOVC 1 R3 ; RE-ESTAB DUMMY BIN COUNT MOV MXCST R4 ; POINT REL CURRENT CST REC MOD BAS ; ADDC CSTFOB R4 ; ABS OUTPUT BIN QUEUE CONTROL MON LNIQ ; ENTER (EMPTY) BIN AS OUTPUT MON GBS ; GET ACTUAL MEM SECTION MOVC 15 R0 ; CLRS R3 R0 ; FORCE MUX PSW 2#011 MOV MXCDT R7 ; POINT CURRENT CDT RECORD MOV R3 CDOMSA.X7 ; UPDATE BIN POINTER MOV R5 CDOBUF.X7 ; CLR CDOCCA.X7 ; FLAG ALL CHARS OUTPUTTED CLR CDOSTA.X7 ; RESET OUTPUT STATUS MOVC 1<MQOBNA R0 ; FLAG BIN NOT AVALABLE MOV R0 CDOEST.X7 ; JMP MXGO50 ; NORMAL RETURN TO CMI ;FF\f ;======================================================================= ; ; CASE SERVE CMI LETTER ; ; READ: MXNCC, MXCDI ; WRITE: NCT.CDT(CDUSED), MXCST, MXCDT ; ; CALLED BY: MAIN LINE ; CALL TO: MXSTUP, MXOPIC, MXCLIC, MXOPOC, MXCLOC, MXCPE(ON ERROR) ;----------------------------------------------------------------------- MXLCMI: ; MOV BAS R0 ; POINT ABS OWN BASE MOV LTMS2. X7 R5 ; GET SUB COMD PNT SUB R0 R5 ; RELATIVIZE MOV SBBTYP/2.X5 R3 ; GET SUB-COM'D TYPE IF (SBBTYP AN 1) EQ 0 XTR R3 8 ; ISOLATE SUB-COM'D TYPE ALONE ELSE SRL R3 8 FI ; MOV SBBLOG/2.X5 R2 ; GET LOGICAL CHANNEL NMB IF (SBBLOG AN 1) EQ 0 XTR R2 8 ; ISOLATE CHANNEL NMB; ELSE SRL R2 8 FI ; MOV MXNCC R4 ; POINT LOC WITH CONNECTED IHS R2 X4 ; IF REQUESTED LOG CHANNEL INV JMP S4 MXCPE ; THEN CP ERROR; MOV R2 R4 ; GET LOG CHAN NMB TO INDEX REG MOD MXCDI ; FROM CDI MOV X4 R6 ; GET ABS CUR CST PNT SUB R0 R6 ; FORCE RELATIVE MOV R6 MXCST ; AND SAVE REL CURRENT CST; MOV CSTCDT.X6 R7 ; GET ABS CDT PNT SUB R0 R7 ; FORCE RELATIVE OWN BASE; MOV R7 MXCDT ; SAVE CURRENT CDT-REC POINTER ADDC CDNCT R7 ; POINT CDT WORD WITH RESERVE BIT MXLC50: RESS X7 CDUSED ; DO UNTIL CDT RECORD RELEASED JMP MXLC50 ; WAIT FOR CDT FREE; LDM 2#101 ; OPEN CPU INTR'PT WINDOW CPU ; FORCE lPu-INTR'PT DRIVEN ACTIVE LDM 2#111 ; TO ALLOW MQI/MQO BEING DONE; IHS R3 MXCMAX ; IF TYPE OUT OF RANGE JMP S4 MXCPE ; MOD R3 ; JMPI MXCSTY ; THEN GO TO CASE OF TYPE ;FF\f ;======================================================================= ; SETUP CHANNEL PARAMETERS ; ; . CHANNEL MUST BE IN A CLOSED STATE (INPUT AND OUTPUT CLOSED); ; . THE CST IS FILLED WITH CHANNEL SETUP PAREMETERS. ; . ALPHABET CONVERTION TABLE REFERENCE INSERTED IN CST FOR IDP USE ; . THE ASSOCIATED LTU IS DISABLED AND FILLED WITH A TRANSLATION ; OF THE CHANNEL SETUP PARAMETERS. ; . THE CDT WILL BE UPDATED EXCEPT FOR THE LINK AND TIMER FIELDS ; . THE CHANNEL IS DECLARED SETUP. ; ; REGISTERS CALL ; R5 SUBCOMMAND (TYPE, SEQ.NMB, ETC...) ; R6 REL TOP OF CST ; R7 NCT.CDT POINTER ; ; READ: MXGST, MXNAC, MXSUCS-CHAIN, MXSPAC, MXRPAT, MXIMCX, ; MXDMOP, MXCST, (CS2,CS3).CST-INDICATORS ; WORK: MXMOD0, MXMOD1, MXR7SV ; WRITE: (CS1, CS2, CS3, TTA).CST, CDT-RECORD, (BYTE 0 & 1).LTU ; ; CALLED BY: MXLCMI ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;----------------------------------------------------------------------- MXSTUP: ; CHANNEL PARAMETER SETUP, ENTRY MOV CSTCS2.X6 R2 ; GET OPEN/CLOSE CST STATUS WORD SBN R2 CSTOCO ; IF OUTPUT IBN R2 CSTICO ; OR INPUT OPEN JMPI S4 MXATVI ; THEN INDICATE VIOLATION; IBN X7 CDOPEN ; IF EITHER IN/OUTPUT CHANNEL OPN JMPI S4 MXCPEI ; THEN MXI CP ERROR; ; MOV R6 R4 ; ADDC CSTCS1 R4 ; GET DEST PNT ADDC SBCSU1 R5 ; GET SOURCE PNT MODC SBCSUC ; GET WORD CNT MOVM X5 X4 ; INSERT SUBCOMMAND INTO CST ADDC (CSTCS2-CSTCS1)-SBCSUC R4 ; POINT DIRECT INDIC IN CSTCS2 RELS X4 CSTICO ; FORCE CHANNEL CLOSED RELS X4 CSTOCO ; FOR INPUT/OUTPUT RELS X4 CSTCSU ; FLAG CHANNEL BEING SET-UP; MOVL CSTCS1.X6 R12 ; GET JUST-INSTALLED CHAN STATUS MXIOLTOA=150, MXIOLTOB= 0 ; ;MXIOLTO ;................................................................. IF MXIOLTO ; : MOV R7 MXR7TS ; SAVE R7 DURING OLTO TEST : MOV TSWITCH R7 ; GET OLTO TEST SWITCH : IF MXIOLTOB EQ 0 ; : JOZ R7 LOC+4 ; IF TEST SWITCH ON : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : ELSE ; : JOZ R7 LOC+7 ; IF TEST SWITCH ON : MON OLTO ; FORCE REGISTER DUMP : (MXIOLTOC+MXI)<8+MXIOLTOA ; : OPTREG ; : MON OLTO ; THEN : (MXIOLTOC+MXI)<8+MXIOLTOA+1 ; ACTIVATE : MXIOLTOB ; ON LINE TEST OUTPUT; : FI ; : MOV MXR7TS R7 ; RE-ESTABLISH R7 CONTENT; : FI ; : ;................................................................: IBZP R2 CSTALP ; IF ALPHABETH ITA-2 IBN R2 CSTSYN ; AND SYNCHRONEOUS CHANNEL JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT; IF CSTLAD NE 0 SRL R1 CSTLAD ; ISOLATE LOGICAL CHAN NMB ELSE XTR R1 CSTLAX FI ; MOV MXNAC R4 ; IBZP R2 CSTSYN ; IF ASYNCHRONEOUS LINE IHS R1 X4 ; AND LOG CHAN WITHIN SYNC JMPI S4 MXATVI ; THEN VIOLATION ATTEMPT IBNP R2 CSTSYN ; IF SYNCHRONEOUS LINE ILO R1 X4 ; AND WITHIN ASYNC RANGE JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT; IBN R2 CSTALP ; IF ITA5 ALPHABET SPECIFIED MODC GST55-GST25L ; ADD TABLE DIFFERENCE MOD MXGST ; FROM GST MOV GST25L R5 ; GET XLATE TABLE PNT MOV R5 CSTTTA.X6 ; SAVE TABLE PNT IN CST MOV CSTCS1.X6 R1 ; GET PHYSICAL CHAN ADDRESS IF CSTPAD NE 0 SRL R1 CSTPAD ; RIGHT ADJUST PHYSICAL ADDRESS ELSE XTR R1 CSTPAX FI ; ISOLATE PHYSICAL ADDRESS ILO R1 #10 ; IF PHYSICAL CHAN LESS #10 JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT; ; *** HERE IT MIGHT BE CHECKED THAT NOT TWO CHANNELS AS IDENTICAL *** IBZ R2 CSTSYN ; IF SETUP DOES NOT SPEC SYNC CHAN JMP MXST50 ; THEN HANDLE ASSYNC JMP S4 SYNCERR ; *** TEMPORARY BRAKE *** SYNC MXST50: MXST51: SIO R4 R1 ; READ MODE 0 BYTE IBN R4 LTASYS ; IF SYNC BIT SET JMPI S4 MXATVI ; INDICATE VIOLATION SETS R4 LTADSS ; SET CHANNEL DISABLE BIT SETS R4 LTARSS ; SET CHANNEL RESET BIT CIO R4 R1 ; WRITE MODE 0 BYTE MOV R1 MXPHY ; SAVE LTU PHYSICAL ADDRESS MOVC MXASYW R0 ; GET ASYNC LTU RESET WAIT CNT MXST70: SOB R0 MXST70 ; WAIT FOR ASYNC LTU TO RESET MOVC MXMOD0 R0 ; PRESET LTU SETUP AREA MOVC MXMOD1 R1 ; GET LTU MODE 1 PNT MOVC 0 X0 ; MOVC 0 X1 ; ;FF\f ; SINGLE BIT FIELD SETUP MOV CSTCS3.X6 R3 ; IBN R2 CSTALP ; SET CHARACTER LENGTH SETS X1 LTACLS ; IBN R3 CSTFLD ; IF FULL DUPLEX SETS X1 LTAFDS ; SET FULL DUPLEX DESIGN ; MULTIPLE BIT FIELD SETUP MOVC MXSUCS R4 ; DO WHILE FIELDS TO SERVE MXST80: MOV MXCTL. X4 R2 ; GET CONTROL WORD XTR R2 4 ; GET CST WORD DESIG MOD R2 ; MOV CSTCS1.X6 R3 ; GET SELECTED CST WORD MOV MXMSK. X4 R2 ; GET FIELD MASK AND R2 R3 ; ISOLATE FIELD MOV MXCTL. X4 R2 ; SRL R2 4 ; MOD R2 ; SRL R3 0-0 ; RIGHT ADJUST FIELD MOV MXVAL. X4 R2 ; GET VALIDITY TEST MASK MOD R3 ; MOD WITH VALUE IBZ R2 0-0 ; IF VALUE POINTS TO NONSET BIT JMPI S4 MXCMEI ; THEN VALUE IS INVALID ADDC MXTAB R3 ; POINT REL FIELD DESCRIPTOR ADD R4 R3 ; POINT BASE REL MOV MXCTL. X4 R2 ; GET CONTROL SRL R2 8 ; ISOLATE LTU MODE BYTE DESIG MOD R2 ; USE MODE BYTE DESIGNS DISPLACE IOR X3 X0 ; INSERT CONVERTED FIELD INTO BYTE SOZP MXLNK. X4 ; IF NOT LAST FIELD DESCRIPTOR MOV MXLNK. X4 R4 ; THEN POINT NEXT ENTRY JMP MXST80 ; END DO WHILE FIELDS TO SERVE; ; MOV CSTCS3.X6 R1 ; GET BAUDRATE IF CSTBRT NE 0 SRL R1 CSTBRT FI ; RIGHT ADJUST BAUDRATE FIELD XTR R1 CSTBRX ; ISOLATE IGE R1 MXMESP ; IF MED SPEED CHANNEL MODC MX05SP-MX30SP ; PREP MED.SPD.HLT MSG CNT MOVC MX30SP R2 ; GET LOW SPEED HLT. MSG BIN CNT MOV R2 CSTHME.X6 ; PUT MSG HALTED PRESET CNT IN CST ;----------------------------------------------------------------------- ; INSTALL PARAMETERS IN CDT ; AT CHANNEL SETUP, CDT IS PRESET MOV R7 R0 ; GET PNT TO CDT (MXTYP) ADDC CDPCA-CDNCT R0 ; GET PNT TO CDT (MXTIM) MOV R0 R2 ; ADDC 1 R2 ; GET CDT(MXTYP+1) REL PNT MOVC 0 X0 ; CLEAR CDT(MXTYP) MODC CDTELGT-17-(CDPCA-CDLINK) MOVM X0 X2 ; CLEAR MXTIM TO MXOSTA MOVM X0 X2 MOV MXSPAC R2 ; GET THE PRESET BLOCK COUNT MOV R2 CDSPAC-CDNCT.X7 ; PRESET STUCK TAPE COUNT FIELDS; MOV MXRPAT R2 MOV R2 CDRPAT-CDNCT.X7 ; PRESET REL.PLS COUNT FIELDS MOV MXIMCX R2 ; INPUT BUFFER PRESET VALUE MOV R2 CDIMCX-CDNCT.X7 ; ; ; TRANSFER MODE OF OPER FROM CST MOV CSTCS2.X6 R0 ; GET MOP FROM CST MOV R0 R3 ; IF CSTMOP NE 0 SRL R0 CSTMOP FI ; RIGHT-ADJUST CST MODE WORD XTR R0 CSTMOX ; ISOLATE CST MODE OF OPERATION IHS R0 MXDMAX ; IF SPECIFIED MODE OUTSIDE RANGE JMPI S4 MXATVI ; THEN VIOLATION ATTEMPT; IBN R3 CSTEDC ; IF SYNCHRONEOUS CHAN WITH EDC ADDC 1<CSTMOP R0 ; THEN INCREASE MODE FLAG; MOD R0 ; USE TABLE LOOK-UP MOV MXDMOP R0 ; TO GET CDT MODE; IF CDMOP NE 0 SLL R0 CDMOP FI ; THEN POSITION MODE FIELD; IOR R0 X7 ; INSERT MOP INTO CDT(MXTYP) MOVC MXLSBD R3 ; GET LOW SPEED BUF DISCON. TIME IGE R1 MXMESP ; IF CHANNEL IS MED SPEED MOVC MXMSBD R3 ; THEN GET MED.SP. BUF DISCON TIME MOV R3 CDPBCT-CDNCT.X7 ; PNT IN CDT (MXPBCT) MOV R3 CDBCT-CDNCT. X7 ; PNT IN CDT (MXBCT) MOV CSTCS3.X6 R4 ; GET BLK LGT STATUS WORD IF CSTBLT NE 0 SRL R4 CSTBLT FI ; RIGHT ADJUST BLK LGT FIELD XTR R4 CSTBLX ; ISOLATE BLK LGT FIELD MOV MXBLKT.X4 R1 ; GET CONVERTED BLOCKLENGTH MOV R1 CDOPBC-CDNCT.X7 ; PRESET BUFFER CONNECT TIME MOV R1 CDOBLC-CDNCT.X7 ; CURRENT VALUE AS WELL; MOVC 1<MQOBNA R0 ; FORCE OUTPUT IN DRIED UP STATE MOV R0 CDOEST-CDNCT.X7 ; FOR THIS CHANNEL SVS R0 ; GET OWN PSW MOVC 15 R1 ; CLRS R0 R1 ; FORCE MUX PSW 2#011 MOV BAS R1 ADD R7 R1 ; SIMULATE EMPTY BIN BY USING ADDC CDOSTA-CDNCT R1 ; INTO OWN CDT-RECORD; MOVL R01 CDOMSA-CDNCT.X7 ; MOVC 2 R3 ; SET UP TO GET MUX IDLE BINS MOV R7 MXR7SV ; SAVE PNT MON GNIB ; GET INPUT BUFFERS SPECIFIED JMPI& S4 MXGOBFI ; (GO GET FROM OUTPUT BUFS); MOVC 15 R7 ; CLRS R3 R7 ; FORCE MUX PSW 2#011 MOV MXR7SV R7 ; RE-ESTABLISH CDT POINTER; MOV R3 CDIMSA-CDNCT.X7 ; INSTALL INBUF SECTION IN CDT MOV R5 CDIBUF-CDNCT.X7 ; FIRST BUFFER AS WELL; MOV MXPHY R2 ; GET CURRENT LTU CHANNEL ADDR MOV R2 CDPCA-CDNCT.X7 ; PUT PHYSICAL ADDRESS INTO CDT MOVC -1 R1 ; RESET THE LTU ENTIRELY MODC 2#1001<12 ; WIO R1 R2 ; LOOP MODE LATCH OF LTU CLEAR MOVC MXMOD0 R1 ; GET MOD0 BUILD WORD PNT CIO X1 R2 ; PUT MODE 0 BYTE INTO LTU MOVC MXMOD1 R1 ; GET MODE1 BUILD WORD PNT MOD8 MODE1 ; ADDRESS LTU MODE 1 BYTE CIO X1 R2 ; PUT MODE 1 BYTE INTO LTU MOV MXCST R4 ; GET CST POINTER ADDC CSTCS2 R4 ; ADJUST TO CST INDICATORS SETS X4 CSTCSU ; AND FLAG CHANNEL SET-UP; JMP MXGO50 ; NORMAL RETURN TO CMI ;FF\f ;======================================================================= ; OPEN INPUT CHANNEL ; ; . CHANNEL MUST HAVE BEEN SET UP PREVIOUSLY, NOT OPEN AND NOT IN ; TEST MODE FOR THE OPEN INPUT SEQUENCE TO BE EXECUTED. ; . THE ASSOCIATED LTU IS ENABLED ; . INTERNAL LTU'S ARE SET IN 'CLEAR TO SEND' HIGH ; . THE TWO DUMMY BINS AT CDT ARE RESET (AS INPUT BINS). ; . CDT COUNTERS ARE PRESET AND THE CHANNEL DECLARED OPEN TO MUX ; ; REGISTERS CALL ; R5 SUBCOMMAND (TYPE, SEQ.NMB, ETC...) ; R6 REL TOP OF CST ; R7 NCT.CDT POINTER ; ; READ: MXRPAT, MXSPAC, MXIMCX, (PCA, IMSA, IBUF).CDT, LNK.BIN, ; CS2.CST(CSTSYN, CSTCSU, CSTTST) ; WRITE: STA.BIN, (IEST, ISTA, BCT, RPAT, SPAC, IMCX).CDT, ; CS2.CST(CSTICO), NCT.CDT(CDOPEN) ; ; CALLED BY: MXLCMI ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;----------------------------------------------------------------------- MXOPIC: MOV CSTCS2.X6 R2 ; CET CHANNEL STATUS INDICATORS SBNP R2 CSTTST ; IF LTU TEST MODE BIT HIGH SBN & R2 CSTICO ; OR CHANNEL ALREADY OPEN IBZ & R2 CSTCSU ; OR NOT SET-UP JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT MOV CDPCA-CDNCT.X7 R1 ; GET PHYSICAL ADDRESS OF LTU IBZ R2 CSTSYN ; IF CHANNEL NOT SYNC JMP MXOI70 ; THEN GO HANDLE ASYNC JMP S4 SYNCERR ; *** TEMPORARY BRAKE *** SYNC MXOI70: ADDC -CDNCT R7 ; POINT START OF CDT RECORD SON CDIBUF.X7 ; IF POINT EARTHED JMPI S4 MXCPEI ; THEN INDICATE ERROR; SIO R4 R1 ; SENSE LTU MOVC LTADSS R3 ; GET ASYNC CHAN DISAB. BIT CLRS R4 R3 ; CLEAR DISABLE BIT CIO R4 R1 ; CONTROL LTU MOVC 0 R3 ; FORCE 'CLEAR TO SEND' HIGH MODC 2#0010<12 ; ADDRESS LTU 'CLEAR TO SEND' WIO R3 R1 ; (ACTIVE ONLY ON INTERNAL LTU'S) SETS R2 CSTICO ; SET INPUT CHANNEL OPEN IN CST MOV R2 CSTCS2.X6 ; SAVE UPDATED CSTCS2 STATUS WORD SVS R0 ; SAVE CURRENT STATUS MOV BAS R1 ; GET OWN BASE MOVC 1<BINIO R2 ; FLAG INPUT BIN MOV CDIMSA.X7 R3 ; GET MEM SECTION ADDRESS SETS R3 15 ; FORCE COM-CPU PSW TO BE 2#111 MOV CDIBUF.X7 R5 ; GET CURRENT BIN ADDRESS SUB R1 R5 ; RELATIVE LDS R3 ; SHIFT TO INPUT BIN SECTION MOV BINLNK.X5 R4 ; GET LINKAGE TO NEXT BIN MOV R2 BINSTA.X5 ; RESET STATUS TO INDICATE FREE MODN R1 MOV R2 BINSTA.X4 ; INPUT BINS; LDS R0 ; RETURN CURRENT SECTION CLR CDIEST.X7 ; CLEAR INPUT ERROR STATUS CLR CDISTA.X7 ; CLEAR INPUT STATE MOV CDPBCT.X7 R2 ; GET BUFFER DISCONNECT TIM PRESET MOV R2 CDBCT. X7 ; PRESET BUFFER DISCONNECT TIMER MOV MXRPAT R2 ; GET PRESET/CURRENT START UP MOV R2 CDRPAT.X7 ; VALUE RELEASE PULSE STUCK; MOV MXSPAC R2 ; GET PRESET/CURRENT START UP MOV R2 CDSPAC.X7 ; VALUES OF STUCK TAPE COUNTS; MOV MXIMCX R2 ; GET MAX/CURRETN CHAR COUNT MOV R2 CDIMCX.X7 ; PRESET; ADDC CDNCT R7 ; GET PNT TO CDT (MXTYP) SETS X7 CDOPEN ; FLAG AT LEAST ONE CHANN5L O|5N JMP MXGO50 ; NORMAL RETURN TO CMI ;======================================================================= ; CLOSE INPUT CHANNEL ; ; . INPUT PART OF CHANNEL MUST BE IN OPEN STATE (ELSE ETTEMPT VIO) ; . INTERNAL LTU'S WILL HAVE 'CLEAR TO LEND' FORCED LOW ; . THE LTU WILL NOT BE DISABLED ; . INPUT BUFFERS CONNECTED TO THE CDT ARE DISCONNECTED AND LINKED ; INTO THE APPROPRIATE INPUT QUEUE (FIB.CST). ; . TWO DUMMY INPUT BINS ARE LINKED TO THE CDT TO AVOID MUX DRY-UP ; . IF CHANNEL CLOSED FOR OUTPUT THE CDT WILL BE DECLARED CLOSED ; ; REGISTERS CALL ; R5 SUBCOMMAND (TYPE, SEQ.NMB, ETC...) ; R6 REL TOP OF CST ; R7 NCT.CDT POINTER ; ; READ: MXCST, MXCDT, CS2.CST(CSTOCO), PCA.CDT ; WRITE: (FIB, LIB, NIB).CST, (IMSA, IBUF).CDT, CS2.CST(CSTICO), ; NCT.CDT(CDOPEN) ; ; CALLED BY: MXLCMI ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;----------------------------------------------------------------------- MXCLIC: ; ADDC CSTCS2 R6 ; GET PNT TO CST (CSTCS2) IBZ X6 CSTICO ; IF NOT OPEN JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT RELS X6 CSTICO ; CLEAR INPUT OPEN BIT IN CST MOV CDPCA-CDNCT.X7 R1 ; GET PHYSICAL ADDRESS OF LTU MOVC -1 R3 ; FORCE 'CLEAR TO SEND' LOW MODC 2#0010<12 ; ADDRESS LTU 'CLEAR TO SEND' WIO R3 R1 ; (ACTIVE ONLY ON INTERNAL LTU'S) MOV CDIBUF-CDNCT.X7 R5 ; GET CURRENT BUFFER IEQ R5 0 ; IF LINK ALLREADY ZERO JMPI S4 MXCPEI ; (CP ERROR); MOVC 1 R4 ; TRY BUFFER COUNT = 1 MOV R5 R6 ; SAVE ADDRESS OF FIRST BUFFER MOV CDIMSA-CDNCT.X7 R3 ; GET SECTION ADDRESS FROM CDT SETS R3 15 ; FORCE COM-CPU PSW TO BE 2#111 MON GNBA ;(4,6 KEPT) GET NEXT BUFFER ADDRESS JMP MXCI50 ; ON ZERO IN LINK: JMP ADDC 1 R4 ; INCREMENT BUFFER COUNT MON GNBA ;(4,6 KEPT) GET NEXT LINK JMP MXCI50 ; ON LINK ZERO: CONTINUE NORMALLY JMPI S4 MXCPEI ; (CP ERROR); MXCI50: ; MOV R4 R3 ; POSITION BUFFER COUNT XCH R6 R5 ; POSITION FIRST/LAST BUFFER PNT MOV MXCST R4 ; GET CURRENT REL CST PNT. MOD BAS ; ABSOLUTIZE ADDC CSTFIB R4 ; GET CURRENT ABS CSTFIB PNT MON LNIQ ; LINK ONE OR TWO BUFFERS INTO QUEUE MOVC 2 R3 ; SET UP TO GET MUX IDLE BINS MON GNIB ; GET INPUT BUFFERS SPECIFIED JMPI& S4 MXGOBFI ; (GO GET FROM OUTPUT BUFS); MOVC 15 R7 ; CLRS R3 R7 ; FORCE MUX PSW TO BE 2#011 MOV MXCDT R7 ; RE-ESTABLISH CDT POINTER; ADDC CDNCT R7 ; POINT CDT INDICATORS MOV R3 CDIMSA-CDNCT.X7 ; INSTALL INBUF SECTION IN CDT MOV R5 CDIBUF-CDNCT.X7 ; FIRST BUFFER AS WELL; MOV MXCST R6 ; RE-ESTABLISH CST POINTER ADDC CSTCS2 R6 ; POINT CST FLAGS IBZ X6 CSTOCO ; IF OUTPUT CHANNEL CLOSED AS WELL RELS X7 CDOPEN ; THEN FLAG BOTH CLOSED; JMP MXGO50 ; NORMAL RETURN TO CMI ;FF\f ;======================================================================= ; OPEN OUTPUT CHANNEL ; ; . CHANNEL MUST HAVE BEEN SET UP PREVIOUSLY, NOT OPEN AND NOT IN ; TEST MODE FOR THE OPEN OUTPUT SEQUENCE TO BE EXECUTED. ; . THE ASSOCIATED LTU IS ENABLED ; . THE FIRST AVAILABLE OUTPUT BINS IF ANY ARE CONNECTED TO THE CDT ; ELSE THE CDT WILL BE SET IN A DRIED UP STATE WITH A DUMMY BIN. ; . THE CHANNEL IS DECLARED OPEN TO THE MUX. ; ; REGISTERS CALL ; R5 SUBCOMMAND (TYPE, SEQ.NMB, ETC...) ; R6 REL TOP OF CST ; R7 NCT.CDT POINTER ; ; READ: MXCST, MXCDT, FOB.CST, (PCA, OPBLC).CDT, ; CS2.CST(CSTCSU, CSTTST) ; WORK: MXBSA ; WRITE: CS2.CST(CSTOCO), (OEST, OMSA, OBUF, OBLC, OSTA).CDT, ; NCT.CDT(CDOPEN) ; ; CALLED BY: MXLCMI ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;------------------------------------------------------------------------------- MXOPOC: ; OPEN OUTPUT CHANNEL, ENTRY MOV CSTCS2.X6 R2 ; GET CHANNEL STATUS INDICATORS SBNP R2 CSTTST ; IF LTU TEST MODE BIT HIGH SBN & R2 CSTOCO ; OR CHANNEL ALREADY OPEN IBZ & R2 CSTCSU ; OR NOT SET-UP JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT; MOV CDPCA-CDNCT.X7 R1 ; GET PHYSICAL ADDRESS OF LTU IBZ R2 CSTSYN ; IF CHANNEL NOT SYNC JMP MXOO50 ; GO HANDLE ASYNC CHANNEL JMP S4 SYNCERR ; *** TEMPORARY BRAKE *** SYNC MXOO50: SIO R4 R1 ; SENSE LTU MOVC LTADSS R3 ; CLRS R4 R3 ; CLEAR CHANNEL DISABLE BIT CIO R4 R1 ; CONTRI SETS R2 CSTOCO ; SET OUTPUT OPEN IN CSTCS2 MOV R2 CSTCS2.X6 ; PUT CSTCS2 BACK INTO CST MOV CSTFOB.X6 R5 ; GET CURRENT CSTFOB CONTENTS JOZ R5 MXOO80 ; IF OUTPUT TO HANDLE MON GBS ;(4,6 KEPT) GET BIN SECTION ADDRESS MOVC 0 R0 ; FLAG OUTPUT READY JMP MXOO90 ; MXOO80: ; ELSE MOVC 1 R3 ; SET UP TO GET ONE BIN MON GNOB ;(NO REGS) GET AN EMPTY OUTPUT BIN JMPI & S4 MXATVI ; (NO BINS AVAIL); MOV R3 MXBSA ; SAVE DUMMY BIN PSW; MOVC 1 R3 ; SET FOR LINKING IN ONE BIN MOV MXCST R4 ; POINT REL CURRENT CST RECORD MOD BAS ; ADDC CSTFOB R4 ; POINT ABS QUEUE CONTROL MON LNIQ ; LINK INTO EMPTY QUEUE MOVC 1<MQOBNA R0 ; FLAG BIN NOT AVALABLE MOV MXBSA R3 ; RE-ESTABLISH BIN PSW MXOO90: ; END LINKING BIN FOR OUTPUT; MOVC 15 R7 ; CLRS R3 R7 ; FORCE MUX PSW TO BE 2#011 MOV MXCDT R7 ; RE-ESTABLISH CDT POINTER MOV R0 CDOEST.X7 ; PRESET OUTPUT STATUS CORRECT; MOV R3 CDOMSA.X7 ; INSTALL SECTION IN CDT MOV R5 CDOBUF.X7 ; INSTALL BIN ADDRESS IN CDT MOV CDOPBLC.X7 R2 ; GET BLK CNT PRESET MOV R2 CDOBLC.X7 ; PUT BLK CNT PRESET INTO CDT CLR CDOSTA.X7 ; CLEAR OUTPUT STATUS ADDC CDTYP R7 ; GET PNT TO CDT (MXTYP) SETS X7 CDOPEN ; FLAG AT LEAST ONE CHANNEL OPEN JMP MXGO50 ; NORMAL RETURN TO CMI ;======================================================================= ; CLOSE OUTPUT CHANNEL ; ; THE CHANNELS OUTPUT PART IS SET CLOSED IN CDT ; ; . THE OUTPUT BUFFERS ARE LEFT UNCHANGED. ; . IF CHANNEL CLOSED FOR INPUT THE CDT WILL BE DECLARED CLOSED ; ; REGISTERS CALL ; R5 SUBCOMMAND (TYPE, SEQ.NMB, ETC...) ; R6 REL TOP OF CST ; R7 NCT.CDT POINTER ; ; READ: CS2.CST(CSTTST, CSTICO) ; WRITE: (OEST, OMSA, OBUF).CDT, NCT.CDT(CDOPEN), CSI.CST(CSTOCO) ; ; CALLED BY: MXLCMI ; CALL TO: MXGO50 (SUCCESFULL), MXATV, MXCME, MXCPE (ON ERRORS) ; ;----------------------------------------------------------------------- MXCLOC: ; CLOSE OUTPUT CHANNEL, ENTRY MOV CSTCS2.X6 R2 ; GET CHANNEL STATUS INDICATORS IBN R2 CSTTST ; IF LTU TEST MODE BIT HIGH JMPI S4 MXATVI ; THEN FLAG VIOLATION ATTEMPT; MOVC 1<MQOBNA R0 ; FORCE CHANNEL DRIED UP MOV R0 CDOEST-CDNCT.X7 ; SVS R0 ; GET OWN PSW MOVC 15 R1 ; CLRS R0 R1 ; FORCE MUX PSW TO BE 2#011 MOV R7 R1 ; GET ADDRESS CURRENT CDT RECORD MOD BAS ; MAKE ABS ADDC CDOSTA-CDNCT R1 ; EMPTY BIN SIMULATOR MOVL R01 CDOMSA-CDNCT.X7 ; ADDC CSTCS2 R6 ; GET PNT TO CST (CSTCS2) RELS X6 CSTOCO ; CLEAR OUTPUT OPEN BIT IN CST IBZ X6 CSTICO ; IF INPUT CLOSED AS WELL RELS X7 CDOPEN ; THEN FLAG NO CHANNELS OPEN; JMP MXGO50 ; NORMAL RETURN TO CMI ;FF\f ;----------------------------------------------------------------------- ; PROCEDURE FOR SERVING LOCAL INTERRUPT ; A CHECK IS MADE IF TIME OUT AT FIRST LTU ACCESS TO AVOID KILL ; OF LETTER DRIVEN PART OF MXI SUBMODULE DUE MP COMMAND ERROR. ; ;----------------------------------------------------------------------- MXHWERR1: MOV LINTCAUS R3 ; AND CAUSE OF LOCAL INTERRUPT MOV LINTRET R4 ; GET LOC IN ERROR IEQP R4 MXST51 ; IF LOCATION FOR SIO LTU-ADDRESS IEQ R3 3 ; AND TIME OUT AT FIRST ACCESS JMPI S6 MXATVI ; THEN ATTEMPTED VIOLATION MON ERR ; CALL ON-LINE ERROR PROCESSING; JMPI LINTRET ; ;======================================================================= XNAME1= <:MX:>, XNAME2= <:I:> ; SUBMODULE ID XID0= MXCLPN ; XPRPC0= MXINICPU ; CPU INTERRUPT DRIVEN PROCESS XTIM0= 100 ; XMASU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DU_RNAE_DTIM1=0 XTIM2=0 XMASK0=#8000, XMASK1=#8000, XMASK2=#8000 XERROR0=0, XERROR1=0, XERROR2=0 XPRTOT= XPRCNT, XSTOTAL=XTOT XTOTAL=XSTOTAL+LOC LIST ;======================================================================= ;FF\f END «nul»