IMD 1.17: 11/11/2014 14:44:25 82VKXBVERDOS C* VERSADOS/RMS68K OBJECT 4.4 SN=48634 12 OF 22  BT12\82VKXBVERDOS 0420¿>-Híÿÿ|+o t$3 <+@xaÿ:`ÿ H@0-4H@,NA4R1OPTION AFIX gUTILRR OPTION SA3U ƒ68K PASCAL OPTION PROCESSOR SUBROUTINE 2p.PCLSCOD H.POPTION (ZH3 B€BIúA ú am zn ,gè4k6 -fÀ`Ög0ƒF3 gÁ` =fRŠa`  f@` NuBƒ:< &J $gF3 am zn 4gˆ`6 am zn 4k6gãƒF3 (åƒÖ„ÖSEf΂ am zn 4jè  f" am zF3 n +ÿþNu:< am zn  am zn 4k´f 3 gŒ_郆SEfÌ`ÿz4 Q1CLSCOD AFIX gIOSRR CLSCOD SA ƒ68K PASCAL CHARACTER CLASS CODE TABLE2H.PCLSCOD (€F3 €€€@@ P€@  €@F3 4P1ALSTS AFIX gUTILRR ALSTS SA)0 ƒ68K PASCAL ALLOCATE STACK SUBROUTINE$2H.PALSTS H.PALSTSL (,23 HÄR„„ÿÿÿþŸÄŸü ¿íb O÷H pNNOï .·HNu4L1CLO AFIX gIORR CLO SA# ƒ68K PASCAL CLOSE FILE SUBROUTINE+2H.PCLO p.PCLOSPL p.PPRGBUF (&3  .LÐ2*(-0aA ðaA ì+D0Nu4\1IFD AFIX gIORR IFD SA$ ƒ68K PASCAL INITIALIZE FILE DESCRIPTOR SUBROUTINEL2H.PIFD p.PACCPER p.PCLOSPL p.PEDTFIL p.PSTDFLT p.PALSTS (H3 "_. HÂ&g&<…(„QR„Dÿþ$O•ĵíldEïµíle•ílØŠaA ÂF3 !OEïP/JEò8ÿ/JA??B$O eTgv`gvC)CL3 BjBBjBªL@O(-0fgA@aB ÿZJf<gJ-(gaB ÿFat`I3@ aúgJ-$gaB ÿ.a\`aâgaÄ`8°m"b"?S@å@@,J5LŸI3 g gaB þöa$` ga¤`aŠgNq5A+D0NÑHçØžMê$gI3 pÿS@å@@,Aõ|B€(@AõJaB þœ$€ÿ€üLßyg/p(NNI3 g g%m6*HBB|g€BNÁ NupaB þT|&8%m:*NuH瀀F3 Aê$0¼€NCgNN *&o|&BjFB*K*E f|'`  3 f|'`|'BjDLßNu4L1RST AFIX gIORR RST SA ƒ68K PASCAL RESET FILE SUBROUTINEm2H.PRST p.PACCPER p.PASGNF p.PCFLDAD p.PCALCLU p.PCLOSPL p.PSTDFLT p.PFLSCN p.PPRGBUF (²L3€ .LÐ2*aA ôaA ðB f† fpÀj& g faA Ê g4/ N3 ¢ &JaA ¼5 c ¼5‚aA  aA œH‚?aA ”2&_g*8 >3€ gAê0¼NBgNN` ap÷Áj&aB ÿbAìB’5ANup`B ÿP4N1RWT AFIX gIORR RWT SA ƒ68K PASCAL REWRITE FILE SUBROUTINEL2H.PRWT p.PACCPER p.PASGNF p.PCLOSE p.PCALCLU p.PBUFSZ (€J3„ .LÐ ª2*aA ð fFaA æpj&aV*8 &g, g&Aê$0¼€NCgL3 f0¼NCf0¼€NCgNNaA ¤B’A€ aA –CòO%I5ANup`A ‚4^1AFI AFIX gIORR AFI SA ƒ68K PASCAL ASSIGN FILE TO RESOURCE NAME SUBROUTINEA2H.PAFI p.PDFLT p.PCLOSPL p.PEDTFIL p.POPTION (ìJ3 .0/2RAÿþ/7¼ Aï Hç,o,nMî$aA ÒLßx$W$jaA Ä&F3 €ÿ€ügp(NNfg0<÷ÿÁj äH@ãÅHBEBF ;g  gI3€ `ð ;fäHçaB ÿpLß g/pANN Bfafèt…h Æ`F3 ¤ Cfa4<øÿÅh&!CHÆ`† DfaðCKÆ`p FfaÜCF3 JÆ`\ Rf$a¸…gÅÅ4( 1B`2 Wf$aŽ…F3 gÅÅ4( 1B`gÿ:gÿ 2(JEg;PBpøÁh&‰(I3 '$HfŠFgg(-0aB þh+D05A gþô _"_0R€@ÿþO÷NÑ23 g/pANNNugðfêfäNu4Z1ACCPER AFIX gIORR ACCPER SAX ƒ68K PASCAL ACCESS PERMISSION SET UP SUBROUTINE2H.PACCPER ("(3  f?*8 &g pøÀj&€W5@&0Nu4X1CALCLU AFIX gIORR CALCLU SA9 ƒ68K PASCAL CALCULATE LOGICAL UNIT SUBROUTINE2H.PCALCLU (RF3 /(-0fBg<`"g<`BR ft bfì c3 p@NNB B)(Nu4 P1EDTFIL AFIX gIOSRR EDTFIL SA ƒ68K PASCAL EDIT FILE NAME SUBROUTINE 2H.PEDTFIL p.PCLSCOD (âH3 B€BIúA ú&H6<%B„aük$ #fÀ` ff&@€€€Nu€üF3 `öaÊkBfôgÚ .f R nÐ`Þ :f€@`Ð (f€`Ä F3 )fª@`¸g Jfžf˜ggŒfF*H Kf  aF3 m zn (g24f.f. gD gô .fRˆF3 `*Rˆ`DÀ` 6<Gîa&4<aškÌ`À`Â&<€€€F3  am zn 4k^f0fR *g2À  am zn F3 4kR .fâ`JÆü Ö`¤ ƒ€f4 .fÄÀ6<ÿþ` ƒ€g ƒF3 'cÀ` =C ` À`À4<aÚk 6< Gî aN4<aÂkôF3 n& f| 6< Gîa(4<aœkÎ (g 6<Gîa 4<a~F3 k° (f¨BBBC am zn 4kD )gg8 Pn2AéKF3 †AB`ÈBÿg BnÀ BcÀ=C `JÀÀÀBÿ BcÀF3 `.Rˆ6<Gîap4<aæk$< Gî &Â&Â&Â&Â6ÂBn $B|gÀ4F3 B|gÀJ€NuJCfBA`$ am zn SC /f À<€`4NuF3 4HB€€»ÈgF am zn 4k.f(f @À`< F3 *fÀÁSCn¾€€`$HB´CfÀ`< (*ÿþf<*`ÂSCnúNuJ€j(3 À`QBgQBÀ`ÀBgÀNu4N1PRGBUF AFIX gIORR PRGBUF SAR ƒ68K PASCAL PURGE BUFFER SUBROUTINE 2H.PPRGBUF p.PWRTBUF ("3 g g ³êgaA ì ‰Nu4Y1STDFLT AFIX gIORR STDFLT SA' ƒ68K PASCAL SET START FILE DEFAULTS SUBROUTINE 2p.PDFLT H.PSTDFLT (^H3 %| 8%| .f "3 %m@0%mD4` g%m6*Nu4Y1MPJ AFIX gUTILRR MPJ SA3 ƒ68K PASCAL 32 BIT INTEGER MULTIPLY SUBROUTINE2H.PMPJ (vF3 HçýÀ./$T¯$ G0å@A÷X@ @fB@C÷ "*jD€³…JjD$&H@HAÀÁ<3 ÆÂ(ÂÂHBHDÄÄÔ"HABAÒƒBBHBÑ‚VÂJ…jDF…Ê[à †DÃLß¿Nu4`1DVJMODJ AFIX gUTILRR DVJMODJ SA1 ƒ68K PASCAL 32 BIT INTEGER DIVIDE AND MOD SUBROUTINES$2H.PDVJ H.PMODJ (–F3 HçùÀ./ T¯ a( ‚DÁLߟNuHçùÀ./ T¯ aãƒjD€ €DÁLߟNu G0å@A÷F3 X@ @fB@C÷ "fpNN&âƒjD€³ƒJjDtÿB²€dã‰R`ödÐã’3 â‰SdòF‚"jD‚F‚[ÁNu4I1WLN AFIX gIOSRR WLN SA$X ƒ68K PASCAL WRITELN SUBROUTINE 2H.PWLN p.PWRTBUF (3 .LÐR’aA ö ‰Nu4Q1WRC AFIX gIOSRR WRC SA%# ƒ68K PASCAL WRITE CHARACTER SUBROUTINE+2H.PWRC p.PIWPTR p.PLBLKS ("3@ .LÐ8SDaA ô€aA î ‰Nu4P1WRI AFIX gIOSRR WRI SA%5 ƒ68K PASCAL WRITE INTEGER SUBROUTINESI2H.PWRH H.PWRI H.PWRJ p.PIWPTR p.PLBLKS (ŽJ3 H€HÀ.LÐ8v / BJ€jt-D€SDGúL°›dSCnø˜CSDaA ÒJg‚aA ÈJCg(+J3@@ ÿür0°„e„R`öaA ®(SCnè0€aA ž ‰&_Nu;šÊõᘖ€B@† 3 'èd 4Z1WRSWRV AFIX gIOSRR WRSWRV SA%Q ƒ68K PASCAL WRITE STRING AND VECTOR SUBROUTINES:2H.PWRS H.PWRV p.PIWPTR p.PLBLKS (JJ3 0/8/`8/0/./ Gï 2RAAÿþ sLИ@aA ÒJ@g ›aA ÈS@nö ‰3 &_$_O÷NÒ4 O1WRB AFIX gIOSRR WRB SA% ƒ68K PASCAL WRITE BOOLEAN SUBROUTINE+2H.PWRB p.PIWPTR p.PLBLKS (:D3@ ./ LÐtGú"JgÖÂSB8˜BaA ä›aA ÞSBnö&_ ‰NuFALSETRUE 4T1WRR AFIX gIOSRR WRR SA($ ƒ68K PASCAL REAL NUMBER WRITE SUBROUTINES_2H.PWRR H.PWRW H.PWRX (p.PFPOINT p.PALSTS p.PIWPTR p.PLBLKS (F3 .JAlra`ašNu.JAlra|`a†Nu.JAlrah`arNu8DN3 € aA ¼p °fp-€aA ¬MúpžaA  S@föNuINFINITY8DaA ˆpMú:O3  žaB ÿ|S@fö , ré˜tÄ0 9o‚aB ÿXSAfâ¼)aB ÿLNuNAN(16#I3 Hçð XLBFBpBFgèvÆŠg RFPÅ0ÃS@fâLßPNuJEo ¼0aB ÿSEL3 `JFo žaB þöSF`¼0aB þêS@Nu86,HCBCB@zé›Àü ÐCBCSEfòR@JjD@L3 Nuaÿ|aÔ @o˜@˜AUD`˜AWDaB þ¤v gv-ƒaB þ”,H…šFRElBE?BEL3 @n :DESEÚ_`Taÿ^nú¼.aB þb0aÿNnúNuHçLÐx"aB þJM×Iï AI3 lr4 B€o4<€DBaB þ*ðT¸ð Àfaþ†`  g °faþ@`L3 aÿ@ ‰Þü"Lß@`Nu¼EaB ýêp+Jjp-€aB ýÜ0, AfáX` AféXtéXL3@ Ä0‚aB ý¶SAfìNufv `v-ƒaB ýžaþZ,H…šFRElBEY@A @lL3 paþn¼.aB ýtaþbfúaÿzNuHçLÐx"aB ýZM×Iï4YB”A Blt` BI3 otaB ý8ðT¸ð Àfaý”`  g °faýN`aÿ^ ‰Þü"Lß@`3 Nu4L1PUT AFIX gIOSRR PUT SA"! ƒ68K PASCAL PUT BUFFER SUBROUTINE 2H.PPUT p.PWRTBUF (0:3„ .LÐ8*R’Òê³êcg !aA àÀR’`aA Ö ‰Nu4^1PAG AFIX gIOSRR PAG SA!V ƒ68K PASCAL SEND PAGE EJECT TO TEXT FILE SUBROUTINE 2H.PPAG p.PWRTBUF ( *3„ .LгêgR’aA ðü T’aA æ ‰Nu4N1WRTBUF AFIX gIORR WRTBUF SAC ƒ68K PASCAL WRITE BUFFER SUBROUTINE 2p.PBUFSZ H.PWRTBUF (jF3 HçÀ€2*fpDNN³êggS‰` g¼ `S‰`¼ %IAê23 0¼NBg ÆgNNaA ªCòO%I"jLßNu4V1LBLKS AFIX gIOSRR LBLKS SA!' ƒ68K PASCAL WRITE LEADING BLANKS SUBROUTINE 2p.PIWPTR H.PLBLKS (3 JDo ¼ aA öSDnôNu4c1IWPTR AFIX gIOSRR IWPTR SA! ƒ68K PASCAL INCREMENT TEXT FILE COMPONENT PTR SUBROUTINE 2H.PIWPTR p.PWRTBUF (3 ³êfaA öŸRIR’Nu4c1EOL AFIX gIOSRR EOL SAV ƒ68K PASCAL TEST FOR END OF LINE IN TEXT FILE SUBROUTINE 2H.PEOL p.PRDBUF (3D aA ¾SBnìaA ¶€ Am Zo Lß ŠNup3NNALSERUE 4 W1RDSTR AFIX gIOSRR RDSTR SA#U ƒ68K PASCAL READ STRING OR VECTOR SUBROUTINE+2p.PGETCH p.PIRPTR H.PRDSTR (*43 LÐ 8+24aA òµëgaA èJAgîÀSA`è”A ŠNu4U1SBLKS AFIX gIOSRR SBLKS SA$F ƒ68K PASCAL SKIP LEADING BLANKS SUBROUTINE+2p.PGETCH p.PIRPTR H.PSBLKS (3B aA þ faA ô`ðNu4a1GETCH AFIX gIOSRR GETCH SA " ƒ68K PASCAL GET CHARACTER FROM INPUT BUFFER SUBROUTINE 2p.PRDBUF H.PGETCH (&3 faA ú8+gp"NNB€Nu4_1IRPTR AFIX gIOSRR IRPTR SA! ƒ68K PASCAL INCREMENT INPUT COMPONENT PTR SUBROUTINE2H.PIRPTR ($3 R“µëf•Ê`RеëfÄ7DNu4R1PEE AFIX gIOSRR PEE SA"  ƒ68K PASCAL PEEK INTO A FILE SUBROUTINE 2H.PPEE p.PRDBUF (*23€ .$P f/ &haA ð8+gp"NN Š&_ JNu4`1GET AFIX gIOSRR GET SA  ƒ68K PASCAL ADVANCE FILE COMPONENT POINTER SUBROUTINE 2H.PGET p.PRDBUF (JH3@ ./ LÐ 8+ faA î8+gp"NNR“Ôëµëmng Ä7D3 `•Ê Š&_Nu4X1GETINT AFIX gIOSRR GETINT SA 4 ƒ68K PASCAL COLLECT INTEGER DIGITS SUBROUTINE+2p.PGETCH H.PGETINT p.PIRPTR (J3 z"Bv 0m 9op1NN`@JEoJf 0g 0ÀPÁSE`RCaA ÈaA Ä J3 am zn 0m 9oÀ #f¬ÃJEoÀSE`RCBaA ŠaA † aF3 m zn 9o Am0 oJ@m @op1NN`TJEoJfL3P gÀPÁSE`RCaB ÿ.aB ÿ* am zn 9o Am0 o3 Jm o¬E"DENu4]1MAKINT AFIX gIOSRR MAKINT SA!9 ƒ68K PASCAL MAKE AN INTEGER FROM DIGITS SUBROUTINE2H.PMAKINT (^F3 B@BAt JEoNv #f(J@gpbNN` Ac AcpbNN`4B@BA`´Cn$3 pcNNÀÂÂÂÒƒHA6HAЃSE`°H@0Nu4W1RDBUF AFIX gIORR RDBUF SA ƒ68K PASCAL READ BUFFER FROM FILE SUBROUTINEL2p.PASGNF p.PCFLDAD p.PCLOSE H.PRDBUF p.PBUFSZ p.PFLSCN (þH3 HçøÐ2+$KaA ôHÀgS€`R€@ÿþЫS€'@fpCNNAë0¼NBJ3@€ gz Ægt ÂgNNA€7A gXaA ž5´5cJaA 7AR55L3D H‚5 J /g RB5 J /fôRB‚aB ÿ^2*aB ÿV5ALß `ÿJ•Ê`8D3 $k +gJ€fÁ¼ ` J€g0+HÀS€ÐŠ'@7ALß Nu4M1ASGNF AFIX gIORR ASGNF SA8 ƒ68K PASCAL ASSIGN FILE SUBROUTINE2H.PASGNF ($*3 Aê$0¼@NCgNN$-0*)Â+B0ÁNu4X1BUFSZ AFIX gIORR BUFSZ SAT ƒ68K PASCAL FIGURE OUT BUFFER SIZE SUBROUTINE2H.PBUFSZ (3 0<…f0*Nu4M1CLOSE AFIX gIORR CLOSE SA8 ƒ68K PASCAL FILE CLOSE SUBROUTINES$2H.PCLOSE H.PCLOSPL (283 gH瀀Aê$0¼NCgNNLßNuaÞAý¿?* „6Nu4Y1CFLDAD AFIX gIORR CFLDAD SA ƒ68K PASCAL CALCLUATE FIELD ADDRESS SUBROUTINE2H.PCFLDAD ((.3 g0<$`g0<(`+OSH€å@@,Nu4P1FLSCN AFIX gIORR FLSCN SA  ƒ68K PASCAL FILE LIST SCAN SUBROUTINE+2p.PDFLT p.PEDTFIL H.PFLSCN (*43 Aõ JHçMë$aA òLßpaA ê€ÿ€üg/p(NNNu4 a1LDC AFIX gUTILRR LDC SA24 ƒ68K PASCAL LOAD CONSTANT STRING AND VECTOR SUBROUTINE/2H.PLDCS H.PLDCV p.PALSTS (*23 pþ`B@ _.8˜@gAðaA ê"OUDg"ØYDnúm2ØNÐ4b1LODV AFIX gUTILRR LODV SA3 ƒ68K PASCAL VECTOR LOADS DIRECT AND INDIRECT SUBROUTINEM2H.PINDV H.PLODV H.PINDVL H.PLODVL p.PALSTSL (8@3 "_. 0HÀ`"_. (aA ì$O"gØS€nú`U„g$ØY„núm4ØNÑ4W1STCV AFIX gUTILRR STCV SA5P ƒ68K PASCAL STORE CONSTANT VECTOR SUBROUTINE/2H.PSTCV H.PSTCVL p.PSTOREV ("3 $_. 0HÀ`$_. "JaA ìNò84W1STOV AFIX gUTILRR STOV SA62 ƒ68K PASCAL STORE VECTOR INDIRECT SUBRUOTINE/2H.PSTOV p.PSTOREV H.PSTOVL ((03€ $_. 0HÀ`$_. "RAÿþ w"OaA àO÷8NÒ4U1STRV AFIX gUTILRR STRV SA7 ƒ68K PASCAL STORE VECTOR DIRECT SUBROUTINE/2H.PSTRV p.PSTOREV H.PSTRVL ($3 $_. 0HÀ`$_. "OaA ìO÷8NÒ4V1STOREV AFIX gUTILRR STOREV SA6 ƒ68K PASCAL STORE VECTOR SUPPORT SUBROUTINE2H.PSTOREV (6<3 &RƒCÿþ(gÙS€nú`â€UÁâ€UÂg ÙS€núJg0ÙJgÙNu4R1EQUV  AFIX gUTILRR EQUV SA13 ƒ68K PASCAL COMPARE VECTORS SUBROUTINESº2H.PGEQV PH.PEQUV H.PGRTV @H.PLEQV 0H.PLESV H.PNEQV H.PGEQVL XH.PEQUVL H.PGRTVL HH.PLEQVL 8H.PLESVL (H.PNEQVL (¬F3 a^WÀDNÒa`WÀDNÒaNVÀDNÒaPVÀDNÒa>UÀDNÒa@UÀDNÒa.SÀDNÒa0SÀDNÒF3 aRÀDNÒa RÀDNÒaTÀDNÒaTÀDNÒ$o0HÀ`$o . &RƒCÿþCïA÷23 8Öƒâ€UÁâ€UÂg±‰fS€nøJg±IfJg± _O÷8NÐ4a1LODS AFIX gUTILRR LODS SA2G ƒ68K PASCAL DIRECT AND INDIRECT STRING LOAD SUBROUTINE/2H.PINDS H.PLODS p.PALSTS (&3 $_. 8TDaA ö"OUDg"ØYDnúm2ØNÒ4U1STRS  AFIX gUTILRR STRS SA6E ƒ68K PASCAL STRING DIRECT STORE SUBROUTINE2H.PSTRS (4:3 "_. 2RAAÿþU@°Am0`>€R@@ÿþ$OJ@o ÚY@núf0’O÷NÑ4W1STOS  AFIX gUTILRR STOS SA6 ƒ68K PASCAL STRING STORE INDIRECT SUBROUTINE2H.PSTOS (8>3 "_. 2RAAÿþU@ w°Am0`>€R@@ÿþ$OJ@o ÚY@núf0’O÷NÑ4R1EQUS AFIX gUTILRR EQUS SA1 ƒ68K PASCAL COMPARE STRINGS SUBROUTINES`2H.PGEQS (H.PEQUS H.PGRTS H.PLEQS H.PLESS H.PNEQS (”F3 a.WÀDNÒa&VÀDNÒa]ÀDNÒa_ÀDNÒa^ÀDNÒa\ÀDNÒ./Eï46RCCF3 ÿþCò026RCCÿþHq00°Bo0J@g³ fS@nøp ”Agma `aLß.HNѰ3 fSBnøNu²fRBmöNu4W1NEW AFIX gUTILRR NEW SA3@ ƒ68K PASCAL NEW (HEAP ALLOCATION) SUBROUTINE/2H.PNEW H.PNEWL p.PCHKOVF (‚J3@ ."GaA ú(` ."GaA îB„8R„„ÿÿÿþ.‰v¸ƒl(X„"mQ‰$I&)g""C¸‘nòF3 „ €lX‰%Q`*"€ÓÀ"Ä`""mEñH ¿ÊbpNNEêÿØQ‰$Ñ"Ä$Ñ+J ‰3 Nu4]1DIS AFIX gUTILRR DIS SA0E ƒ68K PASCAL DISPOSE (HEAP DEALLOCATION) SUBROUTINE/2H.PDIS H.PDISL p.PCHKOVF (pH3 T—T—.aA ø$PB mQˆµÈbVB€“É("µÈb "H h`ò%H#J"gÒµÁb •È63 ØŠ „$H#J" Ò„³ÁbJ€f $‘PŠ+J`"  ’ŠÒ‘$ @!JNu4U1MRK AFIX gUTILRR MRK SA3( ƒ68K PASCAL MARK (HEAP MARKING) SUBROUTINE 2H.PMRK p.PCHKOVF (3 .aA ü ­YNu4]1RLS AFIX gUTILRR RLS SA4 ƒ68K PASCAL RELEASE (HEAP DEALLOCATION) SUBROUTINE 2H.PRLS p.PCHKOVF (6>3 .aA üYˆ"mQ‰³Èc""i³Èbø g Б±Àb I"ipÿ À É+HNu4_1CHKOVF AFIX gUTILRR CHKOVF SA)F ƒ68K PASCAL CHECK FOR STACK HEAP OVERFLOW SUBROUTINE2H.PCHKOVF (3 Oïÿà¿íOï bpNNNu4c1CVBSV AFIX gUTILRR CVBSV SA)X ƒ68K PASCAL CONVERT STRING S->V STR UNDER VEC SUBROUTINE 2H.PCVBSV p.PCVTSV (.63 .R@@ÿþ24A÷ÔPUAo!`YAnøf1`0‚Ð@`A ÖNu4Z1CVTSV AFIX gUTILRR CVTSV SA0& ƒ68K PASCAL CONVERT STRING TO VECTOR SUBROUTINE/2p.PALSTSL H.PCVTSV H.PCVTSVL (bF3 HÀ _.2HÁ6< R€@ÿþgƒR(˜g:nE÷C÷U@g#"Y@núm3".I*3 `"OaA º$OUg m $ÙYnúm4Ù4ÃU„núNÐ4`1CVTSU AFIX gUTILRR CVTSU SA0 ƒ68K PASCAL CONVERT STRING TO UNNORMALIZED SUBROUTINE 2p.PALSTS H.PCVTSU (NH3 _.U@2RAAÿþR@@ÿþ8˜Ag2nC÷E÷>€g%!Y@núm5!.JNÐ"OaA Æ$OJA3 g$ÙYAnúm4ÙNÐ4`1CVTUS AFIX gUTILRR CVTUS SA0@ ƒ68K PASCAL CONVERT UNNORMALIZED TO STRING SUBROUTINE2H.PCVTUS (063 _.R@@ÿþC÷2RAAÿþE÷µÉgJAg#"YAnúm3".INÐ4O1SLEN AFIX gUTILRR SLEN SA5$ ƒ68K PASCAL STRING LENGTH SUBROUTINE2H.PSLEN (3 _.02RAAÿþÞÁNÐ4V1SCON AFIX gUTILRR SCON SA4& ƒ68K PASCAL STRING CONCATINATION SUBROUTINE 2H.PSCON p.PALSTS (JH3 _.4$O6RCCÿþC÷028aA æHq@ÒÁ0g!S@nú"_ÒB0R@@ÿþÔÀJ@g"3 S@nú3.INÐ4P1SCOP  AFIX gUTILRR SCOP SA4@ ƒ68K PASCAL SUBSTRING COPY SUBROUTINE 2H.PSCOP p.PVALSI (rH3 _.46RCCÿþC÷0aA ìfBA`PS@8˜@²Do2JAg@E÷0²Df8µDDg*83 g’ÁS‰ÚS@nú’Á`R@@ÿþÔÀµÉg"S@nú`”À"J.I?NÐ4T1SPOS AFIX gUTILRR SPOS SA56 ƒ68K PASCAL SUBSTRING POSITION SUBROUTINE2H.PSPOS (bF3 ."O20R@@ÿþEñ40R@@ÿþHrB@JAg6”Am2RB0SA I?¶fJAg ( (3 µ f SAnøBR@` 2$D"HSBnÞB@2.W GNÐ4R1SINS AFIX gUTILRR SINS SA5 ƒ68K PASCAL STRING INSERTION SUBROUTINE+2H.PSINS p.PALSTS p.PVALSI (lJ3 _.4$O6RCCÿþCò02g----------------------------------------------------------------------O\PV01DRVŽ*StartofPV01DRVH*<----------------------------------------------------------------------QUITéé éééééÅ=/*=/* VERSAPT.P050DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\P050DRVŽ*StartofP050DRVH*<----------------------------------------------------------------------QUITéééééééÎ=/*=/* VERSAPT.P115DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\P115DRVŽ*StartofP115DRVH*<----------------------------------------------------------------------QUIT ééééééé×=/*=/* VERSAPT.M300DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M300DRVŽ*StartofM300DRVH*<----------------------------------------------------------------------QUITééééééé à=/*=/* VERSAPT.M315DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M315DRVŽ*StartofM315DRVH*<----------------------------------------------------------------------QUITéééééééé=/*=/* VERSAPT.M320DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M320DRVŽ*StartofM320DRVH*<----------------------------------------------------------------------QUITééééé ééò=/*,=/* VERSAPT.M420DRV.CF - SASI driver patches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M420DRVŽ*StartofM420DRVH*<----------------------------------------------------------------------QUITééééééû=/*0=/* VERSAPT.M435DRV.CF - Mag Tape Driver Patches=/*=PATCH VERSADOS.SYG*>---------------------------------------------------------------------O\M435DRVŽ*StartofM435DRVG*<---------------------------------------------------------------------QUITéé éééé=/*=/*ƒVERSAPT.M600DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M600DRVŽ*StartofVME600driverH*<----------------------------------------------------------------------QUITééééééé =/*=/*ƒVERSAPT.M605DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M605DRVŽ*StartofVME605driverH*<----------------------------------------------------------------------QUITé  éééééé=/*=/*ƒVERSAPT.M610DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M610DRVŽ*StartofVME610driverH*<----------------------------------------------------------------------QUITééééééé  =/*=/*ƒVERSAPT.M615DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M615DRVŽ*StartofVME615driverH*<----------------------------------------------------------------------QUITééééééé(=/*=/*ƒVERSAPT.M625DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M625DRVŽ*StartofVME625driverH*<----------------------------------------------------------------------QUITéééééé  é1=/*=/* VERSAPT.ACIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\ACIADRVŽ*StartofACIADRVH*<----------------------------------------------------------------------QUITééééééé:=/*,=/* VERSAPT.DARTDRV.CF - DART driver patches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------%O\DARTSPRŽ*StartofDARTsupervisorH*>----------------------------------------------------------------------&O\DARTDRVŽ*StartofDARTsubordinateH*<----------------------------------------------------------------------QUITééé  éééC =/*7=/*‚VERSAPT.EPCIDRV.CF-EPCIdriverpatchesforVME101=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\EPCIDRVŽ*StartofEPCIDRVH*<----------------------------------------------------------------------QUITééééééL=/*=/* VERSAPT.IPCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IPCDRV*StartofIPCDRVM A14;DI BSR O+$1330. M 1330;DIMOVE.W #$0082,D3MOVE.B #$82,4(A3)RTS.M 7DC;DI BSR O+$1340. M 1340;DIMOVE.B #$00,4(A3) BSR O+$952RTS.H*<----------------------------------------------------------------------QUITé  éééééU=/*=/* VERSAPT.MFPDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MFPDRV*StartofMFPDRVH*<----------------------------------------------------------------------QUITééééééé^=/*=/* VERSAPT.RADDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RADDRV*StartofRADDRVH*<----------------------------------------------------------------------QUIT  ééééééég=/*=/* VERSAPT.PIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\PIADRV*StartofPIADRVH*<----------------------------------------------------------------------QUITééééééé  p'VERSAPT RWINDRV CF……aaDRVS10 CFŽŽaaVM22DRV CF——aaEET CF  aaEND CF©©aaFHS CF²²aaFMS CF»»aaIOS CFÄÄaaLDR CFÍÍaaMPCCDRV CFÖÖaaMPSCDRV CFßßaaMPSCSPR CFèèaaMPSCSUP CFññaaTNTDRV CFúúaaRIODRV CFaaIOI CF  aaSYSINIT CFaaSIODRV CFaaVM01 CF''eeBEGIN CF00 aa=/*=/* VERSAPT.RWINDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RWINDRVŽ*StartofRWINDRVH*<----------------------------------------------------------------------QUITééééééé}=/*9=/*‚VERSAPT.DRVS10.CF-TERMDRVdriverpatchesforVME/10=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\TERMDRVŽ*StartofTERMDRVH*<----------------------------------------------------------------------QUIT  éééééé†=/*=/* VERSAPT.VM22DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\VM22DRV*StartofVM22DRVH*<----------------------------------------------------------------------QUITééééééé  =/*=/*†VERSAPT.EET.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\EETSTR*StartofEETH*<----------------------------------------------------------------------QUITééééééé˜=/*8=/* SYSTEM MUST BE RE-BOOTED FOR PATCHES TO TAKE EFFECT.=/*=ENDéééééé  é¡=/*=/*†VERSAPT.FHS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\FHSSTR*StartofFHSH*<----------------------------------------------------------------------QUITéééééééª=/*=/*†VERSAPT.FMS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\FMSSTR*StartofFMSH*<----------------------------------------------------------------------QUITéééé ééé³=/*=/*†VERSAPT.IOS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IOSSTR*StartofIOSH*<----------------------------------------------------------------------QUITééééééé¼=/*=/*†VERSAPT.LDR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\LDRSTR*StartofLDRH*<----------------------------------------------------------------------QUITéé éééééÅ=/*=/* VERSAPT.MPCCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPCCDRVŽ*StartofMPCCDRVH*<----------------------------------------------------------------------QUITéééééééÎ=/*=/* VERSAPT.MPSCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCDRVŽ*StartofMPSCDRVH*<----------------------------------------------------------------------QUIT ééééééé×=/*=/* VERSAPT.MPSCSPR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCSPRŽ*StartofMPSCSPRH*<----------------------------------------------------------------------QUITééééééé à=/*=/*ƒVERSAPT.MPSCSUP.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCSUPŽ*StartofMPSCSUPH*<----------------------------------------------------------------------QUITéééééééé=/*=/*†VERSAPT.TNTDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\TNTSTR*StartofTNTH*<----------------------------------------------------------------------QUITééééé ééò=/*=/* VERSAPT.RIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RIODRV*StartofRIODRVH*<----------------------------------------------------------------------QUITéééééééû=/*=/*†VERSAPT.IOI.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IOCSTR*StartofIOCH*<----------------------------------------------------------------------QUITééé éééé=/*=/*†VERSAPT.SYSINIT.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\INTSTR*StartofINTH*<----------------------------------------------------------------------QUITééééééé =/*=/* VERSAPT.SIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\SIODRVŽ*StartofSIODRVH*<----------------------------------------------------------------------QUITé éééééé=/*=/*†VERSAPT.VM01.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------M $E02C.M $E0400›*PatchforVM01VERSADOS027800.H*<----------------------------------------------------------------------QUITéééééé F=/* .VERSAPT.CF is built from VERSAPT.BEGIN.CF at sysgen time.F=/* It will contain patches to be applied to VERSADOS after the sysgenA=/*process.‚The.VERSAPT.CFfileisbuiltdynamicallyatC=/* sysgen time depending on the configuration of your system whichC=/*isdefinedby.CNFGDRVR.CIand&.CNFGTASK.CIfiles.‚TheE=/* other VERSAPT.*.CF files are copy appended to this file to createB=/*thefinal.VERSAPT.CFfile.‚TheSUBScommandisrunonE=/* .VERSAPT.CF to create the .XVERSAPT.CF file whichB=/* is run after the sysgen has completed, to apply any patches to%=/* .VERSADOS.SY as required.=/*ééééé( é'COPYGEN BEGINENDCF==aaCNFGTASKCFFFaaM050DRV CFOOaaP050DRV CFXXaaP115DRV CFaaaaM300DRV CFjjaaM315DRV CFssaaM316DEF CF||aaM320DRV CF……aaM420DRV CFŽŽ aaM435DRV CF——aaM600DRV CF  aaM605DRV CF©©aaM610DRV CF²²aaM615DRV CF»»aaM625DRV CFÄÄaaPCDRV CFÍÍaaACIADRV CFÖÖaaDARTDRV CFßß aaEPCIDRV CFèè aa=/*K=/* COPYGEN.BEGINEND.CF - Chain file to copy all files for sysgen of BEGIN/$=/*—ENDfilesforOSLISTandVERSAPT'=COPY\1:9998.OSLIST.BEGIN.AGŠ\2:\3;\4C%=COPY\1:9998.OSLIST.END.AGŒ\2:\3;\4C(=COPY\1:9998.VERSAPT.BEGIN.CF‰\2:\3;\4C&=COPY\1:9998.VERSAPT.END.CF‹\2:\3;\4Cé ééééé5=/*L=/* COPYGEN.CNFGTASK.CF - Chain file to copy all files for sysgen of CONFIG-=/*—URATIONTASKS%=COPY\1:9998.&.CNFGTASK.CIŒ\2:\3;\4C#=COPY\1:9998.&.IFTASK.CIŽ\2:\3;\4C%=COPY\1:9998.GET.TASKID.AGŒ\2:\3;\4C ééééééé>=/*J=/* COPYGEN.M050DRV.CF - Chain file to copy all files for sysgen of VME050$=COPY\1:9993.&.M050DRV.CI\2:\3;\4C éééééééG=/*K=/* COPYGEN.P050DRV.CF - Chain file to copy all files for sysgen of printer =/*–driverfortheVME050board.$=COPY\1:9993.&.P050DRV.CI\2:\3;\4C$=COPY\1:9993.&.P050DRV.LG\2:\3;\4C$=COPY\1:9993.&.P050DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.P050DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.P050DRV.CF‡\2:\3;\4Céééééé P=/*J=/* COPYGEN.P115DRV.CF - Chain file to copy all files for sysgen of VME115=/*–localprinterdriver$=COPY\1:9993.&.P115DRV.CI\2:\3;\4C$=COPY\1:9993.&.P115DRV.LG\2:\3;\4C$=COPY\1:9993.&.P115DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.P115DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.P115DRV.CF‡\2:\3;\4CééééééY=/*J=/* COPYGEN.M300DRV.CF - Chain file to copy all files for sysgen of VME300=/*•(GPIBdriver)$=COPY\1:9993.&.M300DRV.CI\2:\3;\4C$=COPY\1:9993.&.M300DRV.LG\2:\3;\4C$=COPY\1:9993.&.M300DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.M300DRV.AG‹\2:\3;\4C&=COPY\1:9998.IOC.M300XTR.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.M300DRV.CF‡\2:\3;\4Céééé ééb =/*J=/* COPYGEN.M315DRV.CF - Chain file to copy all files for sysgen of VME315$=COPY\1:9993.&.M315DRV.CI\2:\3;\4C$=COPY\1:9993.&.M315DRV.LG\2:\3;\4C$=COPY\1:9993.&.M315DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.M315DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.M315DRV.CF‡\2:\3;\4Céééééék=/*J=/* COPYGEN.M316DEF.CF - Chain file to copy all files for sysgen of VME3169=/*–(OnlyheretodefineI/Ochannel.‚There'snodriver.)$=COPY\1:9998.&.M316DEF.CI\2:\3;\4C$=COPY\1:9998.&.INIT316.RO\2:\3;\4Cééé éééét=/*J=/* COPYGEN.M320DRV.CF - Chain file to copy all files for sysgen of VME320$=COPY\1:9993.&.M320DRV.CI\2:\3;\4C$=COPY\1:9993.&.M320DRV.LG\2:\3;\4C$=COPY\1:9993.&.M320DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.M320DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.M320DRV.CF‡\2:\3;\4Céééééé}=/*J=/* COPYGEN.M420DRV.CF - Chain file to copy all files for sysgen of VME420=/*–(SASIdriver)"=COPY\1:9993.&.M4205.CI\2:\3;\4C"=COPY\1:9993.&.M4208.CI\2:\3;\4C$=COPY\1:9993.&.M420DRV.LG\2:\3;\4C$=COPY\1:9993.&.M420DRV.RO\2:\3;\4C$=COPY\1:9998.IOC.M4205.AG\2:\3;\4C$=COPY\1:9998.IOC.M4208.AG\2:\3;\4C*=COPY\1:9998.VERSAPT.M420DRV.CF‡\2:\3;\4C éééééé† =/*J=/* COPYGEN.M435DRV.CF - Chain file to copy all files for sysgen of VME435=/*–(Magtapedriver)$=COPY\1:9993.&.M435DRV.CI\2:\3;\4C$=COPY\1:9993.&.M435DRV.LG\2:\3;\4C$=COPY\1:9993.&.M435DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.M435DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.M435DRV.CF‡\2:\3;\4Céééééé =/*K=/* COPYGEN.M600DRV.CF - Chain file to copy all files for sysgen of MVME600$=COPY\1:9992.&.M600DRV.LG\2:\3;\4C$=COPY\1:9992.&.M600DRV.RO\2:\3;\4C$=COPY\1:9992.&.M600IOC.SI\2:\3;\4C$=COPY\1:9992.&.M600DRV.CI\2:\3;\4C*=COPY\1:9998.VERSAPT.M600DRV.CF‡\2:\3;\4Céééééé˜=/*K=/* COPYGEN.M605DRV.CF - Chain file to copy all files for sysgen of MVME605$=COPY\1:9992.&.M605DRV.LG\2:\3;\4C$=COPY\1:9992.&.M605DRV.RO\2:\3;\4C$=COPY\1:9992.&.M605IOC.SI\2:\3;\4C$=COPY\1:9992.&.M605MEM.AG\2:\3;\4C$=COPY\1:9992.&.M605MEM.CI\2:\3;\4C$=COPY\1:9992.&.M605DRV.CI\2:\3;\4C*=COPY\1:9998.VERSAPT.M605DRV.CF‡\2:\3;\4Cééééé é¡ =/*K=/* COPYGEN.M610DRV.CF - Chain file to copy all files for sysgen of MVME610$=COPY\1:9992.&.M610DRV.CI\2:\3;\4C$=COPY\1:9992.&.M610DRV.LG\2:\3;\4C$=COPY\1:9992.&.M610DRV.RO\2:\3;\4C$=COPY\1:9992.&.M610IOC.SI\2:\3;\4C$=COPY\1:9992.&.M610MEM.AG\2:\3;\4C$=COPY\1:9992.&.M610MEM.CI\2:\3;\4C*=COPY\1:9998.VERSAPT.M610DRV.CF‡\2:\3;\4Cééééééª =/*K=/* COPYGEN.M615DRV.CF - Chain file to copy all files for sysgen of MVME615$=COPY\1:9992.&.M615DRV.LG\2:\3;\4C$=COPY\1:9992.&.M615DRV.RO\2:\3;\4C$=COPY\1:9992.&.M615IOC.SI\2:\3;\4C$=COPY\1:9992.&.M615MEM.AG\2:\3;\4C$=COPY\1:9992.&.M615MEM.CI\2:\3;\4C$=COPY\1:9992.&.M615DRV.CI\2:\3;\4C*=COPY\1:9998.VERSAPT.M615DRV.CF‡\2:\3;\4Cééé ééé³ =/*K=/* COPYGEN.M625DRV.CF - Chain file to copy all files for sysgen of MVME625$=COPY\1:9992.&.M625DRV.LG\2:\3;\4C$=COPY\1:9992.&.M625DRV.RO\2:\3;\4C$=COPY\1:9992.&.M625IOC.SI\2:\3;\4C$=COPY\1:9992.&.M625MEM.AG\2:\3;\4C$=COPY\1:9992.&.M625MEM.CI\2:\3;\4C$=COPY\1:9992.&.M625DRV.CI\2:\3;\4C*=COPY\1:9998.VERSAPT.M625DRV.CF‡\2:\3;\4Céééééé¼ =/*M=/* COPYGEN.PCDRV.CF - Chain file to copy all files for sysgen of any PCDRV's"=COPY\1:9992.&.PCDRV.CI\2:\3;\4C!=COPY\1:9992.&.IOCI.CI\2:\3;\4C#=COPY\1:9992.&.IOCINT.AGŽ\2:\3;\4C#=COPY\1:9992.&.IOCINT.LGŽ\2:\3;\4Céé éééééÅ=/*O=/* COPYGEN.ACIADRV.CF - Chain file to copy all files for sysgen of ACIA driver$=COPY\1:9993.&.ACIADRV.LGŽ\2:\3;\4C$=COPY\1:9993.&.ACIADRV.ROŽ\2:\3;\4C$=COPY\1:9993.&.ACIADRV.CIŽ\2:\3;\4C+=COPY\1:9993.EXORMACS.ACIALOC.SI‡\2:\3;\4C)=COPY\1:9993.VME110.ACIALOC.SI‰\2:\3;\4C&=COPY\1:9998.IOC.ACIADRV.AGŒ\2:\3;\4C*=COPY\1:9998.VERSAPT.ACIADRV.CFˆ\2:\3;\4CééééééÎ =/*H=/* COPYGEN.DARTDRV.CF - Chain file to copy all files for sysgen of DART=/*–localterminaldriver$=COPY\1:9993.&.DARTDRV.LG\2:\3;\4C$=COPY\1:9993.&.DARTDRV.RO\2:\3;\4C$=COPY\1:9993.&.DARTSPR.LG\2:\3;\4C$=COPY\1:9993.&.DARTSPR.RO\2:\3 ;\4C$=COPY\1:9993.&.DARTDRV.CI\2:\3;\4C&=COPY\1:9998.IOC.DARTDRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.DARTDRV.CF‡\2:\3;\4Céééééé× =/*H=/* COPYGEN.EPCIDRV.CF - Chain file to copy all files for sysgen of EPCI=/*–terminaldriver$=COPY\1:9993.&.EPCIDRV.CI\2:\3;\4C$=COPY\1:9993.&.EPCIDRV.LG\2:\3;\4C$=COPY\1:9993.&.EPCIDRV.RO\2:\3;\4C&=COPY\1:9998.IOC.EPCIDRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.EPCIDRV.CF‡\2:\3;\4C'=COPY\1:9993.VM01.EPCILOC.SIŠ\2:\3;\4C)=COPY\1:9993.VME101.EPCILOC.SIˆ\2:\3;\4Céééééé à ¡'COPYGEN IPCDRV CFõõaaDRVLIB CFþþ aaMFPDRV CF aaMPCCDRV CFaaMPSCDRV CFaaPIADRV CF"" aaRWINDRV CF++aaDRVS10 CF44aaVM22DRV CF==aaVM30DRV CFFFaaDSKPARAMCFOOaaEET CFXX aaEQ CFaa#aaEXORMACSCFjjaaFHSIOS CFss aaFMS CF|| aaIOC CF…… aaIOI CFŽŽ aaLOADER CF—— aaROOT CF  aa=/*M=/* COPYGEN.IPCDRV.CF - Chain file to copy all files for sysgen of IPC driver#=COPY\1:9993.&.IPCDRV.CIŽ\2:\3;\4C#=COPY\1:9993.&.IPCDRV.LGŽ\2:\3;\4C#=COPY\1:9993.&.IPCDRV.ROŽ\2:\3;\4C&=COPY\1:9998.IOC.VM20DRV.AG‹\2:\3;\4C&=COPY\1:9998.IOC.VM21DRV.AG‹\2:\3;\4C)=COPY\1:9998.VERSAPT.IPCDRV.CFˆ\2:\3;\4Cééééééí=/*I=/* COPYGEN.DRVLIB.CF - Chain file to copy all files for generic terminal =/*–driversanddriverlibraries#=COPY\1:9993.&.DRVLIB.CIŽ\2:\3;\4C#=COPY\1:9993.&.DRVLIB.LGŽ\2:\3;\4C#=COPY\1:9993.&.DRVLIB.ROŽ\2:\3;\4C$=COPY\1:9993.&.TCHTYPE.AG\2:\3;\4C"=COPY\1:9993.&.TERM1.LG\2:\3;\4C$=COPY\1:9993.&.TERMLIB.CI\2:\3;\4C$=COPY\1:9993.&.TERMLIB.LG\2:\3;\4C$=COPY\1:9993.&.TERMLIB.RO\2:\3;\4C ééééééö =/*M=/* COPYGEN.MFPDRV.CF - Chain file to copy all files for sysgen of MFP driver#=COPY\1:9993.&.MFPDRV.CI\2:\3;\4C#=COPY\1:9993.&.MFPDRV.LG\2:\3;\4C#=COPY\1:9993.&.MFPDRV.RO\2:\3;\4C(=COPY\1:9993.VME120.MFPLOC.SIŠ\2:\3;\4C(=COPY\1:9993.VME122.MFPLOC.SIŠ\2:\3;\4C(=COPY\1:9993.VME128.MFPLOC.SIŠ\2:\3;\4C%=COPY\1:9998.IOC.MFPDRV.AG\2:\3;\4C)=COPY\1:9998.VERSAPT.MFPDRV.CF‰\2:\3;\4Cééééééÿ  =/*O=/* COPYGEN.MPCCDRV.CF - Chain file to copy all files for sysgen of MPCC driver$=COPY\1:9993.&.MPCCDRV.CIŽ\2:\3;\4C$=COPY\1:9993.&.MPCCDRV.LGŽ\2:\3;\4C$=COPY\1:9993.&.MPCCDRV.ROŽ\2:\3;\4C&=COPY\1:9998.IOC.MPCCDRV.AGŒ\2:\3;\4C*=COPY\1:9998.VERSAPT.MPCCDRV.CFˆ\2:\3;\4Céééééé=/*O=/* COPYGEN.MPSCDRV.CF - Chain file to copy all files for sysgen of 7201 driver7=/*–(Serialportdriver:usedonCPUandVME400boards)$=COPY\1:9993.&.MPSCDRV.CI\2:\3;\4C$=COPY\1:9993.&.MPSC400.CI\2:\3;\4C$=COPY\1:9993.&.MPSC400.SI\2:\3;\4C$=COPY\1:9993.&.MPSCDRV.LG\2:\3;\4C$=COPY\1:9993.&.MPSCDRV.RO\2:\3;\4C$=COPY\1:9993.&.MPSCSPR.LG\2:\3;\4C$=COPY\1:9993.&.MPSCSPR.RO\2:\3;\4C$=COPY\1:9993.&.MPSCSUP.LG\2:\3;\4C$=COPY\1:9993.&.MPSCSUP.RO\2:\3;\4C$=COPY\1:9993.&.MPSCV02.CI\2:\3;\4C$=COPY\1:9993.&.MPSCV02.SI\2:\3;\4C$=COPY\1:9993.&.MPSCV03.CI\2:\3;\4C$=COPY\1:9993.&.MPSCV03.SI\2:\3;\4C&=COPY\1:9998.IOC.MPSCDRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.MPSCSUP.CF‡\2:\3;\4C*=COPY\1:9998.VERSAPT.MPSCSPR.CF‡\2:\3;\4C*=COPY\1:9998.VERSAPT.MPSCDRV.CF‡\2:\3;\4Cééé é=/*J=/* COPYGEN.PIADRV.CF - Chain file to copy all files for sysgen of printer$=/*•driver‚(VME410,CPUboards,etc)#=COPY\1:9993.&.PIADRV.CIŽ\2:\3;\4C#=COPY\1:9993.&.PIA101.CIŽ\2:\3;\4C#=COPY\1:9993.&.PIA410.CIŽ\2:\3;\4C#=COPY\1:9993.&.PIAEXM.CIŽ\2:\3;\4C#=COPY\1:9993.&.PIA101.SIŽ\2:\3;\4C#=COPY\1:9993.&.PIA410.SIŽ\2:\3;\4C#=COPY\1:9993.&.PIAEXM.SIŽ\2:\3;\4C#=COPY\1:9993.&.PIADRV.LGŽ\2:\3;\4C#=COPY\1:9993.&.PIADRV.ROŽ\2:\3;\4C%=COPY\1:9998.IOC.PIADRV.AGŒ\2:\3;\4C)=COPY\1:9998.VERSAPT.PIADRV.CFˆ\2:\3;\4Cééééé=/*I=/* COPYGEN.RWINDRV.CF - Chain file to copy all files for sysgen of RWIN1=/*—(RemoteWinchesterDriver)$=COPY\1:9993.&.RWINDRV.CI\2:\3;\4C$=COPY\1:9993.&.RWINDRV.LG\2:\3;\4C$=COPY\1:9993.&.RWINDRV.RO\2:\3;\4C&=COPY\1:9998.IOC.RWINDRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.RWINDRV.CF‡\2:\3;\4Cééé ééé#=/*I=/* COPYGEN.DRVS10.CF - Chain file to copy all files for sysgen of VME/10=/*•terminaldriver#=COPY\1:9993..CRTINIT.ROŽ\2:\3;\4C"=COPY\1:9993..DRVS10.CI\2:\3;\4C$=COPY\1:9993..EDITMODE.RO\2:\3;\4C"=COPY\1:9993..FEEDER.RO\2:\3;\4C"=COPY\1:9993..INCHAR.RO\2:\3;\4C"=COPY\1:9993..KEYBRD.AG\2:\3;\4C"=COPY\1:9993..OUTCHS.RO\2:\3;\4C$=COPY\1:9993..PAGEMODE.RO\2:\3;\4C#=COPY\1:9993..POUTCHS.ROŽ\2:\3;\4C#=COPY\1:9993..TERMDRV.LGŽ\2:\3;\4C#=COPY\1:9993..TERMDRV.ROŽ\2:\3;\4C%=COPY\1:9998.IOC.DRVS10.AGŒ\2:\3;\4C)=COPY\1:9998.VERSAPT.DRVS10.CFˆ\2:\3;\4Cééééé,=/*H=/* COPYGEN.VM22DRV.CF - Chain file to copy all files for sysgen of VM22=/*–(Diskdriver)$=COPY\1:9993.&.VM22DRV.CI\2:\3;\4C$=COPY\1:9993.&.VM22DRV.LG\2:\3;\4C$=COPY\1:9993.&.VM22DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.VM22DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.VM22DRV.CF‡\2:\3;\4Cé ééééé5=/*O=/* COPYGEN.VM30DRV.CF - Chain file to copy all files for sysgen of VM30 (MCCM)$=COPY\1:9993.&.VM30DRV.CI\2:\3;\4C&=COPY\1:9998.IOC.VM30DRV.AG‹\2:\3;\4Cééééééé>=/*O=/* COPYGEN.DSKPARAM.CF - Chain file to copy all files used for disk parameters$=COPY\1:9998.&.F5DDDSI.SI\2:\3;\4C$=COPY\1:9998.&.F8DDDSI.SI\2:\3;\4C$=COPY\1:9998.&.F8SDDSM.SI\2:\3;\4C$=COPY\1:9998.&.F8SDSSI.SI\2:\3;\4C$=COPY\1:9998. &.F8SDSSM.SI\2:\3;\4C$=COPY\1:9998.&.FXCMD16.SI\2:\3;\4C$=COPY\1:9998.&.FXCMD80.SI\2:\3;\4C$=COPY\1:9998.&.FXLRK08.SI\2:\3;\4C$=COPY\1:9998.&.FXLRK25.SI\2:\3;\4C$=COPY\1:9998.&.H5WIN05.SI\2:\3;\4C$=COPY\1:9998.&.H5WIN10.SI\2:\3;\4C$=COPY\1:9998.&.H5WIN12.SI\2:\3;\4C$=COPY\1:9998.&.H5WIN15.SI\2:\3;\4C$=COPY\1:9998.&.H5WIN40.SI\2:\3;\4C$=COPY\1:9998.&.H8WIN10.SI\2:\3;\4C$=COPY\1:9998.&.RMCMD16.SI\2:\3;\4C$=COPY\1:9998.&.RMLRK08.SI\2:\3;\4C$=COPY\1:9998.&.RMLRK25.SI\2:\3;\4CééééG=/*C=/* COPYGEN.EET.CF - Chain file to copy all files for sysgen of EET$=COPY\1:9998.&.CMDLIST.AG\2:\3;\4C =COPY\1:9998.&.DAT.RO‘\2:\3;\4C =COPY\1:9998.&.EET.LG‘\2:\3;\4C =COPY\1:9998.&.EET.RO‘\2:\3;\4C$=COPY\1:9998.&.SCTSASR.RO\2:\3;\4C%=COPY\1:9998.&.SYSCNTRL.ROŒ\2:\3;\4C =COPY\1:9998.&.USM.RO‘\2:\3;\4C#=COPY\1:9998.&.USMOPT.ROŽ\2:\3;\4C'=COPY\1:9998.EET.VERSADOS.CIŠ\2:\3;\4C&=COPY\1:9998.VERSAPT.EET.CF‹\2:\3;\4Céééééé P =/*L=/* COPYGEN.EQ.CF - Chain file to copy all .EQ and .MC files for sysgen into>=/*‘theuser'saccountnumbersoeachuserhastheirowncopy.=/*F=/* NOTE: The following equate files are board/system specific and are-=/*‡copiedbythe"COPYGEN.<system>.CF"file.=/*1=/*Š\1:9995..BOARD.EQ‰\2:\3;\4„forVME120,VME128=/* =COPY\1:9995.&.BAB.EQ‘\2:\3;\4C =COPY\1:9995.&.CCB.EQ‘\2:\3;\4C =COPY\1:9995.&.EXE.EQ‘\2:\3;\4C =COPY\1:9995.&.FME.EQ‘\2:\3;\4C =COPY\1:9995.&.FMI.EQ‘\2:\3;\4C =COPY\1:9995.&.IOE.EQ‘\2:\3;\4C =COPY\1:9995.&.LV5.EQ‘\2:\3;\4C$=COPY\1:9995.&.M300DRV.EQ\2:\3;\4C$=COPY\1:9995.&.M605DRV.EQ\2:\3;\4C%=COPY\1:9995.&.M610INTQ.EQŒ\2:\3;\4C$=COPY\1:9995.&.M615DRV.EQ\2:\3;\4C$=COPY\1:9995.&.M625DRV.EQ\2:\3;\4C =COPY\1:9995.&.NIO.EQ‘\2:\3;\4C#=COPY\1:9995.&.RADDRV.EQŽ\2:\3;\4C#=COPY\1:9995.&.RIODRV.EQŽ\2:\3;\4C =COPY\1:9995.&.TR1.EQ‘\2:\3;\4C$=COPY\1:9995.&.TR1RTCD.EQ\2:\3;\4C$=COPY\1:9995.&.UTILITY.MC\2:\3;\4C=/**=COPY\1:9999.M146818.M146818.EQ‡\2:\3;\4C&=COPY\1:9999.M68020.CACR.EQ‹\2:\3;\4C(=COPY\1:9999.M68230.M68230.EQ‰\2:\3;\4C&=COPY\1:9999.M6840.M6840.EQ‹\2:\3;\4C(=COPY\1:9999.M68451.M68451.EQ‰\2:\3;\4C*=COPY\1:9999.MK68901.MK68901.EQ‡\2:\3;\4C(=COPY\1:9999.VM04.CTRLSTAT.EQ‰\2:\3;\4C&=COPY\1:9999.Z8036.Z8036.EQ‹\2:\3;\4CééY$=/*L=/* COPYGEN.EXORMACS.CF - Chain file to copy all EXORMACS specific files for =/*—sysgen.$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4!=COPY\1:9998.TNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.C4O9.SYSPAR.RO‹\2:\3;\4C ééé ééb=/*L=/* COPYGEN.FHSIOS.CF - Chain file to copy all files for sysgen of FHS & IOS =COPY\1:9998.&.FHS.LG‘\2:\3;\4C =COPY\1:9998.&.IOS.LG‘\2:\3;\4C%=COPY\1:9998.DEVICE.FHS.ROŒ\2:\3;\4C%=COPY\1:9998.DEVICE.IOS.ROŒ\2:\3;\4C"=COPY\1:9998.FHS.IXR.AG\2:\3;\4C*=COPY\1:9998.FHSIOS.VERSADOS.CI‡\2:\3;\4C#=COPY\1:9998.FILE.FHS.ROŽ\2:\3;\4C#=COPY\1:9998.FILE.IOS.ROŽ\2:\3;\4C%=COPY\1:9998.OSLIST.FHS.SIŒ\2:\3;\4C%=COPY\1:9998.OSLIST.IOS.SIŒ\2:\3;\4C&=COPY\1:9998.VERSAPT.FHS.CF‹\2:\3;\4C&=COPY\1:9998.VERSAPT.IOS.CF‹\2:\3;\4Cééééék=/*C=/* COPYGEN.FMS.CF - Chain file to copy all files for sysgen of FMS!=COPY\1:9998.&.FDTA.RO\2:\3;\4C!=COPY\1:9998.&.FFHS.RO\2:\3;\4C!=COPY\1:9998.&.FIOM.RO\2:\3;\4C!=COPY\1:9998.&.FIOS.RO\2:\3;\4C =COPY\1:9998.&.FMS.LG‘\2:\3;\4C!=COPY\1:9998.&.FUTY.RO\2:\3;\4C"=COPY\1:9998.FMS.IXR.AG\2:\3;\4C'=COPY\1:9998.FMS.VERSADOS.CIŠ\2:\3;\4C%=COPY\1:9998.OSLIST.FMS.SIŒ\2:\3;\4C&=COPY\1:9998.VERSAPT.FMS.CF‹\2:\3;\4Céé éééét =/*L=/* COPYGEN.IOC.CF - Chain file to copy all files for sysgen of IOC portions=/*’forany/alldrivers#=COPY\1:9998.&.IOCGEN.CIŽ\2:\3;\4C#=COPY\1:9998.&.IOCGEN.LGŽ\2:\3;\4C$=COPY\1:9998.IOC.BEGIN.AG\2:\3;\4C"=COPY\1:9998.IOC.END.AG\2:\3;\4C$=COPY\1:9998.MACRO.DCB.SI\2:\3;\4C(=COPY\1:9998.MACRO.DCBDISK.SI‰\2:\3;\4C(=COPY\1:9998.MACRO.DCBGPIB.SI‰\2:\3;\4C)=COPY\1:9998.MACRO.DCBMTAPE.SIˆ\2:\3;\4C'=COPY\1:9998.MACRO.DCBPRT.SIŠ\2:\3;\4C(=COPY\1:9998.MACRO.DCBTERM.SI‰\2:\3;\4Céééééé} =/*C=/* COPYGEN.IOI.CF - Chain file to copy all files for sysgen of IOI =COPY\1:9998.&.IOI.CI‘\2:\3;\4C =COPY\1:9998.&.IOI.LG‘\2:\3;\4C =COPY\1:9998.&.IOI.RO‘\2:\3;\4C$=COPY\1:9998.&.ROMIOI1.AG\2:\3;\4C%=COPY\1:9998.&.ROMIOI90.ROŒ\2:\3;\4C$=COPY\1:9998.EET.START.AG\2:\3;\4C"=COPY\1:9998.FMS.IOI.AG\2:\3;\4C&=COPY\1:9998.VERSAPT.IOI.CF‹\2:\3;\4C éééééé† =/*I=/* COPYGEN.LOADER.CF - Chain file to copy all files for sysgen of LOADER3=/*•(systemwillpickwhichMMU/NOMMUfilestouse)$=COPY\1:9998.&.EMHNDLR.RO\2:\3;\4C%=COPY\1:9998.MMU.LOADER.LGŒ\2:\3;\4C%=COPY\1:9998.MMU.LOADER.ROŒ\2:\3;\4C*=COPY\1:9998.MMULDR.VERSADOS.CI‡\2:\3;\4C'=COPY\1:9998.NOMMU.LOADER.LGŠ\2:\3;\4C'=COPY\1:9998.NOMMU.LOADER.ROŠ\2:\3;\4C,=COPY\1:9998.NOMMULDR.VERSADOS.CI…\2:\3;\4C&=COPY\1:9998.VERSAPT.LDR.CF‹\2:\3;\4Céééééé  =/*B=/* COPYGEN.ROOT.CF - Chain file to copy all root files for sysgen=/*#=COPY\1:0000.&.UTILIB.ROŽ\2:\3;\4C=/*$=COPY\1:9998.&.INITDAT.AG\2:\3;\4C$=COPY\1:9998.&.INITIO1.LG\2:\3;\4C"=COPY\1:9998.&.ROGEN.CI\2:\3;\4C"=COPY\1:9998.&.ROGEN.LG\2:\3;\4C#=COPY\1:9998.&.SYSGEN.CFŽ\2:\3;\4C$=COPY\1:9998.&.SYSINIT.CI\2:\3;\4C#=COPY\1:9998.&.VALPAR.CIŽ\2:\3;\4C%=COPY\1:9998.&.VERSADOS.CDŒ\2:\3;\4C&=COPY\1:9998.IOC.ADDRESS.CI‹\2:\3;\4C(=COPY\1:9998.NOLIST.SYSGEN.CF‰\2:\3;\4C&=COPY\1:9998.SIO.ADDRESS.CI‹\2:\3;\4C%=COPY\1:9998.STD.SYSGEN.CFŒ\2:\3;\4C*=COPY\1:9998.VERSAPT.SYSINIT.CF‡\2:\3;\4C=/*&=COPY\1:9999.M68XXX.INIT.RO‹\2:\3;\4Cééééé˜'COPYGEN TNTDRV CF­­ aaVM02 CF¶¶aaVM03 CF¿¿aaVME101 CFÈÈaaVME110 CFÑÑaaVME115 CFÚÚaaVME12X CFããaaRADDRV CFììaaVMES10 CFõõaaRIODRV CFþþaaVM01 CFaaPV01DRV CFaaSIODRV CFaaVM04 CF""aaVME122 CF++aa=/*M=/* COPYGEN.TNTDRV.CF - Chain file to copy all files for sysgen of TNT driver=/*#=COPY\1:9993.&.TNTDRV.CIŽ\2:\3;\4C#=COPY\1:9993.&.TNTDRV.LGŽ\2:\3;\4C#=COPY\1:9993.&.TNTDRV.ROŽ\2:\3;\4C&=COPY\1:9994.NTS.NTSSERV.RO‹\2:\3;\4C%=COPY\1:9998.IOC.TNTDRV.AGŒ\2:\3;\4C(=COPY\1:9998.OSLIST.TNTDRV.SI‰\2:\3;\4C)=COPY\1:9998.VERSAPT.TNTDRV.CFˆ\2:\3;\4Cé ééééé¥ =/*K=/* COPYGEN.VM02.CF - Chain file to copy all VM02 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4!=COPY\1:9998.TNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.C8OC.SYSPAR.RO‹\2:\3;\4Cééééé®=/*K=/* COPYGEN.VM03.CF - Chain file to copy all VM03 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE. SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4!=COPY\1:9998.TNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.CBOF.SYSPAR.RO‹\2:\3;\4Cééééé·=/*O=/* COPYGEN.VME101.CF - Chain file to copy all VME101 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.C8OC.SYSPAR.RO‹\2:\3;\4Cééééé À=/*O=/* COPYGEN.VME110.CF - Chain file to copy all VME110 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.C8OC.SYSPAR.RO‹\2:\3;\4CéééééÉ=/*O=/* COPYGEN.VME115.CF - Chain file to copy all VME115 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C%=/*‚SYSPARfile:‹Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4Cééé ééÒ=/*H=/* COPYGEN.VME12X.CF - Chain file to copy all VME120/128 specific files=/*•forsysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4(=COPY\1:9998.VME12X.INITIO1.AGˆ\2:\3;\4&=COPY\1:9998.VME12X.MTYPE.SIŠ\2:\3;\4(=COPY\1:9998.VME12X.SYSINIT.LGˆ\2:\3;\4=/*!=COPY\1:9999..BOARD.EQ\2:\3;\4C#=COPY\1:9999..PREINIT.ROŽ\2:\3;\4C=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C%=/*‚SYSPARfile:‹Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4CéééééÛ=/*G=/* COPYGEN.RADDRV.CF - Chain file to copy all files for sysgen of RAD1#=COPY\1:9992.&.RADDRV.CIŽ\2:\3;\4C#=COPY\1:9992.&.RADDRV.LGŽ\2:\3;\4C#=COPY\1:9992.&.RADDRV.ROŽ\2:\3;\4C#=COPY\1:9992.&.RADIOC.SIŽ\2:\3;\4C#=COPY\1:9992.&.RADMEM.CIŽ\2:\3;\4C#=COPY\1:9992.&.RADMEM.AGŽ\2:\3;\4C)=COPY\1:9998.VERSAPT.RADDRV.CFˆ\2:\3;\4Céé ééééä =/*O=/* COPYGEN.VMES10.CF - Chain file to copy all VMES10 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C%=/*‚SYSPARfile:‹Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.CAOE.SYSPAR.RO‹\2:\3;\4Céééééí=/*F=/* COPYGEN.RIODRV.CF - Chain file to copy all files for sysgen of RIO#=COPY\1:9992.&.RIODRV.CIŽ\2:\3;\4C#=COPY\1:9992.&.RIODRV.LGŽ\2:\3;\4C#=COPY\1:9992.&.RIODRV.ROŽ\2:\3;\4C#=COPY\1:9992.&.RIOIOC.SIŽ\2:\3;\4C#=COPY\1:9992.&.RIOMEM.CIŽ\2:\3;\4C#=COPY\1:9992.&.RIOMEM.AGŽ\2:\3;\4C)=COPY\1:9998.VERSAPT.RIODRV.CFˆ\2:\3;\4C  ééééééö =/*D=/* COPYGEN.VM01.CF - Chain file to copy all VM01 specific files for =/*—sysgen.$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4!=COPY\1:9998.TNT.ASR.AG\2:\3;\4'=COPY\1:9998.VERSAPT.VM01.CFŠ\2:\3;\4C=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.C8OC.SYSPAR.RO‹\2:\3;\4Céééééÿ  =/*H=/* COPYGEN.PV01DRV.CF - Chain file to copy all files for sysgen of VM01=/*–localprinterdriver$=COPY\1:9993.&.PV01DRV.CI\2:\3;\4C$=COPY\1:9993.&.PV01DRV.LG\2:\3;\4C$=COPY\1:9993.&.PV01DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.PV01DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.PV01DRV.CF‡\2:\3;\4Céééééé=/*M=/* COPYGEN.SIODRV.CF - Chain file to copy all files for sysgen of SIO driver#=COPY\1:9993.&.SIODRV.CI\2:\3;\4C#=COPY\1:9993.&.SIODRV.LG\2:\3;\4C#=COPY\1:9993.&.SIODRV.RO\2:\3;\4C%=COPY\1:9998.IOC.SIODRV.AG\2:\3;\4C)=COPY\1:9998.VERSAPT.SIODRV.CF‰\2:\3;\4Cééééé! é=/*K=/* COPYGEN.VM04.CF - Chain file to copy all VM03 specific files for sysgen$=COPY\1:9998..CNFGDRVR.CI\2:\3;\4C"=COPY\1:9998..IFDRVR.CI\2:\3;\4C#=COPY\1:9998..INITIO1.AGŽ\2:\3;\4C"=COPY\1:9998..SYSTEM.CI\2:\3;\4C!=COPY\1:9998.&.MTYPE.SI\2:\3;\4#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4=/*=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C=/*™Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*(=COPY\1:9999.C20O24.SYSPAR.RO‰\2:\3;\4Cééééé=/*D=/* COPYGEN.VME122.CF - Chain file to copy all VME122 specific files=/*•forsysgen)=COPY\1:9998.VME120.CNFGDRVR.CI‡\2:\3;\4'=COPY\1:9998.VME120.IFDRVR.CI‰\2:\3;\4'=COPY\1:9998.VME120.SYSTEM.CI‰\2:\3;\4#=COPY\1:9998.NOTNT.ASR.AG\2:\3;\4(=COPY\1:9998.VME12X.INITIO1.AGˆ\2:\3;\4&=COPY\1:9998.VME12X.MTYPE.SIŠ\2:\3;\4(=COPY\1:9998.VME12X.SYSINIT.LGˆ\2:\3;\4=/*&=COPY\1:9999.VME120.BOARD.EQŠ\2:\3;\4(=COPY\1:9999.VME120.PREINIT.ROˆ\2:\3;\4=COPY\1:9999..RMS.CI’\2:\3;\4C=COPY\1:9999..RMS.LL’\2:\3;\4C=COPY\1:9999..RMS.LO’\2:\3;\4C%=/*‚SYSPARfile:‹Nameformatis:‚CxOy%=/*›where:‚Cx=crashsave…addressx00"=/*£Oy=sysparoffsetaddressy00=/*&=COPY\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4Céé! ééé#'EXORMACSCOPYSGENCF88vaaINITIO1 AGQQ©aaCNFGDRVRCIjjaaSYSTEM CI‹‹saaIFDRVR CI¤¤,aa=/*>=/*‚EXORMACS.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*)=/*‚--‚FORCECATALOGTOBESET=EXORMACS=USE :.EXORMACS=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*==/*ƒInvokeas:„=EXORMACS.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 4…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4Š=ARG\1,\2,\3,N…=/ENDIF=/ENDIFJ=/*‚SetArg5sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copyingO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all ACIA driver files for sysgen=/@„\1:9998.COPYGEN.ACIADRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CF" 0D9(A O=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------(=/* Copy all TNT driver files for sysgen=/@„\1:9998.COPYGEN.TNTDRV.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------/=/*‚CopyallEXORMACSspecificfilesforsysgen=/@„\1:9998.COPYGEN.EXORMACS.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*4=/*†EXORMACS.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééé" é**ˆEXORMACS.INITIO1.AG**‚Includedfilesare:*‰M6840.M6840.EQŠINCLUDEM6840.M6840.EQ ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.* ŠXDEFƒINITMMUŠXREF.SMMUHERE INITMMU: 7ŠMOVEM.LD0-D7/A0,-(SP)„Saveregisterswe'llblowaway. *ŠLEA„$FE2000,A0‰A0<--addressoftheMMU. ,ŠIFNEƒ\MMUIfwe'resupposedtousetheMMU, ;ŠMOVE.LA0,MMUHERE‰.SavetheaddressoftheMMUinSYSPAR. ŠENDC 4ŠIFEQƒ\MMUElse(we'renotsupposedtousetheMMU), DŠMOVEM.LMMUFAKE(PC),D0-D7.GivetheMMUsomestuffwhichwillmake*ŠMOVEM.LD0-D7,(A0)ˆ.itlooktransparent. ŠENDC 3ŠMOVEM.L(SP)+,D0-D7/A0„Restoreregistersandexit.ŠRTS  DMMUFAKEƒDC.Lƒ$0000FFFF,$00000001‚StufftoputinMMUtomakeitlookŠDC.Lƒ0,0,0,0,0,0ˆtransparent. **„Startthetimerrunning.*+ŠXREF.SCRASHSAV‹ThesearefoundinSYSPAR.ŠXREF.SEXCSTACKŠXREF.SPTMADDRŠXREF.STIMESLICŠXREF.STIMINTVŠXREF.STIMINTV4 &ŠXREFƒCLOCKFRQ‹ThesearefoundinIND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntrypointtoSTARTTIMERroutine.*1TIMERSTƒEQU„*’EntrypointtoSTARTTIMERroutine.;ŠMOVE.LTIMSLIC(PC),TIMESLICSetthesysgenparameterwhich'*¦dictatesthe#oftimerticspertime*¦slice'ŠMOVE.LTIMERA(PC),A1†GETTIMERADDRESS#ŠMOVE.LA1,PTMADDR‰SAVEITFOREXEC$ŠBEQ.S‚TIMER_EXIT‰BRANCHIFNOTIMER)ŠPEA„TIMERBE(PC)ˆWHERETOGOONBUSERROR$ŠMOVE.W#'BE',-(A7)ˆSETBUSERRFLAG3ŠMOVE.B#$01,CR2SR(A1)…ALLOWWRITETOCONTROLREG1&ŠMOVE.B#$01,CR13(A1)†ALLTIMERSRESET$ŠMOVE.L#CLOCKFRQ,D0‡CLOCKFREQUENCYŠDIVUƒ#4,D0ŽDIVIDEBY4#ŠSUB.W‚#1,D0ŽCLOCKINTERRUPTSAT-1*ŠMOVE.WTIMINTVA(PC),D1„INTERRUPTINTERVAL ŠMOVE.WD1,TIMINTV‰SAVEFOREXECŠMULUƒ#4,D1ŽMULTIPLYBY4*ŠSUB.W‚#1,D1ŽSUBTRACT1-TIMERGOESTO-1!ŠMOVE.WD1,TIMINTV4ˆSAVEFOREXECŠLSL.W‚#8,D1ŽPUTINHIGHBYTEIPR;Z)ŠADD.W‚D1,D0ŽVALUEFORTIMER3(2HALVES)ŠMOVEP‚D0,MSBT3(A1)‡SETTIMER34ŠMOVE.W#256,D0ŒVALUEFORTIMER1(OVERFLOWCOUNTER)ŠMOVEP‚D0,MSBT1(A1)‡SETTIMER18ŠMOVE.B#$00,CR2SR(A1)…ALLOWWRITETOCONTROLREGISTER3;ŠMOVE.B#$C6,CR13(A1)†T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8ŠMOVE.B#$01,CR2SR(A1)…ALLOWWRITETOCONTROLREGISTER1;ŠMOVE.B#$00,CR13(A1)†T1--EXTERNALCLOCK,ENABLEALLTIMERS/ŠADDQ.L#6,SPŽEverythingwentOK;justgetthat'*¦buserrorjunkoffthestackandexitŠBRA.S‚TIMER_EXIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ŠENDéééé**ˆEXORMACS.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------F* This file sets up the flags used by the "EXORMACS.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---=*EXORMACS.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CIƒaddO/StaskconfigurationforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------:NOLTERMƒ=2Œ#ofterminalsusingACIAserialports;max=2IFGTˆ\NOLTERM-2ƒMSG†NOLTERMmustbe<=2ƒABORTENDC O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*-------------------------------------------------# -----------------------------=NOVM20„=1Œ#ofVM20…FDC(floppyonlydiskcontrollerboards)*¦usesIPCdriver*¦(see"&.IPCDRV.CI")G*NOTE:‚Ifyouincreasethenumberoffloppiesoneitherthe1stor2nd@*ˆcontrollerboards,youmayneedtoedit&.IPCDRV.CIandchangeB*ˆtheZvaluefrom81to85sothatthefileIOC.VM20DRV.AGcanbe;*ˆassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM20DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM20b,k%s%{7ƒNFV20$1ƒ=2Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 HƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard;drive0HƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard;drive1HƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard;drive2HƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard;drive3 HƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard;drive0HƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard;drive1HƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard;drive2HƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboard;drive3ENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI")I*NOTE:‚Ifyouincreasethenumberofharddiskorfloppiesoneitherthe@*ˆ1stor2ndcontrollerboards,youmayneedtoedit&.IPCDRV.CIF*ˆandchangetheZvaluefrom81to92sothatthefileIOC.VM21DRV.AGB*ˆcanbeassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM21DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 FƒVM210$1„="'FXCMD80'"‚Typeof1sthardƒdiskon1stUDCboard;drive0FƒVM211$1„="'RMCMD16'"‚Typeof2ndhardƒdiskon1stUDCboard;drive1FƒVM212$1„="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard;drive2FƒVM213$1„="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard;drive3 HƒVM214$1„="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard;drive4HƒVM215$1„="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard;drive5HƒVM216$1„="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard;drive6HƒVM217$1„="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard;drive7 FƒVM210$2„="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard;drive0FƒVM211$2„="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard;drive1FƒVM212$2„="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard;drive2FƒVM213$2„="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard;drive3 HƒVM214$2„="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard;drive4HƒVM215$2„="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard;drive5HƒVM216$2„="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard;drive6HƒVM217$2„="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboard;drive7ENDC O*------------------------------------------------------------------------------8NOVM22„=0Œ#ofVM22…SMDdiskcontrollersboards(single*¦board)J*NOTE:‚Ifyouincreasethenumberofharddiskorfloppies,youwillneedC*ˆtoedit&.VM22DRV.CIandchangetheZvaluefrom81to92sothatF*ˆthefileIOC.VM22DRV.AGcanbeassembledduringsysgen.‚The81valueF*ˆissothatthefileIOC.VM22DRV.AGcanbeassembledina384Ksystem*ˆduringsysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=0Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV$ 22$1ƒ=0Œ#offloppydiskdrivesonVM22;max=4 BƒVM220$1ƒ="'FXCMD80'"‚Typeoffixed…on1stdiskon1stVM22boardFƒVM221$1ƒ="'RMCMD16'"‚Typeofremovableon1stdiskon1stVM22boardBƒVM222$1ƒ="'FXCMD80'"‚Typeoffixed…on2nddiskon1stVM22boardFƒVM223$1ƒ="'RMCMD16'"‚Typeofremovableon2nddiskon1stVM22boardBƒVM224$1ƒ="'FXCMD80'"‚Typeoffixed…on3rddiskon1stVM22boardFƒVM225$1ƒ="'RMCMD16'"‚Typeofremovableon3rddiskon1stVM22boardBƒVM226$1ƒ="'FXCMD80'"‚Typeoffixed…on4thdiskon1stVM22boardFƒVM227$1ƒ="'RMCMD16'"‚Typeofremovableon4thdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=1Œ#ofVM30…MCCM‚(multi-channelcommunications *¦boards)(*¦usesIPCdriver;has1printerport/bd*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=4Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=1Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------8NOTNT…=0Œ#ofTNT†TransparentNetworkTerminals;max=5 O*------------------------------------------------------------------------------éééé**ˆEXORMACS.SYSTEM.CI*L****************************************************************************B*‚Thisfilecontainsallboard/systemdependenciesforEXORMACS.Š*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰$ ******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FEE040†Addressoftimer.5CLOCKFRQ‚=1000‰Numberofclocktickspermillisecond'PANEL…=$FE0000†Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterruptƒ6Œ.”*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumberusedbyIOC.IPCDRV.AG8LTDA$01ƒ=$FEE011†EXORMACSlocalterminalportAaddress8LTDA$02ƒ=$FEE015†EXORMACSlocalterminalportBaddress0LPDA$01ƒ=$FEE009†EXORMACSlocalprinteraddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.AMEMEND1ƒ=$200000†Endingaddrforon-board‚memorymustbe=this.1*˜Note:ForVM11-2(512k)RAMboardsetMEMEND2to#*ž$40000.Jumperboardaccordingly.@MEMEND3ƒ=$0‹Ceilingaddrforoff-boardmemory(mustbe*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.ACIADRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.PIAEXM.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDC* IFNEˆ\NOTNTƒINCLUDE…&.TNTDRV.CIENDCééœ-'VM01 COPYSGENCF±±vaaINITIO1 AGÊʃaaCNFGDRVRCIãã‰aaIFDRVR CI(aaSYSTEM CI  waa% =/*:=/*‚VM01.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*%=/*‚--‚FORCECATALOGTOBESET=VM01 =USE :.VM01=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*9=/*ƒInvokeas:„=VM01.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 4…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4Š=ARG\1,\2,\3,N…=/ENDIF=/ENDIFJ=/*‚SetArg5sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copyingO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all EPCI driver files for sysgen=/@„\1:9998.COPYGEN.EPCIDRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CF©D²(º O=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PV01DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------(=/* Copy all TNT driver files for sysgen=/@„\1:9998.COPYGEN.TNTDRV.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM01specificfilesforsysgen=/@„\1:9998.COPYGEN.VM01.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BE& GINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM01.COPYSGEN.CF‚completed.ŒHaveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!ééééé*ˆINCLUDEM6840.M6840.EQ‰INCLUDEM6840.M6840.EQ ‰SECTIONƒ8‰PAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.*5ŠXDEFƒINITMMUŒIt'seasyforustoinitializetheMMU,$INITMMUƒRTS—sincewedon'thaveone. **„Startthetimerrunning.*+ŠXREF.SCRASHSAV‹ThesearefoundinSYSPAR.ŠXREF.SEXCSTACKŠXREF.SPTMADDRŠXREF.STIMESLICŠXREF.STIMINTVŠXREF.STIMINTV4 &ŠXREFƒCLOCKFRQ‹ThesearefoundinIND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntrypointtoSTARTTIMERroutine.TIMERSTDŠMOVE.LTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1& )ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT.ŠPAGEÂ@Ë=Ó ‰SECTIONƒ8.***********************************************(*†SUBROUTINEUSEDTOINITIALIZEIOPORTS*;*ˆTHISROUTINEMUSTBEMODIFIEDFORSYSTEMBEINGINITIALZED* ‰XDEF„INITIO INITIOƒEQU…**/*…INITIALIZESERIALPORT2(FORVERSAMODULE01)*ŒOR‚IPCFOREXORMACS*+‰PEA„INITIOR(PC)„RETURNIFBUSERROROCCURS)‰MOVE.W#'BE',-(A7)„SAVE'BUSERROR'FLAG$‰TST.B‚$F7001FˆREADCOMMANDREGISTER+‰MOVE.B#$4E,$F7001DƒINITMODEREG1PORT2+‰MOVE.B#$3E,$F7001DƒINITMODEREG2PORT25‰MOVE.B#$36,$F7001FƒRESETANDENABLERECEIVERPORT2$‰TST.B…$F70017ƒREADCOMMANDREGISTER+‰MOVE.B„#$4E,$F70015ˆINITMODEREG1PORT1+‰MOVE.B„#$3E,$F70015ˆINITMODEREG2PORT15‰MOVE.B„#$36,$F70017‡RESETANDENABLERECEIVERPORT13‰MOVE.B#$BF,$F70030ƒENABLEVMINTERRUPTSFORPORT2)‰LEA„6(A7),A7‡REMOVEBUSERRORFROMSTACK INITIOR‚RTS‰PAGEE*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ‰ENDééé' ééé**ˆVM01.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------B* This file sets up the flags used by the "VM01.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---9*VM01.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CIƒaddO/StaskconfigurationforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=2Œ#ofterminalsusingVM01serialports(EPCI);max=2 O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=2 O*------------------------------------------------------------------------------8NOTNT…=0Œ#ofTNT†TransparentNetworkTerminals;max=5 O*------------------------------------------------------------------------------=NOVM20„=1Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI")G*NOTE:‚Ifyouincreasethenumberoffloppiesoneitherthe1stor2nd@*ˆcontrollerboards,youmayneedtoedit&.IPCDRV.CIandchangeB*ˆtheZvaluefrom81to85sothatthefileIOC.VM20DRV.AGcanbe;*ˆassembledduringsysgen.‚The81valueissothatthefileÛ)ä'ì&ôA*ˆIOC.VM20DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=2Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 ?ƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard?ƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard?ƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard?ƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard ?ƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard?ƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard?ƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard?ƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboardENDC O*------------------------------------------------------------------------------;NOVM21„=0Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI")I*NOTE:‚Ifyouincreasethenumberofharddiskor' floppiesoneitherthe@*ˆ1stor2ndcontrollerboards,youmayneedtoedit&.IPCDRV.CIF*ˆandchangetheZvaluefrom81to92sothatthefileIOC.VM21DRV.AGB*ˆcanbeassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM21DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=0Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=0Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 FƒVM210$1ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon1stUDCboard;drive0FƒVM211$1ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon1stUDCboard;drive1FƒVM212$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard;drive2FƒVM213$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard;drive3 HƒVM214$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard;drive4HƒVM215$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard;drive5HƒVM216$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard;drive6HƒVM217$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard;drive7 FƒVM210$2ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard;drive0FƒVM211$2ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard;drive1FƒVM212$2ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard;drive2FƒVM213$2ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard;drive3 HƒVM214$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard;drive4HƒVM215$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard;drive5HƒVM216$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard;drive6HƒVM217$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboard;drive7ENDC O*------------------------------------------------------------------------------8NOVM22„=0Œ#ofVM22…SMDdiskcontrollersboards(single*˜board)J*NOTE:‚Ifyouincreasethenumberofharddiskorfloppies,youwillneedC*ˆtoedit&.VM22DRV.CIandchangetheZvaluefrom81to92sothatF*ˆthefileIOC.VM22DRV.AGcanbeassembledduringsysgen.‚The81valueF*ˆissothatthefileIOC.VM22DRV.AGcanbeassembledina384Ksystem*ˆduringsysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=0Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=0Œ#offloppydiskdrivesonVM22;max=4 >ƒVM220$1ƒ="'FXCMD80'"‚Typeof1sthardƒdiskon1stVM22board>ƒVM221$1ƒ="'RMCMD16'"‚Typeof2ndhardƒdiskon1stVM22board>ƒVM222$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stVM22board>ƒVM223$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stVM22board>ƒVM224$1ƒ="'FXCMD80'"‚Typeof5thhardƒdiskon1stVM22board>ƒVM225$1ƒ="'RMCMD16'"‚Typeof6thhardƒdiskon1stVM22board>ƒVM226$1ƒ="'FXCMD80'"‚Typeof7thhardƒdiskon1stVM22board>ƒVM227$1ƒ="'RMCMD16'"‚Typeof8thhardƒdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=0Œ#ofVM30…MCCM‚(multi-channelcommunications *˜boards)(*¤usesIPCdriver;has1printerport/bd*¤(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=0Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=0Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------( éééé**ˆVM01.IFDRVR.CI*** Conditional file for VM01 device driversO*------------------------------------------------------------------------------G* This file uses flags setup in the VM01.CNFGDRVR.CI and VM01.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.EPCIDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.PV01DRV.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDCéééü)**ˆVM01.SYSTEM.CI*L****************************************************************************>*‚Thisfilecontainsallboard/systemdependenciesforVM01.Ž*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheproces( sorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F70000†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.7,*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** <&VECTNOƒ=$FFŠStartingVectorNumber‚(usedbyIOC.IPCDRV.AG)4LTDA$01ƒ=$F70011†VM01localterminalportAaddress4LTDA$02ƒ=$F70019†VM01localterminalportBaddress3LPDA$01ƒ=$F70020†VM01localprinterportAaddress3LPDA$02ƒ=$F70022†VM01localprinterportBaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.@MEMEND1ƒ=$20000‡Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*---------) -------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF"P+(3(;O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM02specificfilesforsysgen=/@„\1:9998.COPYGEN.VM02.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*-----------------------------------------* -----------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM02.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!ééééééé**ˆVM02.INITIO1.AG**ˆINCLUDEM6840.M6840.EQ‰INCLUDEM6840.M6840.EQ ‰SECTIONƒ8‰PAGE*(*ˆVECTORNUMBERTABLEFORVERSAMODULE-020*ˆTHEREARE3GROUPSOFVECTORNUMBERSSTOREDAT%*ˆTHEHIGHLOCATIONSOFONBOARDRAM.5*ˆTHESEVECTORNUMBERSARESTOREDFROMTOPTOBOTTOM.*ˆTABLESTRUCTURE:*’DC.WENDADDRESS+2OFGROUPX*’DC.W7THVECTORNUMBER*’.*’.*’DC.W1STVECTORNUMBER* VM02TBLƒEQUƒ* **‚Group0vectors.*:‰DC.W‚$1000‰Offsetto2+lastofgroup0vectorsonVM02.#‰DC.W\KILVECT‡IRQ7-KILLERROUTINE#‰DC.W\KILVECT‡IRQ6-KILLERROUTINE#‰DC.W\KILVECT‡IRQ5-KILLERROUTINE#‰DC.W\KILVECT‡IRQ4-KILLERROUTINE#‰DC.W\KILVECT‡IRQ3-KILLERROUTINE#‰DC.W\KILVECT‡IRQ2-KILLERROUTINE#‰DC.W\KILVECT‡IRQ1-KILLERROUTINE **‚Group1vectors.*9‰DC.W$FF0‹Offsetto2+lastofgroup1vectorsonVM02.@‰DC.W\KILVECT‡71/3:‚ACFAILfromtheVERSAbus;sendtoKILLER.+‰DC.W\SERPTSˆ61/3:‚NEC7201serialports."‰DC.W\PTMVECT‡51/3:‚M6840timer.:‰DC.W\BCLRV‰41/3:‚Busclear…fromVM02busarbiterlogic.@‰DC.W\KILVECT‡31/3:‚BusavailablefromVM02busarbiterlogic;*«sendtoKILLER.>‰DC.W\KILVECT‡21/3:‚VERSAbusinterruptacknowledged;sendto *«KILLER.-‰DC.W\FAILŠ11/3:‚SYSFAILf* romtheVERSAbus. **‚Group2vectors.*8‰DC.W$FE0‹Offsetto2+lastofgroup2vectoronVM02."‰DC.W\SWABRTˆIRQ7-SOFTWAREABORT#‰DC.W\KILVECT‡IRQ6-KILLERROUTINE2‰DC.W\IOCVEC4‡IRQ5-I/OCHANNELINTERRUPTLEVEL42‰DC.W\IOCVEC3‡IRQ4-I/OCHANNELINTERRUPTLEVEL32‰DC.W\IOCVEC2‡IRQ3-I/OCHANNELINTERRUPTLEVEL22‰DC.W\IOCVEC1‡IRQ2-I/OCHANNELINTERRUPTLEVEL15‰DC.W\KILVECT‡IRQ1-KILLERROUTINE-UNASSIGNEDVECTOR‰PAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.*5ŠXDEFƒINITMMUŒIt'seasyforustoinitializetheMMU,$INITMMUƒRTS—sincewedon'thaveone. **„Startthetimerrunning.*CGL:T3\%+ŠXREF.SCRASHSAV‹ThesearefoundinSYSPAR.ŠXREF.SEXCSTACKŠXREF.SPTMADDRŠXREF.STIMESLICŠXREF.STIMINTVŠXREF.STIMINTV4 &ŠXREFƒCLOCKFRQ‹ThesearefoundinIND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntrypointtoSTARTTIMERroutine.TIMERSTDŠMOVE.WTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT.ŠPAGE ‰XDEF„INITIO-‰XREF„CTRLREG…VERSAmodule-02controlregister ‰XREF„MEMTABL4‰XREF„DPRVAO†dualportedRAMVERSAbusaddressoffset ‰SECTIONƒ8.************************************************ƒValuetoputinVM02controlregister.ƒ*.***********************************************(CTRL†SET„%000VERSAbusintlevel(none).;CTRL†SET„0<<3+CTRLŠVERSAbusintacknowledgemask(disable).CTRL†SET„1<<10+CTRL‰Write-protectVM02RAMfromVERSAbus?(no)2CTRL†SET„1<<11+CTRL‰I/Ochannelintmask(enable).@CTRL†SET„%0000<<12+CTRL…AddressmodifiersforVERSAbusaccesses. INITIOƒEQU…**=*…INITIALIZEVERSAMODULE-02VECTORTABLEINHIGHON-BOARDRAM*)‰LEA„MEMTABL(PC),A1STARTOFMEMORYTABLE+‰MOVE.L6(A1),D0‡ENDADDRESSOFPARTITION0%‰ADD.L#1,D0‹MAYBEXXFFFTYPENUMBER#‰BCLR#0,D0ŒFORCEXX000TYPENUMBER$‰SUB.L#1,D0+ ‹FORCEXXFFFTYPENUMBER4‰AND.L#$FFFFF000,D0ƒGETOFFSETTOVM02VECTORTABLE1‰LEAVM02TBL(PC),A1„GETVM02IMAGEOFTHEVECTORS‰MOVE.L#0,A2ŠCLEARFORUSE‰MOVE.L#3,D4ˆNUMBEROFGROUPS4INITIOL1MOVE.W(A1)+,A2…GETOFFSETTOGROUPADDRESS‰ADD.LD0,A2ŠACTUALADDRESS%‰MOVE.L#7,D3‰NUMBEROFENTRIES/GROUP-INITIOL2MOVE.W(A1)+,-(A2)ƒSTORETHEVECTORS(‰SUB.L#1,D3‹DECREMENTNUMBEROFENTRIES$‰BNE.SINITIOL2‡BRANCHTILMOVEDALL'‰SUB.L#1,D4ŠDECREMENTNUMBEROFGROUPS+‰BNE.SINITIOL1†BRANCHIFMOREGROUPSTODO‰MOVE.LD0,A2‹GETOFFSET)‰ADD.L#$FF0,A2‡POINTTOCONTROLREGISTER;ŠMOVE.LA2,CTRLREG‰SaveaddrofcontrolregisterinSYSPAR.9ŠMOVEƒ#CTRL,(A2)‰Setcontrolregisterthewaywewantit. *8*‚SetdualportedRAMVERSAbusaddressoffsetinSYSPAR.*1ŠMOVE.L#\DPRVAO,DPRVAO„PuttheoffsetinSYSPAR.  E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ‰ENDéé**ˆVM02.IFDRVR.CI*** Conditional file for VM02 device driversO*------------------------------------------------------------------------------G* This file uses flags setup in the VM02.CNFGDRVR.CI and VM02.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.MPSCV02.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru+ "CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCédQ**ˆVM02.SYSTEM.CI*L****************************************************************************D*‚Thisfilecontainsallboard/systemdependenciesforVM02(VMC).ˆ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F70000†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterruptm6v/~*†*œ6‘SYSFAILinterrupt.*=HOGMODEƒ=0ŒSpecifieswhetherornotyouwanttheVM02tohog2*˜theVERSAbus(whichallowsittorunfasterwhen3*˜accessingtheVERSAbus).‚ThismayONLYbeusedif3*˜therearenoothercardsinthesystemcapableof**˜becomingbusmaster!‚Ifindoubt,use0.*š0=don'thogthebus.0*š1=hogthebus(nootherintelligentboards).*?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜Someintel, ligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumber‚usedbyIOC.IPCDRV.AG4LTDA$01ƒ=$F70015†VM02localterminalportAaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE****************************************************************‰Vectornumbers£**>**************************************************************-IOCVEC1ƒ=$71ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$72ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$73ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$74ŠI/Ochannelinterrupt4vector.*IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level.1SERPTS„=140ŠSerialport(7201)interruptvector..PTMVECTƒ=28‹Programmabletimervectornumber..FAIL†=$94ŠBoardfailinterruptvectornumber.)SWABRT„=31‹Softwareabortvectornumber.6KILVECTƒ=142ŠVectornumberwhichforcessystemcrash..BCLRV…=147ŠBusclearinterruptvectornumber. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.@MEMEND1ƒ=$20000‡Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---9*VM02.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CIƒaddO/StaskconfigurationforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=2Œ#ofterminalsusingVM02serialports(7201);max=2 O*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2Ž*—*Ÿ$§-¯4·BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydisko- n2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------8NOTNT…=0Œ#ofTNT†TransparentNetworkTerminals;max=5 O*------------------------------------------------------------------------------=NOVM20„=1Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI")G*NOTE:‚Ifyouincreasethenumberoffloppiesoneitherthe1stor2nd@*ˆcontrollerboards,youmayneedtoedit&.IPCDRV.CIandchangeB*ˆtheZvaluefrom81to85sothatthefileIOC.VM20DRV.AGcanbe;*ˆassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM20DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=2Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 ?ƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard?ƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard?ƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard?ƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard ?ƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard?ƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard?ƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard?ƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboardENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI")I*NOTE:‚Ifyouincreasethenumberofharddiskorfloppiesoneitherthe@*ˆ1stor2ndcontrollerboards,youmayneedtoedit&.IPCDRV.CIF*ˆandchangetheZvaluefrom81to92sothatthefileIOC.VM21DRV.AGB*ˆcanbeassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM21DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 FƒVM210$1ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon1stUDCboard;drive0FƒVM211$1ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon1stUDCboard;drive1FƒVM212$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard;drive2FƒVM213$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard;drive3 HƒVM214$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard;drive4HƒVM215$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard;drive5HƒVM216$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard;drive6HƒVM217$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard;drive7 FƒVM210$2ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard;drive0FƒVM211$2ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard;drive1FƒVM212$2ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard;drive2FƒVM213$2ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard;drive3 HƒVM214$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard;drive4HƒVM215$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard;drive5HƒVM216$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard;drive6HƒVM217$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboard;drive7ENDC O*------------------------------------------------------------------------------8NOVM22„=0Œ#ofVM22…SMDdiskcontrollersboards(single*˜board)J*NOTE:‚Ifyouincreasethenumberofharddiskorfloppies,youwillneedC*ˆtoedit&.VM22DRV.CIandchangetheZvaluefrom81to92sothatF*ˆthefileIOC.VM22DRV.AGcanbeassembledduringsysgen.‚The81valueF*ˆissothatthefileIOC.VM22DRV.AGcanbeassembledina384Ksystem*ˆduringsysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=0Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=0Œ#offloppyd- iskdrivesonVM22;max=4 >ƒVM220$1ƒ="'FXCMD80'"‚Typeof1sthardƒdiskon1stVM22board>ƒVM221$1ƒ="'RMCMD16'"‚Typeof2ndhardƒdiskon1stVM22board>ƒVM222$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stVM22board>ƒVM223$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stVM22board>ƒVM224$1ƒ="'FXCMD80'"‚Typeof5thhardƒdiskon1stVM22board>ƒVM225$1ƒ="'RMCMD16'"‚Typeof6thhardƒdiskon1stVM22board>ƒVM226$1ƒ="'FXCMD80'"‚Typeof7thhardƒdiskon1stVM22board>ƒVM227$1ƒ="'RMCMD16'"‚Typeof8thhardƒdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=0Œ#ofVM30…MCCM‚(multi-channelcommunications *˜boards)(*¤usesIPCdriver;has1printerport/bd*¤(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=0Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=0Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------5NVME400ƒ=0Œ#ofMVME400‚dual7201serialportboards IFGTˆ\NVME4003ƒNU400$1ƒ=0Œ#ports/usersonVME400#1;max=2/bd.3ƒNU400$2ƒ=0Œ#ports/usersonVME400#2;max=2/bd.ENDC O*------------------------------------------------------------------------------9NVME410ƒ=1Œ#ofMVME410‚dual16-bitparallelportboards IFGTˆ\NVME410,ƒNU410$1ƒ=1Œ#printersonVME410#1;max=2,ƒNU410$2ƒ=0Œ#printersonVME410#2;max=2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=0Œ#ofMVME435magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=8<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGT‡\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDCO*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsperI/OmoduleENDC O*------------------------------------------------------------------------------. ééééééé'VM03 COPYSGENCFËˤaaINITIO1 AGìì2™aaIFDRVR CI%%PaaSYSTEM CI..™aaCNFGDRVRCIOO(Üaa=/*:=/*‚VM03.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*%=/*‚--‚FORCECATALOGTOBESET=VM03 =USE :.VM03=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*9=/*ƒInvokeas:„=VM03.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/o. settingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFÃPÌ(Ô(ÜO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM03specificfilesforsysgen=/@„\1:9998.COPYGEN.VM03.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen/ =/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM03.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!ééééééé4INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVM03.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVM03BOARD.†******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O**********************************************************************/ *********O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU*…10/13/83ƒSJF„Initialwriting.?*†1/10/84ƒMSL„VerifythatUIP(update-in-progress)bitisreset&*—beforereadingrealtimeclockchip.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:ä2íPõHýFA 26ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.0ŠXREF.SFRST451ŒAddroffirstMMUinthesystem./ŠXREF.SLAST451ŒAddroflast‚MMUinthesystem.7ŠXREF.SCURR451ŒPtrtoMMULOADMMUshouldlookatnext.7ŠXREF.SCURRSDCurrentsegmentdescriptor#intheMMU.7ŠXREF.SDPRVAODual-PortedRamVersabusAddressOffset.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818).ŠXREF.STIME_LEFT ŠXREF.SNSEŠXREF.SMIDNIGHT *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM146818.M146818.EQŠLIST‰PAGE ŠSECTION8ŠOPT„BRSO*******************************************************************************2*ˆDATECONVERSIONSFROMONEBINARYFORMTOANOTHER*Ç6*ˆORDINALDATE-->DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O**********************************************************************************‰NON-LEAPDAYSBEFORETABLE*Ç,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERRŠENDM  TIMERST:E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPT'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG*4*ˆGetsystemtimeanddatefrombatterybackedtimer* UIP_LOOP:.‰BTST†#7,REGAWaitforUIPbittoresetbefore#‰BNE.S…UIP_LOOPŒreadingclockchip. *‰CLR.L…D1’Prepareforfollowingshortload'‰MOVE.B„HRS(A1),D1ŠGethoursfromtimerŠCHECK_RANGE.LD1,#0,#230‰MOVE.L„#3600*1000,D2‡Addendisonehour'smsecs+‰CLR.L…D0’CalculationwilltakeplaceinD0*‰BRA.S…CALCLOOPŒStartthecalculationloopCALCHRS)‰ADD.L…D2,D0Addonehour'smsecstotimeCALCLOOP*‰DBRA†D1,CALCHRSŠLoopuntilhourscomputed*‰CLR.W…D1’Prepareforfollowingshortload*‰MOVE.B„MINS(A1),D1‰GetminutesfromtimerŠCHECK_RANGED1,#0,#59)‰MULU.W„#60,D1ŽConvertminutestoseconds*‰CLR.L…D2’Prepareforfollowingshortload*‰MOVE.B„SECS(A1),D2‰GetsecondsfromtimerŠCHECK_RANGED2,#0,#59‰ADD.L…D2,D1D1=totalseconds‰MULU.W„#1000,D1ŒD1=totalmsecs!‰ADD.L…D1,D0D0=grandtotalmsecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStoreitforexec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Preparetoformgregoriandate'‰MOVE.B„YEAR(A1),D0‰GetyearfromtimerŠCHECK_RANGED0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGED0,#1,#12‰LSL.W…#8,D0D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGED0,#1,#31 *I*‚Thetimeanddatelookreasonable,solet'sgoaheadandkeepthoseforG*‚ourown(thechi0 pmustnothavelostpowersincelasttime).‚Wecan'tI*‚tellforsurewhetherthechiplostpower,eventhoughthere'sabitinJ*‚thechipthatsaysso,becausethebughasalreadyreadtheinformation,*‚makingitunavailabletous.* ‰BSR.L…DATEGOŽConverttoordinal!‰MOVE.L„D0,DATEGivedatetoexec ŠBRA.S‚GO_TIMER *H*‚Ifwecomehere,oneofthefieldsreadfromtheclockchipiswhacko.*‚Setsystemtimeanddayto0.*1RANGE_ERRMOVE.LTIME_LEFT,NSE†Timeofday<--0.ŠCLR.L‚MIDNIGHTŠMOVE.L#0,DATEŒDate<--0. **ˆNowstarttimerticking*KGO_TIMERMOVEƒTIMINTVA(PC),TIMINTV‚SavetimerinterruptintervalinSYSPAR.4‰MOVE.B#$A,REGA(A1)ˆSELECTPERIODICACTIVATIONRATE0‰MOVE.BREGC(A1),D0‰RESETANYPENDINGINTERRUPTS&‰MOVE.B#$46,REGB(A1)‡ENABLETHETIMER.‰ADD.L‚#6,A7REMOVE'BE'ANDBUSERRORADDRESS‰RTS˜BACKTOINIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ‰END1 ééééé**ˆVM03.IFDRVR.CI*** Conditional file for VM03 device driversO*------------------------------------------------------------------------------G* This file uses flags setup in the VM03.CNFGDRVR.CI and VM03.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.MPSCV03.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCéQ**ˆVM03.SYSTEM.CI*L****************************************************************************>*‚Thisfilecontainsallboard/systemdependenciesforVM03.Ž*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequiret1 hefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F80081†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.&7//7-?*=HOGMODEƒ=0ŒSpecifieswhetherornotyouwanttheVM03tohog2*˜theVERSAbus(whichallowsittorunfasterwhen3*˜accessingtheVERSAbus).‚ThismayONLYbeusedif3*˜therearenoothercardsinthesystemcapableof**˜becomingbusmaster!‚Ifindoubt,use0.*š0=don'thogthebus.0*š1=hogthebus(nootherintelligentboards).*?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** B&VECTNOƒ=$FFŠStartingVectorNumber‚@@@@@@@usedbyIOC.DRVIPC.AG4LTDA$01ƒ=$F80065†VM03localterminalportAaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE****************************************************************‰Vectornumbers£**>**********************************************************2 ****-IOCVEC1ƒ=$49ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$4AŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$4BŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$4CŠI/Ochannelinterrupt4vector.*IOCLVL1ƒ=3ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=4ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=5ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=6ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.AMEMEND1ƒ=$200000†Endingaddrforon-board‚memorymustbe=this.@MEMEND3ƒ=$0‹Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---9*VM03.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CI„addO/StaskconfigurationforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=2Œ#ofterminalsusingVM03(7201)serialports;max=2 O*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2G*P*X'`-h4pBƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------8NOTNT…=0Œ#ofTNT†TransparentNetworkTerminals;max=5 O*------------------------------------------------------------------------------=NOVM20„=0Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI")G*NOTE:‚Ifyouincreasethenumberoffloppiesoneitherthe1stor2nd@*ˆcontrollerboards,youmayneedtoedit&.IPCDRV.CIandchangeB*ˆtheZvaluefrom81to85sothatthefileIOC.VM20DRV.AGcanbe;*ˆassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM20DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=0Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 ?ƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard?ƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard?ƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard?ƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard ?ƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard?ƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard?ƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard?ƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboardENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI")I*NOTE:‚Ifyouincreasethenumberofharddiskorfloppiesoneitherthe3 @*ˆ1stor2ndcontrollerboards,youmayneedtoedit&.IPCDRV.CIF*ˆandchangetheZvaluefrom81to92sothatthefileIOC.VM21DRV.AGB*ˆcanbeassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM21DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 =ƒVM210$1ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon1stUDCboard=ƒVM211$1ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon1stUDCboard=ƒVM212$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard=ƒVM213$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard ?ƒVM214$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard?ƒVM215$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard?ƒVM216$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard?ƒVM217$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard =ƒVM210$2ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard=ƒVM211$2ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard=ƒVM212$2ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard=ƒVM213$2ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard ?ƒVM214$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard?ƒVM215$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard?ƒVM216$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard?ƒVM217$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboardENDC O*------------------------------------------------------------------------------8NOVM22„=1Œ#ofVM22…SMDdiskcontrollersboards(single*¦board)J*NOTE:‚Ifyouincreasethenumberofharddiskorfloppies,youwillneedC*ˆtoedit&.VM22DRV.CIandchangetheZvaluefrom81to92sothatF*ˆthefileIOC.VM22DRV.AGcanbeassembledduringsysgen.‚The81valueF*ˆissothatthefileIOC.VM22DRV.AGcanbeassembledina384Ksystem*ˆduringsysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=2Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=4Œ#offloppydiskdrivesonVM22;max=4 >ƒVM220$1ƒ="'FXCMD80'"‚Typeof1sthardƒdiskon1stVM22board>ƒVM221$1ƒ="'RMCMD16'"‚Typeof2ndhardƒdiskon1stVM22board>ƒVM222$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stVM22board>ƒVM223$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stVM22board>ƒVM224$1ƒ="'FXCMD80'"‚Typeof5thhardƒdiskon1stVM22board>ƒVM225$1ƒ="'RMCMD16'"‚Typeof6thhardƒdiskon1stVM22board>ƒVM226$1ƒ="'FXCMD80'"‚Typeof7thhardƒdiskon1stVM22board>ƒVM227$1ƒ="'RMCMD16'"‚Typeof8thhardƒdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=0Œ#ofVM30…MCCM(multi-channelcommunications *¦boards)(*¦usesIPCdriver;has1printerport/bd*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=0Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=0Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------5NVME400ƒ=1#ofMVME400‚dual7201serialportboards IFGTˆ\NVME400:ƒNU400$1ƒ=2Œ#ofports/usersonVME400bd.#1;max=2/bd.:ƒNU400$2ƒ=0Œ#ofports/usersonVME400bd.#2;max=2/bd.ENDC O*------------------------------------------------------------------------------9NVME410ƒ=1#ofMVME410‚dual16-bitparallelportboards IFGT‚\NVME4103 <ƒNU410$1ƒ=1Œ#ofprintersinuseonVME410board#1:‚max=2<ƒNU410$2ƒ=0Œ#ofprintersinuseonVME410board#2:‚max=2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=0Œ#ofMVME435magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=5<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=5ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGTˆ\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDCO*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsperI/OmoduleENDC O*------------------------------------------------------------------------------ééééééé4 'VME101 COPYSGENCF„„¯aaINITIO1 AG¥¥ÀaaIFDRVR CIÆÆWaaSYSTEM CIÏÏ}aaCNFGDRVRCIèè©aa=/*<=/*‚VME101.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME101 =USE :.VME101=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME101.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF|P…'(•O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/4 ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME101specificfilesforsysgen=/@„\1:9998.COPYGEN.VME101.CFO=/*----------------------------------------------------------------------------)=/* Copy all EPCI driver files for sysgen=/@„\1:9998.COPYGEN.EPCIDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME101.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No5 "NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééé6INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVME101.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME101BOARD.„******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------B*…10/05/84ƒKEG„CommentedouttheRESETinstructionbecausethenew.*—VME101bugtakescareofthe2661interrupts.*…10/25/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-**‚XREF's* *…Routines:1ŠXREFƒKILLERRoutinetocalltocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(M6840).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.1¦D®5¶7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.8ŠXREF.STIMINTV4‹Anothervaluerelatedtotimeinterval.+ŠXREF.SPTMADDRŒAddroftimerchip(M6840). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.   **‚Includedfiles:**‰M6840.M6840.EQ*ŠNOLISTŠINCLUDEM6840.M6840.EQ*ŠLIST ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.5 *3INITMMUƒRTS—It'seasyforustoinitializetheMMU,*§sincewedon'thaveone. **„Startthetimerrunning.*TIMERSTDŠMOVE.LTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT. ŠPAGE ‰SECTIONƒ80************************************************,*ƒValuetoputinVME101controlregister.ƒ*0*************************************************7CTRL†SET„%1101ŽStatusdisplaybitpattern.Alsousedto-*£asserttheSYSFAIL*signalontheVMEbusby,*£settingthemallto1.Statusdisplayhere*£issetupfor"D".*ª0000‚=‚display"0"*ª0001‚=‚display"1"*¶:*ª1110‚=‚display"E"*ª1111‚=‚display"F",CTRL†SET„1<<4+CTRLŠStatusdisplay(enabled).9CTRL†SET„0<<5+CTRLŠBusblocktransferrequest(disabled).;CTRL†SET„0<<6+CTRLŠBusrequesttime-outcounter(disabled).>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdrivers6 willbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ŠENDééééé**ˆVME101.IFDRVR.CI*,* Conditional file for VME101 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME101.CNFGDRVR.CI and VME101.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.EPCIDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.PIA101.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCé¾X**ˆVME101.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME101.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodify6 thisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.*;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)?ONBD$HIƒ=$0FFFˆHighvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FE00D0†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.6TRCFLAGƒ=$0‹Traceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘SimulatedinterruptÇ5Ð-Ø*œ6‘SYSFAILinterrupt.* FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$FE00A1†VME101localterminal#1deviceaddress9LTDA$02ƒ=$FE00B1†VME101localterminal#2deviceaddress8LPDA$01ƒ=$FE00C1†VME101localprinter‚#1deviceaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace****************************************************************‰Vectornumbers£**>**************************************************************9IOCVEC1ƒ=$1BŠAutovectrizedinterrupt-PIAloc.printer8IOCVEC2ƒ=$1CŠAutovectrizedinterrupt-EPCIterminal18IOCVEC3ƒ=$1DŠAutovectrizedinterrupt-EPCIterminal28IOCVEC4ƒ=$1AŠAutovectrizedinterrupt-PTMprog.timer*3IOCLVL1ƒ=3ŒAutovectorizedinterruptlevelforPIA6IOCLVL2ƒ=4ŒAutovectorizedinterruptlevelforEPCI16IOCLVL3ƒ=5ŒAutovectorizedinterruptlevelforEPCI23IOCLVL4ƒ=2ŒAutovectorizedinterruptlevelforPTM FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined7 3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.AMEMEND1ƒ=$200000†Endingaddrforon-board‚memorymustbe=this.‚NotapplicableforaVME110@MEMEND3ƒ=$0‹Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME101.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=2Œ#ofterminalsonVME101serialports(EPCI);max=2 O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="3"Š1stRWIN1iscontroller38ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 7 à)é*ñ-ù*)ƒCONTWIN2‚="4"Š2ndRWIN1iscontroller48ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="0"Š1stMVME315iscontroller08ƒNH315$1ƒ=2Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN10'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN10'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="1"Š2ndMVME315iscontroller18ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN10'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN10'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=0Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFP'(O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME420 (SASI) files for sysgen=/@„\1:9998.COPYGEN.M420DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*-------------------------------9 ---------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME110specificfilesforsysgen=/@„\1:9998.COPYGEN.VME110.CFO=/*----------------------------------------------------------------------------)=/* Copy all ACIA driver files for sysgen=/@„\1:9998.COPYGEN.ACIADRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME110.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééé6INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVME110.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME110BOARD.„******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢*9 *****É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------*…10/25/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:1ŠXREFƒKILLERRoutinetocalltocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(M6840).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.8ŠXREF.STIMINTV4‹Anothervaluerelatedtotimeinterval.&3/C7;? +ŠXREF.SPTMADDRŒAddroftimerchip(M6840). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.   **‚Includedfiles:**‰&.UTILITY.MC*‰M6840.M6840.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM6840.M6840.EQŠLIST ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.*3INITMMUƒRTS—It'seasyforustoinitializetheMMU,*§sincewedon'thaveone. **„Startthetimerrunning.*TIMERSTDŠMOVE.WTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT.ŠPAGE ‰SECTIONƒ80************************************************,*ƒValuetoputinVME110controlregister.ƒ*0*************************************************6CTRL†SET„%00Busreleasecontrol(releaseonrequest).*©00=Releaseonrequest.*©01=Releaseonbusclear.*©10=Releasewhendone.*©11=Relea: senever.*CTRL†SET„0<<4+CTRLŠFailLEDcontrol(off).;CTRL†SET„0<<5+CTRLŠVMEbusSYSFAIL*interruptmask(disabled$*§sincewearen'tpreparedtohandle%*§SYSFAILontheVME110becauseitis)*§sharedwithACFAILandSoftwareAbort).0CTRL†SET„1<<6+CTRLŠWatchdogtimermask(enable).:CTRL†SET„0<<7+CTRLŠWrite-protectionofonboardRAMinuser$*§modeaccordingtomapdecoderPROM *§(disable).  INITIO: 7ŠPEA„KILLER(PC)‰ArrangeforKILLERtogetcontrolifwe4ŠPUSHƒ#'BE'Žcan'taccesstheVME110controlregister"*§(whichwouldcauseabuserror). 9ŠLEA„$FE8021,A0‰A0<--addrofVME110'scontrolregister.-ŠMOVE.B#CTRL,(A0)‰Loadthecontrolregister. 2ŠADD.L‚#6,SPŽGetthebuserrorjunkoffthestack.   E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************‰ENDéééééé**ˆVME110.IFDRVR.CI*,* Conditional file for VME110 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME110.CNFGDRVR.CI and VME110.SYSTEM.CI0* files to condition: ally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC*IFNEˆ\NVME4205ƒINCLUDE…&.M4205.CIENDC*IFNEˆ\NVME4208ƒINCLUDE…&.M4208.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.ACIADRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCG`**ˆVME110.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME110.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)?ONBD$HIƒ=$0FFFˆHighvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FE8010†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt; P6Y/a *œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** /LTDA$01ƒ=$FE8001†VME110localterminaladdress****************************************************************‰Vectornumbers£**>**************************************************************.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.AMEMEND1ƒ=$200000†Endingaddrforon-boardmemorymustbe=this.‚NotapplicableforaVME110DMEMEND3ƒ=$00000‡Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME110.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=1Œ#ofterminalsonVME110serialports(ACIA);max=1IFGTˆ\NOLTERM-1ƒMSG†NOLTERMmustbe<=1ƒABORTENDC O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards*@*ˆNOTE:‚Youcannotsysgena2ndRWIN1boardifyouaresysgening7*foraSASI5.‚Thetwoboardsareatthesameaddress.7*ReferenceIOC.ADDRESS.CItochangetheaddressifyou$*wantbothboardsatthesametime.* IFGTˆ\NORWIN)ƒCONTWIN1‚="0"Š1stRWIN1iscontroller08ƒNHRWIN$1‚=1Œ#ofhardƒdiskƒdriveson1stRWIN1;max=2<ƒNFRWIN$1‚=2Œ#of5-1/4"floppydriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1i,r+z,‚-Š'DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="3"Š1stMVME315iscontroller38ƒNH315$1ƒ=1Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon< 1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=0Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1I****NOTE:‚DonotuseVME316inthissystem,asI/Ochannelisalreadyon3****ˆtheCPUboard!‚See"&.M316DEF.CI"fordetails. O*------------------------------------------------------------------------------ƒNF4205$1‚=2Œ#offloppydiskdrivesonVME420(SASI);max=2AƒM42050$1‚="'H5WIN15'"‚Typeofhardƒdiskon1stMVME420,drive0AƒM42051$1‚="'H5WIN15'"‚Typeofhardƒdiskon1stMVME420,drive1CƒM42052$1‚="'F5DDDSI'"‚Typeoffloppydiskon1stMVME420,drive2CƒM42053$1‚="'F5DDDSI'"‚Typeoffloppydiskon1stMVME420,drive3ƒ*>ƒ*…NOTE:‚TotaldisksforSASI=4,i.e.NH4205$1+NF4205$1<=4.ƒ*ENDC O*------------------------------------------------------------------------------=NVME4208‚=0Œ#ofMVME420‚SASI8"interfacecontrollerboards*IFGTˆ\NVME42080ƒCONT4208‚="2"ŠMVME420(SASI8)iscontroller2<ƒNH4208$1‚=0Œ#ofhardƒdiskdrivesonVME420(SASI);max=2>ƒNF4208$1‚=0Œ#offloppydiskdrivesonVME420(SASI);max=2AƒM42080$1‚="'H8WIN10'"‚Typeofhardƒdiskon1stMVME420,drive0AƒM42081$1‚="'H8WIN10'"‚Typeofhardƒdiskon1stMVME420,drive1CƒM42082$1‚="'F8DDDSI'"‚Typeoffloppydiskon1stMVME420,drive2CƒM42083$1‚="'F8DDDSI'"‚Typeoffloppydiskon1stMVME420,drive3ƒ*>ƒ*…NOTE:‚TotaldisksforSASI=4,i.e.NH4208$1+NF4208$1<=4.ƒ*ENDC O*-----------------------------------------------------------< -------------------;NVME435ƒ=0Œ#ofMVME435‚magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=8<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGTˆ\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDC O*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsperI/OmoduleENDC O*------------------------------------------------------------------------------éé'VME115 COPYSGENCFžž²aaINITIO1 AG¿¿/oaaIFDRVR CIðð[aaSYSTEM CIùù}aaCNFGDRVRCI®ff=/*<=/*‚VME115.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME115 =USE :.VME115=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME115.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(= optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF–PŸ(§'¯O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all DART driver files for sysgen=/@„\1:9998.COPYGEN.DARTDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------5=/* Copy all VME115 local PRT driver files for sysgen=/@„\1:9998.COPYGEN.P115DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CF= O=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME115specificfilesforsysgen=/@„\1:9998.COPYGEN.VME115.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME115.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééé6INITIO„IDNTƒ1,0RMS68KI/OinitializerfortheVME115.O*******************************************************************************O*******************************************************************************O**********************************> ************************************************É***A***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME115.Š******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU)*…08/28/84ƒMAD„PI/TInitializationadded.*…05/03/84ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.0ŠXREF.SFRST451ŒAddroffirstMMUinthesystem./ŠXREF.SLAST451ŒAddroflast‚MMUinthesystem.·4ÀQÈHÐ9Ø1à97ŠXREF.SCURR451ŒPtrtoMMULOADMMUshouldlookatnext.7ŠXREF.SCURRSDCurrentsegmentdescriptor#intheMMU.7ŠXREF.SDPRVAODual-PortedRamVersabusAddressOffset.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.%ŠXREF.STIMINTRŒSYSPARusecremainder7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M68230.M68230.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM68230.M68230.EQŠLISTŠPAGEO*******************************************************************************2*ˆDATECONVERSIONSFROMONEBINARYFORMTOANOTHER*Ç6*ˆORDINALDATE-->DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O******************************************************************************* ŠSECTION8**‰NON-LEAPDAYSBEFORETABLE*Ç ŠADD.W‚#3,D1ŽCOMPUTELEAPDAYS ŠLSR.W‚#2,D1ŠADD.L‚D1,D0ŽADDLEAPDAYS+ŠMOVEM.L(A7)+,D1-D2‡RESTORECALLER'SSTATE ŠRTS—GOBACK*Ç*‰DECIDELEAPNESS*Ç%DATELEAP‚LEA„DATEDBNL,A6ˆSETNON-LEAP ŠBTSTƒ#16,D0$ŠBNE.S‚DATELP02‹EXITIFYEARNOTK*2 ŠBTSTƒ#17,D0$ŠBNE.S‚DATELP02‹EXITIFYEARNOTK*4ŠMOVE.LD0,D1ŽCHECKFORCENTURY ŠCLR.W‚D1ŠSWAPƒD1 ŠDIVUƒ#100,D1ŠSWAPƒD1 ŠTST.W‚D1(ŠBNE.S‚DATELP01‹LEAPYEARIFNOTCENTURYŠBTSTƒ#16,D1ITISCENTURY$ŠBNE.S‚DATELP02‹LEAPIFYEAR=K*400 ŠBTSTƒ#17,D1ŠBNE.S‚DATELP02!DATELP01‚LEA„DATEDBL,A6‰LEAPYEARDATELP02‚RTS—GOBACKŠPAGEO*******************************************************************************O**********************************************************************************É***6***…ROUTINE:‚INITMMU--INITIALIZETHEM68451MMU.•******É***I***…FUNCTION:‚IfwearesupposedtohaveanMMU,verifyitsexistence‚******‡andinitializeit.°******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION8ŠOPT„BRS INITMMU: ,ŠIFNEƒ\MMUIfwe'resupposedtohaveanMMU, +ŠSAVEƒD0/A0ŽSaveregisterswe'llblowaway. 3ŠLEA„$F80000,A0‰A0<--addresswhereMMUshouldbe.%ŠMOVE.LA0,MMUHERE‰SaveitinSYSPAR. *%*‚SetuptheotherSYSPARparameters.*8‹MOVE.LA0,FRST451‰Ouronly68451isobviouslythefirst9‹MOVE.LA0,LAST451‰68451,thelast68451,andthecurrent‹MOVE.LA0,CURR451‰68451.7‹MOVE.L#1,CURRSDŠThecurrentsegmentdescriptoris#1. *@*‚Clearallsegmentdescriptorsexcepttheonewe'reusing(#0).*5‹PEA„KILLERŒSetupforustogotoKILLERifwegeta‹PUSHƒ#'BE'Žbuserror.<‹FOR„D0=#1TO#31DO…Forsegmentdescriptors1through31,*ŽMOVE.BD0,DP(A0)Š.‚Selectthedescriptor.7ŽMOVE.B#0,SSR(A0)‰.‚Initializeitsoitwon'tbeused.‹ENDF2‹ADD.L‚#6,SPŽGetthebuserrorjunkoffthestack. **‚Exit.*!ŠRESTORED0/A0Restoreregisters. ŠENDC ŠRTS—Return.ŠPAGEO********************************************************************************ˆSTARTTIMER„(M68230PITchip) TIMERST:‚SAVEƒD0/A0/A1EŠMOVE.WTIMSLIC(PC),TIMESLIC#TIMERINTERRUPTSBEFORETASKINTERRUPT'ŠMOVE.LTIMERA(PC),A1†GETTIMERADDRESS#ŠMOVE.LA1,PTMADDR‰SAVEITFOREXEC>ŠMOVE.B#$A0,TCR(A1)‡Settimertogenerateperiodicinterrupts*ŠMOVE.B#$4C,TIVR(A1)†Setuptimervector.(ŠMOVE.L#CLOCKFRQ,D0‡D0=tickspersecond6* Divide to find out how many ticks per 10ms interval.E*ƒWewanttodivideby100butbecauseofthepossibilityofoverflow,*ƒwemustdivideby200,thenmultiplyby2.(ŠDIVUƒ#200,D0ŒD0=ticksper05msinterval*ŠAND.L‚#$0000FFFF,D0†Masktojustquotient'ŠLSL.L‚#1,D0ŽD0=ticksper10msinterval5ŠMOVE.WTIMINTVA(PC),TIMINTVSet10mstiminginterval5ŠLSR.L‚#5,D0ŽD0=valueforpreloadwithprescaleof32"ŠMOVEP.LD0,CPRH-2(A1)…Setpreload)ŠMOVE.B#$A1,TCR(A1)‡Starttimerticking.ŠRESTORED0/A0/A1ŠRTS—BACKTOINITŠPAGEO*******************************************************************************O**********************************************************************************É***:***…ROUTINE:‚INITIO--INITIALIZEBOARD-DEPENDENTI/O.‘******É***H***…FUNCTION:‚Thisroutineissortofacatchallforinitializationƒ***/***‡ofthingsotherthanthetimerandMMU.›******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒ.ƒ.ƒDƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É***? ***…ENTRYCONDITIONS:³******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O******************************************************************************* *7* Equates for the 68230 PI/T in the VME115 environment:*/MODE0„EQU$0FƒMode0:unidirectional8-bitmode-VECTBASEEQU$C0ƒBaseinterruptvectornumberBINTFUNC‚EQU$18ƒInterruptfunctionforPC5/PC6vectoredinterrupts;INTPRIO‚EQU$05ƒInterruptpriority:HI-->H3/H4/H2/H1-->LO=INPUTSƒEQU$00ƒSelectallinputsthrudatadirectionregister?OUTPUTS‚EQU$FFƒSelectalloutputsthrudatadirectionregister3NULLOUT‚EQU$00ƒInitialdataofallnullcharacters&SUBMODE‚EQU$80ƒSubmode1X(bit7set)8H12ENAB‚EQU$00ƒH1disabled(bit3);H2disabled(bit2)6H34ENAB‚EQU$06ƒH3enabled‚(bit3);H4enabled‚(bit2).PITENAB‚EQU$30ƒEnableallinterrupts;Mode0. PAGEINITIO:*"* Get the base address of the chip*<ŠMOVE.LTIMERA(PC),A0†Addressof68230PI/Tinterrupt/timer.*G* Program the interrupt functions used by the serial port (H3), printerI* port (H2) and SYSFAIL (H4), and initialize Port A as outputs and Port B!* as inputs for the printer port.*AŠAND.B‚#MODE0,PGCR(A0)„SetPortModeControlRegisterforMode0.<ŠMOVE.B#VECTBASE,PIVR(A0)Setbaseinterruptvectornumber.EŠMOVE.B#INTFUNC+INTPRIO,PSRR(A0)Setinterruptfunctions&priority.8ŠMOVE.B#OUTPUTS,PADDR(A0)SelectPortAasalloutputs.6ŠMOVE.B#INPUTS,PBDDR(A0)‚SelectPortBasallinputs.@ŠMOVE.B#NULLOUT,PADR(A0)‚SetPortAinitialdataasnullchars.FŠMOVE.B#SUBMODE+H12ENAB,PACR(A0)SetPortAsubmode1X,H1,H2disabledFŠMOVE.B#SUBMODE+H34ENAB,PBCR(A0)SetPortBsubmode1X,H3,H4enabled.** Init Port C as follows:*ˆPC7:ƒInput„TIACK*ˆPC6:ƒInput„PIACK*ˆPC5:ƒOutputƒPIRQ:*ˆPC4:ƒOutputƒSYSFAIL(drivelowtoturnoffstartupmode)*ˆPC3:ƒOutputƒTIRQ*ˆPC2:ƒInput„ExternalClock!*ˆPC1:ƒOutputƒPrinterInputPrime!*ˆPC0:ƒOutputƒPrinterDataStrobe)* Program Outputs as '1'and Inputs as '0'*9ŠMOVE.B#$3B,PCDDR(A0)…ProgramPortCasdescribedabove.1ŠMOVE.B#%00000001,PCDR(A0)‚SetDataStrobehigh.8ŠMOVE.B#PITENAB,PGCR(A0)‚Enableallinterrupts;Mode0.*H* TEMPORARY PATCH SPACE UNTIL WE CAN FIGURE OUT WHAT TO DO WITH THE PI/T*ŠNOPŠNOPŠNOPŠNOP E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************G***********************************************************************O******************************************************************************* ŠEND? **ˆVME115.IFDRVR.CI*,* Conditional file for VME115 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME115.CNFGDRVR.CI and VME115.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.DARTDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.P115DRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCéè\**ˆVME115.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME115.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)?ONBD$HIƒ=$0FFFˆHighvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F81001†Addressoftimer.****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.AMEMEND1ƒ=$200000†Endingaddrforon-board‚memorymustbe=this.‚NotapplicableforaVME115DMEMEND3ƒ=$00000‡Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME115.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=2Œ#ofterminalsonVME115serialports;max=2 O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3  )+,#/)ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------I*NOTE:‚TheMVME315boardisnotsupportedduetoincompatibilitybetween@*ˆMVME115andMVME315althoughcontrollerassignmentsreservesa@*ˆslotfortheMVME315boardsinceMVME115(VME115bug)includes*ˆMVME315support.*ANVME315ƒ=0Œ#ofMVME315A ‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=0Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=0Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF/P8(@'HB O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all MFP driver files for sysgen=/@„\1:9998.COPYGEN.MFPDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------1=/*‚CopyallVME120/128specificfilesforsysgen=/@„\1:9998.COPYGEN.VME12X.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFB O=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME120.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééé**ˆVME120.IFDRVR.CI*,* Conditional file for VME120 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME120.CNFGDRVR.CI and VME120.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.MFPDRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCéC PX**ˆVME120.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME120.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)@ONBD$HIƒ=$1FFFF‡Highvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** ?TIMER…=$F20001†Addressoftimer‚(MustmatchvalueforMFP_BASE*œin9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond*œ(notusedonVME12X)"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘DispatchY4b1j.*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses$MSG‰***‚ShortI/Ospacebaseaddress'MSG‰***‚ShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$F20001†VME120localterminal#1deviceaddress 1SIOBASEƒ=$FF0000†BaseaddressofshortI/Ospace****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatiC ngsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.EMEMEND1ƒ=$28000-$100‚Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME120.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------?NOLTERMƒ=1Œ#ofterminalsonVME120serialports(MFP);max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒND FRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2>ƒRWIN0$1ƒ="'H5WIN15'"‚Typeofhardƒdiskon1stRWIN1,drive0>ƒRWIN1$1ƒ="'H5WIN15'"‚Typeofhardƒdiskon1stRWIN1,drive1@ƒRWIN2$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive2@ƒRWIN3$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2r({*ƒ/‹%BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=1Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=2Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=1Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=1Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF—P (¨'°O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all MFP driver files for sysgen=/@„\1:9998.COPYGEN.MFPDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*----------------------------------------------------------------------------E F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------1=/*‚CopyallVME120/128specificfilesforsysgen=/@„\1:9998.COPYGEN.VME12X.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME128.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!ééééF **ˆVME128.IFDRVR.CI*,* Conditional file for VME128 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME128.CNFGDRVR.CI and VME128.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.MFPDRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCé¸X**ˆVME128.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME128.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)@ONBD$HIƒ=$1FFFF‡Highvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** ?TIMER…=$F20001†Addressoftimer‚(MustmatchvalueforMFP_BASE*œin9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond*œ(notusedonVME12X)"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhF icheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘DispatchÁ4Ê1Ò3Ú*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses$MSG‰***‚ShortI/Ospacebaseaddress'MSG‰***‚ShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$F20001†VME128localterminal#1deviceaddress 1SIOBASEƒ=$FF0000†BaseaddressofshortI/Ospace****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.EMEMEND1ƒ=$28000-$100‚Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME128.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=1Œ#ofterminalsonVME128serialports;max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRG WIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2â)ë*ó/û%BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=1Œ#ofVME050ƒSystemController IFGTˆ\NVME0503ƒNT050$1ƒ=2Œ#ofterminalsonVME050board;max=22ƒNP050$1ƒ=1Œ#ofprinters‚onVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=1Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF P ' ( !O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.CFO=/*---I -------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVMES10specificfilesforsysgen=/@„\1:9998.COPYGEN.VMES10.CFO=/*----------------------------------------------------------------------------+=/* Copy all DRVS10 driver files for sysgen=/@„\1:9998.COPYGEN.DRVS10.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VMES10.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éééI é6INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVME/10.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***A***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME/10.Š******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU4*†3/6/84ƒSJF„Makebit7ofCR1a0ratherthana1.?*†1/10/84ƒMSL„VerifythatUIP(update-in-progress)bitisclear&*—beforereadingreal-timeclockchip.*…11/7/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone. )4 2A :E B? JO RA Z/ b: j> r0ŠXREF.SFRST451ŒAddroffirstMMUinthesystem./ŠXREF.SLAST451ŒAddroflast‚MMUinthesystem.7ŠXREF.SCURR451ŒPtrtoMMULOADMMUshouldlookatnext.7ŠXREF.SCURRSDCurrentsegmentdescriptor#intheMMU.7ŠXREF.SDPRVAODual-PortedRamVersabusAddressOffset.ŠXREF.SDATEDate.1ŠXREF.STIME_LEFTŠmsuntilnextsignificantevent0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818).0ŠXREF.SNSENextsignificanteventabsolutetime$ŠXREF.SMIDNIGHT‹msoflastmidnight *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH. **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM146818.M146818.EQŠLISTŠPAGEO*******************************************************************************O**********************************************************************************É***7***…ROUTINE:‚INITMMU--INITIALIZETHEM68451MMUs.”******É***G***…FUNCTION:‚IfwearesupposedtohaveMMUs,verifythatatleast„***4***‡oneexists,countthem,andinitializethem.–******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXJ ITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION8ŠOPT„BRS INITMMU: /ŠIFNEƒ\MMUIfwe'resupposedtohavesomeMMUs, 1ŠSAVEƒD0/D1/A0/A1ˆSaveregisterswe'llblowaway. 0ŠLEA„$F1A800,A0‰A0<--addressofthefirstMMU.%ŠMOVE.LA0,MMUHERE‰SaveitinSYSPAR. (‰PEA…KILLERCRASHIFFIRSTMMUNOTTHERE'‰MOVE.W‚#'BE',-(A7)ŠBUSERRORSWITCHON,‰MOVE.B‚(A0),D0ŽVERIFYPRESENCEOFFIRSTMMU8‰MOVE.L‚A0,FRST451‹SAVEADDRESSOFFIRST68451INSYSPAR.‰MOVE.L‚A0,CURR451‹IT'SALSOTHECURRENT68451(‰MOVE.L‚#1,CURRSDŒSEGMENTDESCRIPTOR#1#‰LEA…N68451U(PC),A1‡ADDRESSOFEXIT6‰MOVE.L‚A1,2(A7)EXITIFBUSERRORWHILECOUNTINGMMUs%‰MOVE.W‚#3,D0FOURPOSSIBLELASTMMUsN68451B1‰MOVE.B‚(A0),D1ŽEXITTHROUGHBUSERRORIFNONEXT.‰MOVE.L‚A0,LAST451‹CURRENTMAYBETHELASTMMU)‰ADD.Lƒ#$40,A0ŽSETTOCHECKNEXTMMUSLOT‰DBRA„D0,N68451B‹LOOPTILLDONE+‰ADD.Lƒ#6,A7BUSERRORPOINTEROFFOFSTACK *I*‚UnloadsegmentdescriptersinallMMU's,incaseRESETwasn'tperformed*‚priortoboot.*N68451U'ŠMOVE.LFRST451,A1ŠPointtofirst68451$ŠMOVE.B#1,D0Segmentdescriptor#1UNLD10%ŠMOVE.BD0,DP(A1)‹Pointtodescriptor-ŠMOVE.B#0,SSR(A1)ŠElseclearthisdescriptorUNLDNEXTŠADDQ.B#1,D0NextdescriptorŠCMP.B‚#$20,D0EndofthisMMU?ŠBNE.S‚UNLD10ŽBranchifno#ŠLEA„$40(A1),A1ŠMoveontonextMMUŠCLR.B‚D0’Descriptor#0)ŠCMP.L‚LAST451,A1ŠArewebeyondallMMUs?ŠBLE.S‚UNLD10ŽBranchifnoUNLDEXIT **‚Exit.*.N68451XƒRESTORED0/D1/A0/A1‡Restoreregisters. ŠENDC ŠRTS—Return.ŠPAGEO*********************************************************************************ˆSTARTTIMER„(146818TIMER)* *G*‚Thismacrowillverifythatabyteiswithinaspecifiedrange.‚IfitH*‚isnotwithintherange,abranchistakentoRANGE_ERR.‚ThesyntaxisD*„CHECK_RANGE.,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERRŠENDM  TIMERST:E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPT'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG*4*ˆGetsystemtimeanddatefrombatterybackedtimer* UIP_LOOP:4‰BTST†#7,REGA(A1)‰WaituntilUIPbitisclearbefore#‰BNE.S…UIP_LOOPŒreadingtimerchip. *‰CLR.L…D1’Prepareforfollowingshortload'‰MOVE.B„HRS(A1),D1ŠGethoursfromtimerŠCHECK_RANGE.LD1,#0,#230‰MOVE.L„#3600*1000,D2‡Addendisonehour'smsecs+‰CLR.L…D0’CalculationwilltakeplaceinD0*‰BRA.S…CALCLOOPŒStartthecalculationloopCALCHRS)‰ADD.L…D2,D0Addonehour'smsecstotimeCALCLOOP*‰DBRA†D1,CALCHRSŠLoopuntilhourscomputed*‰CLR.W…D1’Prepareforfollowingshortload*‰MOVE.B„MINS(A1),D1‰GetminutesfromtimerŠCHECK_RANGED1,#0,#59)‰MULU.W„#60,D1ŽConvertminutestoseconds*‰CLR.L…D2’Prepareforfollowingshortload*‰MOVE.B„SECS(A1),D2‰GetsecondsfromtimerŠCHECK_RANGED2,#0,#59‰ADD.L…D2,D1D1=totalseconds‰MULU.W„#1000,D1ŒD1=totalmsecs!‰ADD.L…D1,D0D0=grandtotalmsecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStoreitforexec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Preparetoformgregoriandate'‰MOVE.B„YEAR(A1),D0‰GetyearfromtimerŠCHECK_RANGED0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGED0,#1,#12‰LSL.W…#8,D0D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGED0,#1,#31 *I*‚Thetimeanddatelookreasonable,solet'sgoaheadandkeepthoseforG*‚ourown(thechipmustnothavelostpowersinceJ lasttime).‚Wecan'tI*‚tellforsurewhetherthechiplostpower,eventhoughthere'sabitinJ*‚thechipthatsaysso,becausethebughasalreadyreadtheinformation,*‚makingitunavailabletous.* ‰BSR.L…DATEGOŽConverttoordinal!‰MOVE.L„D0,DATEGivedatetoexec ŠBRA.S‚GO_TIMER *H*‚Ifwecomehere,oneofthefieldsreadfromtheclockchipiswhacko.*‚Setsystemtimeanddayto0.*1RANGE_ERRMOVE.LTIME_LEFT,NSE†Timeofday<--0.ŠCLR.L‚MIDNIGHTŠMOVE.L#0,DATEŒDate<--0. **ˆNowstarttimerticking*KGO_TIMERMOVEƒTIMINTVA(PC),TIMINTV‚SavetimerinterruptintervalinSYSPAR.4‰MOVE.B#$A,REGA(A1)ˆSELECTPERIODICACTIVATIONRATE0‰MOVE.BREGC(A1),D0‰RESETANYPENDINGINTERRUPTS&‰MOVE.B#$46,REGB(A1)‡ENABLETHETIMER.‰ADD.L‚#6,A7REMOVE'BE'ANDBUSERRORADDRESS‰RTS˜BACKTOINIT*DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O******************************************************************************* ‰SECTIONƒ8**ˆNON-LEAPDAYSBEFORETABLE¥*Ç=DATEDBNLDC.W0,31,59,90,120,151,181,212,243,273,304,334,365Œ*Ç*ˆLEAPDAYSBEFORETABLE©*ÇCTRL1…SET„%00<<5+CTRL1‡Cursorselection(weleavethisalone).CTRL1…SET„0<<7+CTRL1‰Reserved.  0************************************************,*ƒValuetoputinVMEC1controlregister2ƒ*0************************************************ 0CTRL2…SET„0<<0MaskforMMUinterrupt(disable).;CTRL2…SET„0<<1+CTRL2‰Maskfor'transmitterempty'interrupt$*§fromthe2661connectingustothe*§keyboard(disable).>CTRL2…SET„0<<2+CTRL2‰Maskfor'busclear'interrupt(disable).CTRL5…SET„1<<4+CTRL5‰Maskforlocalresourcetimeout(enable).6CTRL5…SET„1<<5+CTRL5‰MaskforVMEbustimeout(enable).;CTRL5…SET„0<<6+CTRL5‰Addressmodifieralteration(disable).=CTRL5…SET„1<<7+CTRL5‰Boardfailcontrol(we'reOK).‚Whenthis'*§bitis0,SYSFAIL*isassertedonthe *§VMEbus.  0************K ************************************,*ƒValuetoputinVMEC1controlregister6ƒ*0************************************************ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************G*********************************************************************** ‰ENDééééL éé**ˆVMES10.IFDRVR.CI*,* Conditional file for VMES10 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VMES10.CNFGDRVR.CI and VMES10.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…DRVS10.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCé zX**ˆVMES10.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME/10.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)@ONBD$HIƒ=$5FFFF‡Highvalueforon-boardram(asseenbydriver)CRAM$SQ„=$D00000†Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice)L  FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F1A081†Addressoftimer.2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt ƒ6 Œ2 ”- œ*œ6‘SYSFAILinterrupt.* ?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts. FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** %KBDOVRDƒ=0ŒKeyboardoverrideoption:)*˜0=keyswitchonfrontpanelisenabled.*˜1=keyswitchoverride-ifkeyisinlocked)*œpositionthekeyboardisstillenabled.0*˜NOTE:‚ThisparameterisonlyvalidwithVME/10!*Ÿunitswiththepanelkeyswitch. 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$41ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$43ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$44ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$45ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=4ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=5ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=6ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=16‹Numberofmillisecondsbetweentimerinterrupts.7*˜(NotusedonVME/10.‚Itisincludedfordocumentation/*˜only.‚TheactualvalueusedfortheVME/10is*˜15.625msec.)?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartadM dress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.@MEMEND1ƒ=$2FF00‡Endingaddrforon-board‚memorymustbe=this.‚NotapplicableforaVME110EMEMEND3ƒ=$280000†Ceilingaddrforoff-boardmemory(mustbe* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VMES10.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconM figurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=1Œ#ofterminalsonVMES10serialports(TERM);max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="0"Š1stRWIN1iscontroller08ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=1Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="1"Š2ndRWIN1iscontroller18ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2 ¤) ­* µ. ½(BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=0Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="3"Š1stMVME315iscontroller38ƒNH315$1ƒ=0Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=0Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="4"Š2ndMVME315iscontroller48ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=0Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1I****NOTE:‚DonotuseVME316inthissystem,asI/Ochannelisalreadyon2****ˆtheCPUboard!‚See"&.DRV316.CI"fordetails. O*------------------------------------------------------------------------------ 4…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4Š=ARG\1,\2,\3,N…=/ENDIF=/ENDIFJ=/*‚SetArg5sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copyingO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all SIO driver files for sysgen=/@„\1:9998.COPYGEN.SIODRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CF ÉD Ò( ÚO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM04specificfilesforsysgen=/@„\1:9998.COPYGEN.VM04.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CO FO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM04.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!ééééééé4INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVM04.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVM04BOARD.†******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------C*†2/27/85ƒSJF„ChangedtimerinitializationtouseTIMINTVvaluefor+*—thenumberofmillisecondsbetweenticks.*…10/20/84ƒACC„Initialwriting.** * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthO etimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(Z8036).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.ŠXREF.SDATEDate. â4 ëR0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.+ŠXREF.SPTMADDRŒAddroftimerchip(Z8036). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  **‚Includedfiles:**‰&.UTILITY.MC*‰Z8036.Z8036.EQ*‰VM04.CTRLSTAT.EQ*‰M68020.CACR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEZ8036.Z8036.EQŠINCLUDEVM04.CTRLSTAT.EQŠINCLUDEM68020.CACR.EQŠLIST ‰SECTIONƒ8ŠPAGEO*v*****************************************************************************O**********************************************************************************É***/***…ROUTINE:‚INITMMU--INITIALIZETHEˆMMU.•******É***?***…FUNCTION:‚VerifiestheexistenceoftheˆMMUandsetsit…***H***‡upforusebyRMS68K.‚TheVM04'sMMUisnotcurrentlysupported.******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠOPT„BRS INITMMU: ŠRTS  ŠPAGE O**********************************************************************************ˆSTARTTIMER„(Z8036TIMER)**N*********************************************************************************ˆCounterModeSpecReg*CSC†SET‡$00‘Initialize/CSC†SET‡1<<7+CSCŒEnableContinuousSingleCycle***C1EN…SET‡$00‘Initializeit#C1EN…SET‡1<<6+C1EN‹EnableCounter1*)*ˆsetupcontrol/statusregforCounter1* C1SR…SET‡$001C1SR…SET‡0<<0+C1SR‹Thisisaread-onlystatusbit*¦showscountinprogress,C1SR…SET‡1<<1+C1SR‹Thisisawrite-onlybit,*¦triggerenabledééééé