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€B�IúA ú am zn ,gè4k6 -fÀ`Ög0ƒF3 gÁ` =fRŠa`  f@` NuBƒ:< &J $g�F3 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 æp�j&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/2R�Aÿþ/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€B�Iú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€³…J�jD�$&H@HAÀÁ<3 ÆÂ(ÂÂHBHDÄÄÔ�"HABAÒƒBBHBÑ‚VÂJ…jD�F…Ê�[à �†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€³ƒJ�jD�tÿ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Ú_`T�aÿ^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•Ê`8�D3 $k +g�J€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À`$_. "R�Aÿþ 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 ü ­Y�Nu4]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 º$OU�g m $ÙY�nú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Ž*�Start�of�PV01DRVH*<----------------------------------------------------------------------QUITéé éééééÅ=/*=/* VERSAPT.P050DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\P050DRVŽ*�Start�of�P050DRVH*<----------------------------------------------------------------------QUITéééééééÎ=/*=/* VERSAPT.P115DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\P115DRVŽ*�Start�of�P115DRVH*<----------------------------------------------------------------------QUIT ééééééé×=/*=/* VERSAPT.M300DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\M300DRVŽ*�Start�of�M300DRVH*<----------------------------------------------------------------------QUITééééééé à=/*=/* VERSAPT.M315DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\M315DRVŽ*�Start�of�M315DRVH*<----------------------------------------------------------------------QUITéééééééé=/*=/* VERSAPT.M320DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\M320DRVŽ*�Start�of�M320DRVH*<----------------------------------------------------------------------QUITééééé ééò=/*,=/* VERSAPT.M420DRV.CF - SASI driver patches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\M420DRVŽ*�Start�of�M420DRVH*<----------------------------------------------------------------------QUITééééééû=/*0=/* VERSAPT.M435DRV.CF - Mag Tape Driver Patches=/*=PATCH VERSADOS.SYG*>---------------------------------------------------------------------O�\M435DRVŽ*�Start�of�M435DRVG*<---------------------------------------------------------------------QUITéé éééé=/*=/*ƒVERSAPT.M600DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O�\M600DRVŽ*�Start�of�VME600�driverH*<----------------------------------------------------------------------QUITééééééé =/*=/*ƒVERSAPT.M605DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O�\M605DRVŽ*�Start�of�VME605�driverH*<----------------------------------------------------------------------QUITé  éééééé=/*=/*ƒVERSAPT.M610DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O�\M610DRVŽ*�Start�of�VME610�driverH*<----------------------------------------------------------------------QUITééééééé  =/*=/*ƒVERSAPT.M615DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O�\M615DRVŽ*�Start�of�VME615�driverH*<----------------------------------------------------------------------QUITééééééé(=/*=/*ƒVERSAPT.M625DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O�\M625DRVŽ*�Start�of�VME625�driverH*<----------------------------------------------------------------------QUITéééééé  é1=/*=/* VERSAPT.ACIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\ACIADRVŽ*�Start�of�ACIADRVH*<----------------------------------------------------------------------QUITééééééé:=/*,=/* VERSAPT.DARTDRV.CF - DART driver patches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------%O�\DARTSPRŽ*�Start�of�DART�supervisorH*>----------------------------------------------------------------------&O�\DARTDRVŽ*�Start�of�DART�subordinateH*<----------------------------------------------------------------------QUITééé  éééC =/*7=/*‚VERSAPT.EPCIDRV.CF�-�EPCI�driver�patches�for�VME101=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\EPCIDRVŽ*�Start�of�EPCIDRVH*<----------------------------------------------------------------------QUITééééééL=/*=/* VERSAPT.IPCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\IPCDRV�*�Start�of�IPCDRVM 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�*�Start�of�MFPDRVH*<----------------------------------------------------------------------QUITééééééé^=/*=/* VERSAPT.RADDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\RADDRV�*�Start�of�RADDRVH*<----------------------------------------------------------------------QUIT  ééééééég=/*=/* VERSAPT.PIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\PIADRV�*�Start�of�PIADRVH*<----------------------------------------------------------------------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Ž*�Start�of�RWINDRVH*<----------------------------------------------------------------------QUITééééééé}=/*9=/*‚VERSAPT.DRVS10.CF�-�TERMDRV�driver�patches�for�VME/10=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\TERMDRVŽ*�Start�of�TERMDRVH*<----------------------------------------------------------------------QUIT  éééééé†=/*=/* VERSAPT.VM22DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\VM22DRV�*�Start�of�VM22DRVH*<----------------------------------------------------------------------QUITééééééé�  =/*=/*†VERSAPT.EET.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\EETSTR�*�Start�of�EETH*<----------------------------------------------------------------------QUITééééééé˜=/*8=/* SYSTEM MUST BE RE-BOOTED FOR PATCHES TO TAKE EFFECT.=/*=ENDéééééé  é¡=/*=/*†VERSAPT.FHS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\FHSSTR�*�Start�of�FHSH*<----------------------------------------------------------------------QUITéééééééª=/*=/*†VERSAPT.FMS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\FMSSTR�*�Start�of�FMSH*<----------------------------------------------------------------------QUITéééé ééé³=/*=/*†VERSAPT.IOS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\IOSSTR�*�Start�of�IOSH*<----------------------------------------------------------------------QUITééééééé¼=/*=/*†VERSAPT.LDR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\LDRSTR�*�Start�of�LDRH*<----------------------------------------------------------------------QUITéé éééééÅ=/*=/* VERSAPT.MPCCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\MPCCDRVŽ*�Start�of�MPCCDRVH*<----------------------------------------------------------------------QUITéééééééÎ=/*=/* VERSAPT.MPSCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\MPSCDRVŽ*�Start�of�MPSCDRVH*<----------------------------------------------------------------------QUIT ééééééé×=/*=/* VERSAPT.MPSCSPR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\MPSCSPRŽ*�Start�of�MPSCSPRH*<----------------------------------------------------------------------QUITééééééé à=/*=/*ƒVERSAPT.MPSCSUP.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\MPSCSUPŽ*�Start�of�MPSCSUPH*<----------------------------------------------------------------------QUITéééééééé=/*=/*†VERSAPT.TNTDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\TNTSTR�*�Start�of�TNTH*<----------------------------------------------------------------------QUITééééé ééò=/*=/* VERSAPT.RIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\RIODRV�*�Start�of�RIODRVH*<----------------------------------------------------------------------QUITéééééééû=/*=/*†VERSAPT.IOI.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\IOCSTR�*�Start�of�IOCH*<----------------------------------------------------------------------QUITééé éééé=/*=/*†VERSAPT.SYSINIT.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\INTSTR�*�Start�of�INTH*<----------------------------------------------------------------------QUITééééééé =/*=/* VERSAPT.SIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O�\SIODRVŽ*�Start�of�SIODRVH*<----------------------------------------------------------------------QUITé éééééé=/*=/*†VERSAPT.VM01.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------M $E02C.M $E0400›*�Patch�for�VM01�VERSADOS027800.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.CF�file�is�built�dynamically�atC=/* sysgen time depending on the configuration of your system whichC=/*�is�defined�by�.CNFGDRVR.CI�and�&.CNFGTASK.CI�files.‚TheE=/* other VERSAPT.*.CF files are copy appended to this file to createB=/*�the�final�.VERSAPT.CF�file.‚The�SUBS�command�is�run�onE=/* .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/$=/*—END�files�for�OSLIST�and�VERSAPT'=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-=/*—URATION�TASKS%=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 =/*–driver�for�the�VME050�board.$=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=/*–local�printer�driver$=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=/*•(GPIB�driver)$=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=/*–(Only�here�to�define�I/O�channel.‚There's�no�driver.)$=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=/*–(SASI�driver)"=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=/*–(Mag�tape�driver)$=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=/*–local�terminal�driver$=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=/*–terminal�driver$=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 =/*–drivers�and�driver�libraries#=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=/*–(Serial�port�driver:�used�on�CPU�and�VME400�boards)$=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,�CPU�boards,�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=/*—(Remote�Winchester�Driver)$=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=/*•terminal�driver#=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=/*–(Disk�driver)$=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>=/*‘the�user's�account�number�so�each�user�has�their�own�copy.=/*F=/* NOTE: The following equate files are board/system specific and are-=/*‡copied�by�the�"COPYGEN.<system>.CF"�file.=/*1=/*Š\1:9995..BOARD.EQ‰\2:\3;\4„for�VME120,�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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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=/*’for�any/all�drivers#=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=/*•(system�will�pick�which�MMU/NOMMU�files�to�use)$=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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%=/*‚SYSPAR�file:‹Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=COPY�\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4Cééé ééÒ=/*H=/* COPYGEN.VME12X.CF - Chain file to copy all VME120/128 specific files=/*•for�sysgen$=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%=/*‚SYSPAR�file:‹Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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%=/*‚SYSPAR�file:‹Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=COPY�\1:9999.C8OC.SYSPAR.RO‹\2:\3;\4Céééééÿ  =/*H=/* COPYGEN.PV01DRV.CF - Chain file to copy all files for sysgen of VM01=/*–local�printer�driver$=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=/*™Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*(=COPY�\1:9999.C20O24.SYSPAR.RO‰\2:\3;\4Cééééé=/*D=/* COPYGEN.VME122.CF - Chain file to copy all VME122 specific files=/*•for�sysgen)=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%=/*‚SYSPAR�file:‹Name�format�is:‚CxOy%=/*›where:‚Cx�=�crashsave…address�x00"=/*£Oy�=�syspar�offset�address�y00=/*&=COPY�\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4Céé! ééé#'EXORMACSCOPYSGENCF88vaaINITIO1 AGQQ©aaCNFGDRVRCIjj�aaSYSTEM CI‹‹saaIFDRVR CI¤¤,aa=/*>=/*‚EXORMACS.COPYSGEN.CF‚-‚Chain�file�to�copy�files�for�SYSGEN=/*)=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�EXORMACS=USE :.EXORMACS=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*==/*ƒInvoke�as:„=EXORMACS.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference=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=/*‚Set�Arg5�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*----------------------------------------------------------------------------/=/*‚Copy�all�EXORMACS�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*4=/*†EXORMACS.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé" é**ˆEXORMACS.INITIO1.AG**‚Included�files�are:*‰M6840.M6840.EQŠINCLUDE�M6840.M6840.EQ ŠSECTION�8ŠPAGE*J*‚This�code�is�needed�to�satisfy�INIT,�which�is�board-independent�and�must/*‚call�upon�us�to�do�the�board-dependent�stuff.**„Initialize�the�MMU.* ŠXDEFƒINITMMUŠXREF.S�MMUHERE INITMMU: 7ŠMOVEM.L�D0-D7/A0,-(SP)„Save�registers�we'll�blow�away. *ŠLEA„$FE2000,A0‰A0�<--�address�of�the�MMU. ,ŠIFNEƒ\MMU�If�we're�supposed�to�use�the�MMU, ;ŠMOVE.L�A0,MMUHERE‰.�Save�the�address�of�the�MMU�in�SYSPAR. ŠENDC 4ŠIFEQƒ\MMU�Else�(we're�not�supposed�to�use�the�MMU), DŠMOVEM.L�MMUFAKE(PC),D0-D7�.�Give�the�MMU�some�stuff�which�will�make*ŠMOVEM.L�D0-D7,(A0)ˆ.�it�look�transparent. ŠENDC 3ŠMOVEM.L�(SP)+,D0-D7/A0„Restore�registers�and�exit.ŠRTS  DMMUFAKEƒDC.Lƒ$0000FFFF,$00000001‚Stuff�to�put�in�MMU�to�make�it�lookŠDC.Lƒ0,0,0,0,0,0ˆtransparent. **„Start�the�timer�running.*+ŠXREF.S�CRASHSAV‹These�are�found�in�SYSPAR.ŠXREF.S�EXCSTACKŠXREF.S�PTMADDRŠXREF.S�TIMESLICŠXREF.S�TIMINTVŠXREF.S�TIMINTV4 &ŠXREFƒCLOCKFRQ‹These�are�found�in�IND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntry�point�to�START�TIMER�routine.*1TIMERSTƒEQU„*’Entry�point�to�START�TIMER�routine.;ŠMOVE.L�TIMSLIC(PC),TIMESLIC�Set�the�sysgen�parameter�which'*¦dictates�the�#�of�timer�tics�per�time*¦slice'ŠMOVE.L�TIMERA(PC),A1†GET�TIMER�ADDRESS#ŠMOVE.L�A1,PTMADDR‰SAVE�IT�FOR�EXEC$ŠBEQ.S‚TIMER_EXIT‰BRANCH�IF�NO�TIMER)ŠPEA„TIMERBE(PC)ˆWHERE�TO�GO�ON�BUS�ERROR$ŠMOVE.W�#'BE',-(A7)ˆSET�BUS�ERR�FLAG3ŠMOVE.B�#$01,CR2SR(A1)…ALLOW�WRITE�TO�CONTROL�REG�1&ŠMOVE.B�#$01,CR13(A1)†ALL�TIMERS�RESET$ŠMOVE.L�#CLOCKFRQ,D0‡CLOCK�FREQUENCYŠDIVUƒ#4,D0ŽDIVIDE�BY�4#ŠSUB.W‚#1,D0ŽCLOCK�INTERRUPTS�AT�-1*ŠMOVE.W�TIMINTVA(PC),D1„INTERRUPT�INTERVAL ŠMOVE.W�D1,TIMINTV‰SAVE�FOR�EXECŠMULUƒ#4,D1ŽMULTIPLY�BY�4*ŠSUB.W‚#1,D1ŽSUBTRACT�1�-�TIMER�GOES�TO�-1!ŠMOVE.W�D1,TIMINTV4ˆSAVE�FOR�EXECŠLSL.W‚#8,D1ŽPUT�IN�HIGH�BYTEIPR;Z)ŠADD.W‚D1,D0ŽVALUE�FOR�TIMER�3�(2�HALVES)ŠMOVEP‚D0,MSBT3(A1)‡SET�TIMER�34ŠMOVE.W�#256,D0ŒVALUE�FOR�TIMER�1�(OVERFLOW�COUNTER)ŠMOVEP‚D0,MSBT1(A1)‡SET�TIMER�18ŠMOVE.B�#$00,CR2SR(A1)…ALLOW�WRITE�TO�CONTROL�REGISTER�3;ŠMOVE.B�#$C6,CR13(A1)†T3--INTERNAL�CLOCK,INTERRUPT�ENABLED,*£OUTPUT�ENABLED,�8-BIT�MODE8ŠMOVE.B�#$01,CR2SR(A1)…ALLOW�WRITE�TO�CONTROL�REGISTER�1;ŠMOVE.B�#$00,CR13(A1)†T1--EXTERNAL�CLOCK,�ENABLE�ALL�TIMERS/ŠADDQ.L�#6,SPŽEverything�went�OK;�just�get�that'*¦bus�error�junk�off�the�stack�and�exitŠBRA.S‚TIMER_EXIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---=*�EXORMACS.SYSTEM.CIƒadd�processor�board/system�dependencies,(*–including�local�terminals�and�printers6*�&.CNFGTASK.CIƒadd�O/S�task�configuration�for�ROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------:NOLTERMƒ=�2Œ#�of�terminals�using�ACIA�serial�ports;�max=�2IFGTˆ\NOLTERM-2ƒMSG†NOLTERM�must�be�<=�2ƒABORTENDC O*------------------------------------------------------------------------------1NOLPRT„=�1Œ#�of�local�(on-board)�printers;�max=�1 O*-------------------------------------------------# -----------------------------=NOVM20„=�1Œ#�of�VM20…FDC�(floppy�only�disk�controller�boards)*¦uses�IPC�driver*¦(see�"&.IPCDRV.CI")G*�NOTE:‚If�you�increase�the�number�of�floppies�on�either�the�1st�or�2nd@*ˆcontroller�boards,�you�may�need�to�edit�&.IPCDRV.CI�and�changeB*ˆthe�Z�value�from�81�to�85�so�that�the�file�IOC.VM20DRV.AG�can�be;*ˆassembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM20DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM20b,k%s%{7ƒNFV20$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�FDC;�max=�47ƒNFV20$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�FDC;�max=�4 HƒVM200$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�FDC�board;�drive�0HƒVM201$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�FDC�board;�drive�1HƒVM202$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�FDC�board;�drive�2HƒVM203$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�FDC�board;�drive�3 HƒVM200$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�FDC�board;�drive�0HƒVM201$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�FDC�board;�drive�1HƒVM202$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�FDC�board;�drive�2HƒVM203$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�FDC�board;�drive�3ENDC O*------------------------------------------------------------------------------;NOVM21„=�1Œ#�of�VM21…UDC�(universal�disk�controller�boards)%*¦floppy�&�hard�disks;�two�board�set;*¦uses�IPC�driver*¦(see�"&.IPCDRV.CI")I*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies�on�either�the@*ˆ1st�or�2nd�controller�boards,�you�may�need�to�edit�&.IPCDRV.CIF*ˆand�change�the�Z�value�from�81�to�92�so�that�the�file�IOC.VM21DRV.AGB*ˆcan�be�assembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM21DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=�2Œ#�of�hardƒdisk�drives�on�1st�UDC;�max=�47ƒNFV21$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�UDC;�max=�45ƒNHV21$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�UDC;�max=�47ƒNFV21$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�UDC;�max=�4 FƒVM210$1„=�"'FXCMD80'"‚Type�of�1st�hardƒdisk�on�1st�UDC�board;�drive�0FƒVM211$1„=�"'RMCMD16'"‚Type�of�2nd�hardƒdisk�on�1st�UDC�board;�drive�1FƒVM212$1„=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�UDC�board;�drive�2FƒVM213$1„=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�UDC�board;�drive�3 HƒVM214$1„=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�UDC�board;�drive�4HƒVM215$1„=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�UDC�board;�drive�5HƒVM216$1„=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�UDC�board;�drive�6HƒVM217$1„=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�UDC�board;�drive�7 FƒVM210$2„=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�2nd�UDC�board;�drive�0FƒVM211$2„=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�2nd�UDC�board;�drive�1FƒVM212$2„=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�2nd�UDC�board;�drive�2FƒVM213$2„=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�2nd�UDC�board;�drive�3 HƒVM214$2„=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�UDC�board;�drive�4HƒVM215$2„=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�UDC�board;�drive�5HƒVM216$2„=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�UDC�board;�drive�6HƒVM217$2„=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�UDC�board;�drive�7ENDC O*------------------------------------------------------------------------------8NOVM22„=�0Œ#�of�VM22…SMD�disk�controllers�boards�(single*¦board)J*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies,�you�will�needC*ˆto�edit�&.VM22DRV.CI�and�change�the�Z�value�from�81�to�92�so�thatF*ˆthe�file�IOC.VM22DRV.AG�can�be�assembled�during�sysgen.‚The�81�valueF*ˆis�so�that�the�file�IOC.VM22DRV.AG�can�be�assembled�in�a�384K�system*ˆduring�sysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=�0Œ#�of�hardƒdisk�drives�on�VM22;�max=�84ƒNFV$ 22$1ƒ=�0Œ#�of�floppy�disk�drives�on�VM22;�max=�4 BƒVM220$1ƒ=�"'FXCMD80'"‚Type�of�fixed…on�1st�disk�on�1st�VM22�boardFƒVM221$1ƒ=�"'RMCMD16'"‚Type�of�removable�on�1st�disk�on�1st�VM22�boardBƒVM222$1ƒ=�"'FXCMD80'"‚Type�of�fixed…on�2nd�disk�on�1st�VM22�boardFƒVM223$1ƒ=�"'RMCMD16'"‚Type�of�removable�on�2nd�disk�on�1st�VM22�boardBƒVM224$1ƒ=�"'FXCMD80'"‚Type�of�fixed…on�3rd�disk�on�1st�VM22�boardFƒVM225$1ƒ=�"'RMCMD16'"‚Type�of�removable�on�3rd�disk�on�1st�VM22�boardBƒVM226$1ƒ=�"'FXCMD80'"‚Type�of�fixed…on�4th�disk�on�1st�VM22�boardFƒVM227$1ƒ=�"'RMCMD16'"‚Type�of�removable�on�4th�disk�on�1st�VM22�board @ƒVM228$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�VM22�board@ƒVM229$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�VM22�board@ƒVM22A$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�VM22�board@ƒVM22B$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�VM22�boardENDC O*------------------------------------------------------------------------------7NOVM30„=�1Œ#�of�VM30…MCCM‚(multi-channel�communications *¦boards)(*¦uses�IPC�driver;�has�1�printer�port/bd*¦(see�"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=�4Œ#�of�terminals�on�1st�MCCM;�max=�4.ƒNPV30$1ƒ=�1Œ#�of�printers‚on�1st�MCCM;�max=�1/ƒNTV30$2ƒ=�0Œ#�of�terminals�on�2nd�MCCM;�max=�4.ƒNPV30$2ƒ=�0Œ#�of�printers‚on�2nd�MCCM;�max=�1/ƒNTV30$3ƒ=�0Œ#�of�terminals�on�3rd�MCCM;�max=�4.ƒNPV30$3ƒ=�0Œ#�of�printers‚on�3rd�MCCM;�max=�1/ƒNTV30$4ƒ=�0Œ#�of�terminals�on�4th�MCCM;�max=�4.ƒNPV30$4ƒ=�0Œ#�of�printers‚on�4th�MCCM;�max=�1ENDC O*------------------------------------------------------------------------------8NOTNT…=�0Œ#�of�TNT†Transparent�Network�Terminals;�max=�5 O*------------------------------------------------------------------------------éééé**ˆEXORMACS.SYSTEM.CI*L****************************************************************************B*‚This�file�contains�all�board/system�dependencies�for�EXORMACS.Š*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low�value�for�on-board�ram�(as�seen�by�driver)RAM$SQ„=�$0‹Difference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low�value�for�on-board�ram�(as�seen�by�device)JOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�valu�for�on-board�ram�(as�seen�by�device) FMSG‰$ ******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$FEE040†Address�of�timer.5CLOCKFRQ‚=�1000‰Number�of�clock�ticks�per�millisecond'PANEL…=�$FE0000†Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interruptƒ6Œ.”*œ6‘SYSFAIL�interrupt.*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** :&VECTNOƒ=�$FFŠStarting�Vector�Number�used�by�IOC.IPCDRV.AG8LTDA$01ƒ=�$FEE011†EXORMACS�local�terminal�port�A�address8LTDA$02ƒ=�$FEE015†EXORMACS�local�terminal�port�B�address0LPDA$01ƒ=�$FEE009†EXORMACS�local�printer�address 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space&DEVADDƒ=�\SIOBASE.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.AMEMEND1ƒ=�$200000†Ending�addr�for�on-board‚memory�must�be�<�this.4MEMEND2ƒ=�$0‹Starting‚addr�for�off-board�memory�must *˜be�>=�this.1*˜Note:�For�VM11-2(512k)�RAM�board�set�MEMEND2�to#*ž$40000.�Jumper�board�accordingly.@MEMEND3ƒ=�$0‹Ceiling�addr�for�off-board�memory�(must�be�<�this).:WHERLOAD‚=�0ŒMemory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.=CACHEF„=�0ŒNot�used�for�the�EXORmacs�(needed�by�&.INITDAT.AG)*„NOTE:‚"CN00"�thru�"CN09"�reserved�for�non�VM30�(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"�reserved�for�these�each�MCCM�board,+ƒ*‹where�"n"�is�the�board�number�(1,2,...).7ƒ*‹"PRn�"�is�assigned�sequentially�for�each�MCCM�board.ƒ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‚-‚Chain�file�to�copy�files�for�SYSGEN=/*%=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�VM01 =USE :.VM01=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*9=/*ƒInvoke�as:„=VM01.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference=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=/*‚Set�Arg5�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*----------------------------------------------------------------------------+=/*‚Copy�all�VM01�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM01.COPYSGEN.CF‚completed.ŒHave�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!ééééé*ˆINCLUDE�M6840.M6840.EQ‰INCLUDE�M6840.M6840.EQ ‰SECTIONƒ8‰PAGE*J*‚This�code�is�needed�to�satisfy�INIT,�which�is�board-independent�and�must/*‚call�upon�us�to�do�the�board-dependent�stuff.**„Initialize�the�MMU.*5ŠXDEFƒINITMMUŒIt's�easy�for�us�to�initialize�the�MMU,$INITMMUƒRTS—since�we�don't�have�one. **„Start�the�timer�running.*+ŠXREF.S�CRASHSAV‹These�are�found�in�SYSPAR.ŠXREF.S�EXCSTACKŠXREF.S�PTMADDRŠXREF.S�TIMESLICŠXREF.S�TIMINTVŠXREF.S�TIMINTV4 &ŠXREFƒCLOCKFRQ‹These�are�found�in�IND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntry�point�to�START�TIMER�routine.TIMERSTDŠMOVE.L�TIMSLIC(PC),TIMESLIC‚Set�the�sysgen�parameter�which�dictates%*§the�#�of�timer�tics�per�time�slice.'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC$‰BEQ.S‚TIMER_EXITŠBRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG3‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REG�1&‰MOVE.B�#$01,CR13(A1)‡ALL�TIMERS�RESET$‰MOVE.L�#CLOCKFRQ,D0ˆCLOCK�FREQUENCY‰DIVUƒ#4,D0�DIVIDE�BY�4#‰SUB.W‚#1,D0�CLOCK�INTERRUPTS�AT�-1*‰MOVE.W�TIMINTVA(PC),D1…INTERRUPT�INTERVAL ‰MOVE.W�D1,TIMINTVŠSAVE�FOR�EXEC‰MULUƒ#4,D1�MULTIPLY�BY�4*‰SUB.W‚#1,D1�SUBTRACT�1�-�TIMER�GOES�TO�-1!‰MOVE.W�D1,TIMINTV4‰SAVE�FOR�EXEC‰LSL.W‚#8,D1�PUT�IN�HIGH�BYTE)‰ADD.W‚D1,D0�VALUE�FOR�TIMER�3�(2�HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSET�TIMER�34‰MOVE.W�#256,D0�VALUE�FOR�TIMER�1�(OVERFLOW�COUNTER)‰MOVEP‚D0,MSBT1(A1& )ˆSET�TIMER�18‰MOVE.B�#$00,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�3;‰MOVE.B�#$C6,CR13(A1)‡T3--INTERNAL�CLOCK,INTERRUPT�ENABLED,*£OUTPUT�ENABLED,�8-BIT�MODE8‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�1;‰MOVE.B�#$00,CR13(A1)‡T1--EXTERNAL�CLOCK,�ENABLE�ALL�TIMERS3‰ADDQ.L�#6,SP�Everything�went�OK;�just�get�that�bus4‰BRA.S‚TIMER_EXITŠerror�junk�off�the�stack�and�exit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USE�DUMP�POINTER�FOR�TIMER TIMER_EXIT�RTS–Return�to�INIT.ŠPAGEÂ@Ë=Ó ‰SECTIONƒ8.***********************************************(*†SUBROUTINE�USED�TO�INITIALIZE�IO�PORTS*;*ˆTHIS�ROUTINE�MUST�BE�MODIFIED�FOR�SYSTEM�BEING�INITIALZED* ‰XDEF„INITIO INITIOƒEQU…**/*…INITIALIZE�SERIAL�PORT�2�(FOR�VERSAMODULE�01)*ŒOR‚IPC�FOR�EXORMACS*+‰PEA„INITIOR(PC)„RETURN�IF�BUS�ERROR�OCCURS)‰MOVE.W�#'BE',-(A7)„SAVE�'BUS�ERROR'�FLAG$‰TST.B‚$F7001FˆREAD�COMMAND�REGISTER+‰MOVE.B�#$4E,$F7001DƒINIT�MODE�REG�1�PORT�2+‰MOVE.B�#$3E,$F7001DƒINIT�MODE�REG�2�PORT�25‰MOVE.B�#$36,$F7001FƒRESET�AND�ENABLE�RECEIVER�PORT�2$‰TST.B…$F70017ƒREAD�COMMAND�REGISTER+‰MOVE.B„#$4E,$F70015ˆINIT�MODE�REG�1�PORT�1+‰MOVE.B„#$3E,$F70015ˆINIT�MODE�REG�2�PORT�15‰MOVE.B„#$36,$F70017‡RESET�AND�ENABLE�RECEIVER�PORT�13‰MOVE.B�#$BF,$F70030ƒENABLE�VM�INTERRUPTS�FOR�PORT2)‰LEA„6(A7),A7‡REMOVE�BUS�ERROR�FROM�STACK INITIOR‚RTS‰PAGEE*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---9*�VM01.SYSTEM.CIƒadd�processor�board/system�dependencies,(*–including�local�terminals�and�printers6*�&.CNFGTASK.CIƒadd�O/S�task�configuration�for�ROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=�2Œ#�of�terminals�using�VM01�serial�ports�(EPCI);�max=�2 O*------------------------------------------------------------------------------1NOLPRT„=�1Œ#�of�local�(on-board)�printers;�max=�2 O*------------------------------------------------------------------------------8NOTNT…=�0Œ#�of�TNT†Transparent�Network�Terminals;�max=�5 O*------------------------------------------------------------------------------=NOVM20„=�1Œ#�of�VM20…FDC�(floppy�only�disk�controller�boards) *¦two�board�set;�uses�IPC�driver*¦(see�"&.IPCDRV.CI")G*�NOTE:‚If�you�increase�the�number�of�floppies�on�either�the�1st�or�2nd@*ˆcontroller�boards,�you�may�need�to�edit�&.IPCDRV.CI�and�changeB*ˆthe�Z�value�from�81�to�85�so�that�the�file�IOC.VM20DRV.AG�can�be;*ˆassembled�during�sysgen.‚The�81�value�is�so�that�the�fileÛ)ä'ì&ôA*ˆIOC.VM20DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�FDC;�max=�47ƒNFV20$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�FDC;�max=�4 ?ƒVM200$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�FDC�board?ƒVM201$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�FDC�board?ƒVM202$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�FDC�board?ƒVM203$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�FDC�board ?ƒVM200$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�FDC�board?ƒVM201$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�FDC�board?ƒVM202$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�FDC�board?ƒVM203$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�FDC�boardENDC O*------------------------------------------------------------------------------;NOVM21„=�0Œ#�of�VM21…UDC�(universal�disk�controller�boards)%*¦floppy�&�hard�disks;�two�board�set;*¦uses�IPC�driver*¦(see�"&.IPCDRV.CI")I*�NOTE:‚If�you�increase�the�number�of�hard�disk�or' �floppies�on�either�the@*ˆ1st�or�2nd�controller�boards,�you�may�need�to�edit�&.IPCDRV.CIF*ˆand�change�the�Z�value�from�81�to�92�so�that�the�file�IOC.VM21DRV.AGB*ˆcan�be�assembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM21DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=�0Œ#�of�hardƒdisk�drives�on�1st�UDC;�max=�47ƒNFV21$1ƒ=�0Œ#�of�floppy�disk�drives�on�1st�UDC;�max=�45ƒNHV21$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�UDC;�max=�47ƒNFV21$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�UDC;�max=�4 FƒVM210$1ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�1st�UDC�board;�drive�0FƒVM211$1ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�1st�UDC�board;�drive�1FƒVM212$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�UDC�board;�drive�2FƒVM213$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�UDC�board;�drive�3 HƒVM214$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�UDC�board;�drive�4HƒVM215$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�UDC�board;�drive�5HƒVM216$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�UDC�board;�drive�6HƒVM217$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�UDC�board;�drive�7 FƒVM210$2ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�2nd�UDC�board;�drive�0FƒVM211$2ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�2nd�UDC�board;�drive�1FƒVM212$2ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�2nd�UDC�board;�drive�2FƒVM213$2ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�2nd�UDC�board;�drive�3 HƒVM214$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�UDC�board;�drive�4HƒVM215$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�UDC�board;�drive�5HƒVM216$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�UDC�board;�drive�6HƒVM217$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�UDC�board;�drive�7ENDC O*------------------------------------------------------------------------------8NOVM22„=�0Œ#�of�VM22…SMD�disk�controllers�boards�(single*˜board)J*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies,�you�will�needC*ˆto�edit�&.VM22DRV.CI�and�change�the�Z�value�from�81�to�92�so�thatF*ˆthe�file�IOC.VM22DRV.AG�can�be�assembled�during�sysgen.‚The�81�valueF*ˆis�so�that�the�file�IOC.VM22DRV.AG�can�be�assembled�in�a�384K�system*ˆduring�sysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=�0Œ#�of�hardƒdisk�drives�on�VM22;�max=�84ƒNFV22$1ƒ=�0Œ#�of�floppy�disk�drives�on�VM22;�max=�4 >ƒVM220$1ƒ=�"'FXCMD80'"‚Type�of�1st�hardƒdisk�on�1st�VM22�board>ƒVM221$1ƒ=�"'RMCMD16'"‚Type�of�2nd�hardƒdisk�on�1st�VM22�board>ƒVM222$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�VM22�board>ƒVM223$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�VM22�board>ƒVM224$1ƒ=�"'FXCMD80'"‚Type�of�5th�hardƒdisk�on�1st�VM22�board>ƒVM225$1ƒ=�"'RMCMD16'"‚Type�of�6th�hardƒdisk�on�1st�VM22�board>ƒVM226$1ƒ=�"'FXCMD80'"‚Type�of�7th�hardƒdisk�on�1st�VM22�board>ƒVM227$1ƒ=�"'RMCMD16'"‚Type�of�8th�hardƒdisk�on�1st�VM22�board @ƒVM228$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�VM22�board@ƒVM229$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�VM22�board@ƒVM22A$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�VM22�board@ƒVM22B$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�VM22�boardENDC O*------------------------------------------------------------------------------7NOVM30„=�0Œ#�of�VM30…MCCM‚(multi-channel�communications *˜boards)(*¤uses�IPC�driver;�has�1�printer�port/bd*¤(see�"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=�0Œ#�of�terminals�on�1st�MCCM;�max=�4.ƒNPV30$1ƒ=�0Œ#�of�printers‚on�1st�MCCM;�max=�1/ƒNTV30$2ƒ=�0Œ#�of�terminals�on�2nd�MCCM;�max=�4.ƒNPV30$2ƒ=�0Œ#�of�printers‚on�2nd�MCCM;�max=�1/ƒNTV30$3ƒ=�0Œ#�of�terminals�on�3rd�MCCM;�max=�4.ƒNPV30$3ƒ=�0Œ#�of�printers‚on�3rd�MCCM;�max=�1/ƒNTV30$4ƒ=�0Œ#�of�terminals�on�4th�MCCM;�max=�4.ƒNPV30$4ƒ=�0Œ#�of�printers‚on�4th�MCCM;�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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„*******************************************************************>*„NOTE:‚"CN00"�thru�"CN09"�reserved�for�non�VM30�(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"�reserved�for�these�each�MCCM�board,+ƒ*‹where�"n"�is�the�board�number�(1,2,...).7ƒ*‹"PRn�"�is�assigned�sequentially�for�each�MCCM�board.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDCéééü)**ˆVM01.SYSTEM.CI*L****************************************************************************>*‚This�file�contains�all�board/system�dependencies�for�VM01.Ž*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�proces( sor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low�value�for�on-board�ram�(as�seen�by�driver)RAM$SQ„=�$0‹Difference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low�value�for�on-board�ram�(as�seen�by�device)JOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�valu�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$F70000†Address�of�timer.5CLOCKFRQ‚=�0800‰Number�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt*œ6‘SYSFAIL�interrupt.7,*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** <&VECTNOƒ=�$FFŠStarting�Vector�Number‚(used�by�IOC.IPCDRV.AG)4LTDA$01ƒ=�$F70011†VM01�local�terminal�port�A�address4LTDA$02ƒ=�$F70019†VM01�local�terminal�port�B�address3LPDA$01ƒ=�$F70020†VM01�local�printer�port�A�address3LPDA$02ƒ=�$F70022†VM01�local�printer�port�B�address 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space&DEVADDƒ=�\SIOBASE.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.@MEMEND1ƒ=�$20000‡Ending�addr�for�on-board‚memory�must�be�<�this.8MEMEND2ƒ=�$20000‡Starting‚addr�for�off-board�memory�must *˜be�>=�this.EMEMEND3ƒ=�$200000†Ceiling�addr�for�off-board�memory�(must�be�<�this).?WHERLOAD‚=�$10200‡Memory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.-*˜WHERLOAD�=�$10200‡For�64K�byte�on-board�RAM)*˜WHERLOAD�=�$0‹For�32K�byte�on-board�RAM8CACHEF„=�0ŒNot�used�on�the�VM01�(needed�by�&.INITDAT.AG)7NVME316ƒ=�0ŒNot�used�on�the�VM01�(needed�by�SYSINIT.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*)ASN‡=�0Œ#�of�address�spaces--not�used�but!*˜needed�to�satisfy�&.INITDAT.AG. IFNEˆ\WHERLOADEƒMSG‰****************************************************************BƒMSG‰*ƒCopy�VERSAPT.VM01.CF�file�to�VERSAPT.CF�file�to�apply�patch#ƒMSG‰*ƒto�VERSADOS.SY�after�sysgen.EƒMSG‰****************************************************************#ƒ=COPY‡VERSAPT.VM01.CF,VERSA) PT.CF;AENDC GMSG‰*******************************************************************=MSG‰*ƒCopy�C8OC.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰*******************************************************************"=COPY‡C8OC.SYSPAR.RO,&.SYSPAR.RO;Yéééé'VM02 COPYSGENCF**¤aaINITIO1 AGKKØaaIFDRVR CIllPaaSYSTEM CIuu¤aaCNFGDRVRCI––(Üaa=/*:=/*‚VM02.COPYSGEN.CF‚-‚Chain�file�to�copy�files�for�SYSGEN=/*%=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�VM02 =USE :.VM02=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*9=/*ƒInvoke�as:„=VM02.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference2=/*‰Arg5=�\5„include�PCDRV�driver�filesƒ(optional)=/*—PCDRV�=�include�them=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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*----------------------------------------------------------------------------+=/*‚Copy�all�VM02�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM02.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!ééééééé**ˆVM02.INITIO1.AG**ˆINCLUDE�M6840.M6840.EQ‰INCLUDE�M6840.M6840.EQ ‰SECTIONƒ8‰PAGE*(*ˆVECTOR�NUMBER�TABLE�FOR�VERSAMODULE-020*ˆTHERE�ARE�3�GROUPS�OF�VECTOR�NUMBERS�STORED�AT%*ˆTHE�HIGH�LOCATIONS�OF�ON�BOARD�RAM.5*ˆTHESE�VECTOR�NUMBERS�ARE�STORED�FROM�TOP�TO�BOTTOM.*ˆTABLE�STRUCTURE:*’DC.W�END�ADDRESS+2�OF�GROUP�X*’DC.W�7TH�VECTOR�NUMBER*’.*’.*’DC.W�1ST�VECTOR�NUMBER* VM02TBLƒEQUƒ* **‚Group�0�vectors.*:‰DC.W‚$1000‰Offset�to�2�+�last�of�group�0�vectors�on�VM02.#‰DC.W�\KILVECT‡IRQ�7-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�6-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�5-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�4-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�3-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�2-KILLER�ROUTINE#‰DC.W�\KILVECT‡IRQ�1-KILLER�ROUTINE **‚Group�1�vectors.*9‰DC.W�$FF0‹Offset�to�2�+�last�of�group�1�vectors�on�VM02.@‰DC.W�\KILVECT‡7�1/3:‚AC�FAIL�from�the�VERSAbus;�send�to�KILLER.+‰DC.W�\SERPTSˆ6�1/3:‚NEC�7201�serial�ports."‰DC.W�\PTMVECT‡5�1/3:‚M6840�timer.:‰DC.W�\BCLRV‰4�1/3:‚Bus�clear…from�VM02�bus�arbiter�logic.@‰DC.W�\KILVECT‡3�1/3:‚Bus�available�from�VM02�bus�arbiter�logic;*«send�to�KILLER.>‰DC.W�\KILVECT‡2�1/3:‚VERSAbus�interrupt�acknowledged;�send�to *«KILLER.-‰DC.W�\FAILŠ1�1/3:‚SYSFAIL�f* rom�the�VERSAbus. **‚Group�2�vectors.*8‰DC.W�$FE0‹Offset�to�2�+�last�of�group�2�vector�on�VM02."‰DC.W�\SWABRTˆIRQ�7-SOFTWARE�ABORT#‰DC.W�\KILVECT‡IRQ�6-KILLER�ROUTINE2‰DC.W�\IOCVEC4‡IRQ�5-I/O�CHANNEL�INTERRUPT�LEVEL�42‰DC.W�\IOCVEC3‡IRQ�4-I/O�CHANNEL�INTERRUPT�LEVEL�32‰DC.W�\IOCVEC2‡IRQ�3-I/O�CHANNEL�INTERRUPT�LEVEL�22‰DC.W�\IOCVEC1‡IRQ�2-I/O�CHANNEL�INTERRUPT�LEVEL�15‰DC.W�\KILVECT‡IRQ�1-KILLER�ROUTINE-UNASSIGNED�VECTOR‰PAGE*J*‚This�code�is�needed�to�satisfy�INIT,�which�is�board-independent�and�must/*‚call�upon�us�to�do�the�board-dependent�stuff.**„Initialize�the�MMU.*5ŠXDEFƒINITMMUŒIt's�easy�for�us�to�initialize�the�MMU,$INITMMUƒRTS—since�we�don't�have�one. **„Start�the�timer�running.*CGL:T3\%+ŠXREF.S�CRASHSAV‹These�are�found�in�SYSPAR.ŠXREF.S�EXCSTACKŠXREF.S�PTMADDRŠXREF.S�TIMESLICŠXREF.S�TIMINTVŠXREF.S�TIMINTV4 &ŠXREFƒCLOCKFRQ‹These�are�found�in�IND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntry�point�to�START�TIMER�routine.TIMERSTDŠMOVE.W�TIMSLIC(PC),TIMESLIC‚Set�the�sysgen�parameter�which�dictates%*§the�#�of�timer�tics�per�time�slice.'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC$‰BEQ.S‚TIMER_EXITŠBRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG3‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REG�1&‰MOVE.B�#$01,CR13(A1)‡ALL�TIMERS�RESET$‰MOVE.L�#CLOCKFRQ,D0ˆCLOCK�FREQUENCY‰DIVUƒ#4,D0�DIVIDE�BY�4#‰SUB.W‚#1,D0�CLOCK�INTERRUPTS�AT�-1*‰MOVE.W�TIMINTVA(PC),D1…INTERRUPT�INTERVAL ‰MOVE.W�D1,TIMINTVŠSAVE�FOR�EXEC‰MULUƒ#4,D1�MULTIPLY�BY�4*‰SUB.W‚#1,D1�SUBTRACT�1�-�TIMER�GOES�TO�-1!‰MOVE.W�D1,TIMINTV4‰SAVE�FOR�EXEC‰LSL.W‚#8,D1�PUT�IN�HIGH�BYTE)‰ADD.W‚D1,D0�VALUE�FOR�TIMER�3�(2�HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSET�TIMER�34‰MOVE.W�#256,D0�VALUE�FOR�TIMER�1�(OVERFLOW�COUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSET�TIMER�18‰MOVE.B�#$00,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�3;‰MOVE.B�#$C6,CR13(A1)‡T3--INTERNAL�CLOCK,INTERRUPT�ENABLED,*£OUTPUT�ENABLED,�8-BIT�MODE8‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�1;‰MOVE.B�#$00,CR13(A1)‡T1--EXTERNAL�CLOCK,�ENABLE�ALL�TIMERS3‰ADDQ.L�#6,SP�Everything�went�OK;�just�get�that�bus4‰BRA.S‚TIMER_EXITŠerror�junk�off�the�stack�and�exit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USE�DUMP�POINTER�FOR�TIMER TIMER_EXIT�RTS–Return�to�INIT.ŠPAGE ‰XDEF„INITIO-‰XREF„CTRLREG…VERSAmodule-02�control�register ‰XREF„MEMTABL4‰XREF„DPRVAO†dual�ported�RAM�VERSAbus�address�offset ‰SECTIONƒ8.************************************************ƒValue�to�put�in�VM02�control�register.ƒ*.***********************************************(CTRL†SET„%000�VERSAbus�int�level�(none).;CTRL†SET„0<<3+CTRLŠVERSAbus�int�acknowledge�mask�(disable).CTRL†SET„1<<10+CTRL‰Write-protect�VM02�RAM�from�VERSAbus?�(no)2CTRL†SET„1<<11+CTRL‰I/O�channel�int�mask�(enable).@CTRL†SET„%0000<<12+CTRL…Address�modifiers�for�VERSAbus�accesses. INITIOƒEQU…**=*…INITIALIZE�VERSAMODULE-02�VECTOR�TABLE�IN�HIGH�ON-BOARD�RAM*)‰LEA„MEMTABL(PC),A1�START�OF�MEMORY�TABLE+‰MOVE.L�6(A1),D0‡END�ADDRESS�OF�PARTITION�0%‰ADD.L�#1,D0‹MAY�BE�XXFFF�TYPE�NUMBER#‰BCLR�#0,D0ŒFORCE�XX000�TYPE�NUMBER$‰SUB.L�#1,D0+ ‹FORCE�XXFFF�TYPE�NUMBER4‰AND.L�#$FFFFF000,D0ƒGET�OFFSET�TO�VM02�VECTOR�TABLE1‰LEA�VM02TBL(PC),A1„GET�VM02�IMAGE�OF�THE�VECTORS‰MOVE.L�#0,A2ŠCLEAR�FOR�USE‰MOVE.L�#3,D4ˆNUMBER�OF�GROUPS4INITIOL1�MOVE.W�(A1)+,A2…GET�OFFSET�TO�GROUP�ADDRESS‰ADD.L�D0,A2ŠACTUAL�ADDRESS%‰MOVE.L�#7,D3‰NUMBER�OF�ENTRIES/GROUP-INITIOL2�MOVE.W�(A1)+,-(A2)ƒSTORE�THE�VECTORS(‰SUB.L�#1,D3‹DECREMENT�NUMBER�OF�ENTRIES$‰BNE.S�INITIOL2‡BRANCH�TIL�MOVED�ALL'‰SUB.L�#1,D4ŠDECREMENT�NUMBER�OF�GROUPS+‰BNE.S�INITIOL1†BRANCH�IF�MORE�GROUPS�TO�DO‰MOVE.L�D0,A2‹GET�OFFSET)‰ADD.L�#$FF0,A2‡POINT�TO�CONTROL�REGISTER;ŠMOVE.L�A2,CTRLREG‰Save�addr�of�control�register�in�SYSPAR.9ŠMOVEƒ#CTRL,(A2)‰Set�control�register�the�way�we�want�it. *8*‚Set�dual�ported�RAM�VERSAbus�address�offset�in�SYSPAR.*1ŠMOVE.L�#\DPRVAO,DPRVAO„Put�the�offset�in�SYSPAR.  E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„*******************************************************************>*„NOTE:‚"CN00"�thru�"CN09"�reserved�for�non�VM30�(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"�reserved�for�these�each�MCCM�board,+ƒ*‹where�"n"�is�the�board�number�(1,2,...).7ƒ*‹"PRn�"�is�assigned�sequentially�for�each�MCCM�board.ƒ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*‚This�file�contains�all�board/system�dependencies�for�VM02�(VMC).ˆ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low�value�for�on-board�ram�(as�seen�by�driver)RAM$SQ„=�$0‹Difference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low�value�for�on-board�ram�(as�seen�by�device)JOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�valu�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$F70000†Address�of�timer.5CLOCKFRQ‚=�0800‰Number�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interruptm6v/~*†*œ6‘SYSFAIL�interrupt.*=HOGMODEƒ=�0ŒSpecifies�whether�or�not�you�want�the�VM02�to�hog2*˜the�VERSAbus�(which�allows�it�to�run�faster�when3*˜accessing�the�VERSAbus).‚This�may�ONLY�be�used�if3*˜there�are�no�other�cards�in�the�system�capable�of**˜becoming�bus�master!‚If�in�doubt,�use�0.*š0�=�don't�hog�the�bus.0*š1�=�hog�the�bus�(no�other�intelligent�boards).*?SYSFAILƒ=�0ŒDetermines�whether�or�not�the�operating�system�will5*˜be�interrupted�when�SYSFAIL�is�asserted�on�the�bus.2*˜Some�intel, ligent�boards�will�assert�SYSFAIL�when0*˜they�experience�a�failure�of�some�kind.‚If�you5*˜have�such�boards�in�the�system,�AND�THE�DRIVERS�FOR3*˜THESE�BOARDS�HAVE�SYSFAIL�HANDLERS,�then�you�will2*˜probably�want�SYSFAIL�interrupts�enabled.‚If�the4*˜appropriate�SYSFAIL�handlers�are�not�written,�then5*˜taking�a�SYSFAIL�interrupt�will�hang�up�the�system,0*˜so�you�would�want�SYSFAIL�interrupts�disabled.!*š0�=�disable�SYSFAIL�interrupts. *š1�=‚enable�SYSFAIL�interrupts.FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** :&VECTNOƒ=�$FFŠStarting�Vector�Number‚used�by�IOC.IPCDRV.AG4LTDA$01ƒ=�$F70015†VM02�local�terminal�port�A�address 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space&DEVADDƒ=�\SIOBASE****************************************************************‰Vector�numbers£**>**************************************************************-IOCVEC1ƒ=�$71ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$72ŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$73ŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$74ŠI/O�channel�interrupt�4�vector.*IOCLVL1ƒ=�2ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�3ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�4ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�5ŒI/O�channel�interrupt�4�level.1SERPTS„=�140ŠSerial�port�(7201)�interrupt�vector..PTMVECTƒ=�28‹Programmable�timer�vector�number..FAIL†=�$94ŠBoard�fail�interrupt�vector�number.)SWABRT„=�31‹Software�abort�vector�number.6KILVECTƒ=�142ŠVector�number�which�forces�system�crash..BCLRV…=�147ŠBus�clear�interrupt�vector�number. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.@MEMEND1ƒ=�$20000‡Ending�addr�for�on-board‚memory�must�be�<�this.8MEMEND2ƒ=�$20000‡Starting‚addr�for�off-board�memory�must *˜be�>=�this.EMEMEND3ƒ=�$200000†Ceiling�addr�for�off-board�memory�(must�be�<�this).:WHERLOAD‚=�0ŒMemory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.;DPRVAO„=�0ŒThe�VM02's�onboard�RAM�may�be�jumpered�to�appear.*˜at�a�variety�of�different�addresses�from�the0*˜VERSAbus,�but�it�always�appears�at�0�for�local/*˜accesses.‚Set�this�parameter�to�the�offset�at.*˜which�the�RAM�is�jumpered�to�appear�from�the *˜VERSAbus.8CACHEF„=�0ŒNot�used�on�the�VM02�(needed�by�&.INITDAT.AG)7NVME316ƒ=�0ŒNot�used�on�the�VM02�(needed�by�SYSINIT.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*)ASN‡=�0Œ#�of�address�spaces--n, ot�used�but!*˜needed�to�satisfy�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�C8OC.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡C8OC.SYSPAR.RO,&.SYSPAR.RO;Yéééé**ˆVM02.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------B* This file sets up the flags used by the "VM02.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---9*�VM02.SYSTEM.CIƒadd�processor�board/system�dependencies,(*–including�local�terminals�and�printers6*�&.CNFGTASK.CIƒadd�O/S�task�configuration�for�ROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=�2Œ#�of�terminals�using�VM02�serial�ports�(7201);�max=�2 O*------------------------------------------------------------------------------2NORWIN„=�0Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"2"Š1st�RWIN1�is�controller�28ƒNHRWIN$1‚=�0Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRWIN$1‚=�0Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2Ž*—*Ÿ$§-¯4·BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�o- n�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------8NOTNT…=�0Œ#�of�TNT†Transparent�Network�Terminals;�max=�5 O*------------------------------------------------------------------------------=NOVM20„=�1Œ#�of�VM20…FDC�(floppy�only�disk�controller�boards) *¦two�board�set;�uses�IPC�driver*¦(see�"&.IPCDRV.CI")G*�NOTE:‚If�you�increase�the�number�of�floppies�on�either�the�1st�or�2nd@*ˆcontroller�boards,�you�may�need�to�edit�&.IPCDRV.CI�and�changeB*ˆthe�Z�value�from�81�to�85�so�that�the�file�IOC.VM20DRV.AG�can�be;*ˆassembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM20DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�FDC;�max=�47ƒNFV20$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�FDC;�max=�4 ?ƒVM200$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�FDC�board?ƒVM201$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�FDC�board?ƒVM202$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�FDC�board?ƒVM203$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�FDC�board ?ƒVM200$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�FDC�board?ƒVM201$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�FDC�board?ƒVM202$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�FDC�board?ƒVM203$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�FDC�boardENDC O*------------------------------------------------------------------------------;NOVM21„=�1Œ#�of�VM21…UDC�(universal�disk�controller�boards)%*¦floppy�&�hard�disks;�two�board�set;*¦uses�IPC�driver*¦(see�"&.IPCDRV.CI")I*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies�on�either�the@*ˆ1st�or�2nd�controller�boards,�you�may�need�to�edit�&.IPCDRV.CIF*ˆand�change�the�Z�value�from�81�to�92�so�that�the�file�IOC.VM21DRV.AGB*ˆcan�be�assembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM21DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=�2Œ#�of�hardƒdisk�drives�on�1st�UDC;�max=�47ƒNFV21$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�UDC;�max=�45ƒNHV21$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�UDC;�max=�47ƒNFV21$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�UDC;�max=�4 FƒVM210$1ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�1st�UDC�board;�drive�0FƒVM211$1ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�1st�UDC�board;�drive�1FƒVM212$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�UDC�board;�drive�2FƒVM213$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�UDC�board;�drive�3 HƒVM214$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�UDC�board;�drive�4HƒVM215$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�UDC�board;�drive�5HƒVM216$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�UDC�board;�drive�6HƒVM217$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�UDC�board;�drive�7 FƒVM210$2ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�2nd�UDC�board;�drive�0FƒVM211$2ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�2nd�UDC�board;�drive�1FƒVM212$2ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�2nd�UDC�board;�drive�2FƒVM213$2ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�2nd�UDC�board;�drive�3 HƒVM214$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�UDC�board;�drive�4HƒVM215$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�UDC�board;�drive�5HƒVM216$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�UDC�board;�drive�6HƒVM217$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�UDC�board;�drive�7ENDC O*------------------------------------------------------------------------------8NOVM22„=�0Œ#�of�VM22…SMD�disk�controllers�boards�(single*˜board)J*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies,�you�will�needC*ˆto�edit�&.VM22DRV.CI�and�change�the�Z�value�from�81�to�92�so�thatF*ˆthe�file�IOC.VM22DRV.AG�can�be�assembled�during�sysgen.‚The�81�valueF*ˆis�so�that�the�file�IOC.VM22DRV.AG�can�be�assembled�in�a�384K�system*ˆduring�sysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=�0Œ#�of�hardƒdisk�drives�on�VM22;�max=�84ƒNFV22$1ƒ=�0Œ#�of�floppy�d- isk�drives�on�VM22;�max=�4 >ƒVM220$1ƒ=�"'FXCMD80'"‚Type�of�1st�hardƒdisk�on�1st�VM22�board>ƒVM221$1ƒ=�"'RMCMD16'"‚Type�of�2nd�hardƒdisk�on�1st�VM22�board>ƒVM222$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�VM22�board>ƒVM223$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�VM22�board>ƒVM224$1ƒ=�"'FXCMD80'"‚Type�of�5th�hardƒdisk�on�1st�VM22�board>ƒVM225$1ƒ=�"'RMCMD16'"‚Type�of�6th�hardƒdisk�on�1st�VM22�board>ƒVM226$1ƒ=�"'FXCMD80'"‚Type�of�7th�hardƒdisk�on�1st�VM22�board>ƒVM227$1ƒ=�"'RMCMD16'"‚Type�of�8th�hardƒdisk�on�1st�VM22�board @ƒVM228$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�VM22�board@ƒVM229$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�VM22�board@ƒVM22A$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�VM22�board@ƒVM22B$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�VM22�boardENDC O*------------------------------------------------------------------------------7NOVM30„=�0Œ#�of�VM30…MCCM‚(multi-channel�communications *˜boards)(*¤uses�IPC�driver;�has�1�printer�port/bd*¤(see�"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=�0Œ#�of�terminals�on�1st�MCCM;�max=�4.ƒNPV30$1ƒ=�0Œ#�of�printers‚on�1st�MCCM;�max=�1/ƒNTV30$2ƒ=�0Œ#�of�terminals�on�2nd�MCCM;�max=�4.ƒNPV30$2ƒ=�0Œ#�of�printers‚on�2nd�MCCM;�max=�1/ƒNTV30$3ƒ=�0Œ#�of�terminals�on�3rd�MCCM;�max=�4.ƒNPV30$3ƒ=�0Œ#�of�printers‚on�3rd�MCCM;�max=�1/ƒNTV30$4ƒ=�0Œ#�of�terminals�on�4th�MCCM;�max=�4.ƒNPV30$4ƒ=�0Œ#�of�printers‚on�4th�MCCM;�max=�1ENDC O*------------------------------------------------------------------------------5NVME400ƒ=�0Œ#�of�MVME400‚dual�7201�serial�port�boards IFGTˆ\NVME4003ƒNU400$1ƒ=�0Œ#�ports/users�on�VME400�#1;�max=�2/bd.3ƒNU400$2ƒ=�0Œ#�ports/users�on�VME400�#2;�max=�2/bd.ENDC O*------------------------------------------------------------------------------9NVME410ƒ=�1Œ#�of�MVME410‚dual�16-bit�parallel�port�boards IFGTˆ\NVME410,ƒNU410$1ƒ=�1Œ#�printers�on�VME410�#1;�max=�2,ƒNU410$2ƒ=�0Œ#�printers�on�VME410�#2;�max=�2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=�0Œ#�of�MVME435�mag�tape�controller�boards;�max=�2 IFGTˆ\NVME435;ƒN435$1„=�0Œ#�of�tape�drives�on�first‚MVME435�board;�max=�8<ƒN435$2„=�0Œ#�of�tape�drives�on�second�MVME435�board;�max=�8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=�0Œ#�of�MVME600‚analog�input‚controller�boards O*------------------------------------------------------------------------------8NVME605ƒ=�0Œ#�of�MVME605‚analog�output�controller�boards IFGTˆ\NVME6059ƒNU605…=�0ŒNumber�of�users�(total)�for�the�MVME605�boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=�0Œ#�of�MVME610…AC‚input‚controller�boards IFGT‡\NVME610GƒM610QSIZ‚=�128…Minimum�number�of�entries�in�Interrupt�Processing�QueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=�0Œ#�of�MVME615/616�AC‚output�controller�boards IFGTˆ\NVME6159ƒNU615…=�0ŒNumber�of�users�(total)�for�the�MVME615�boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=�0Œ#�of�MVME620…DC‚input‚controller�boards O*------------------------------------------------------------------------------4NVME625ƒ=�0Œ#�of�MVME625…DC‚output�controller�boards IFGTˆ\NVME6259ƒNU625…=�0ŒNumber�of�users�(total)�for�the�MVME625�boardsENDCO*------------------------------------------------------------------------------#NRAD†=�0Œ#�of�RAD†Remote�A/D�boards IFGTˆ\NRADƒNURAD…=�0Œ#�of�RAD�usersENDC O*------------------------------------------------------------------------------#NRIO†=�0Œ#�of�RIO†Remote�I/O�boards IFGTˆ\NRIO1ƒNRIOINTƒ=�0Œ#�of�interrupt�levels�per�I/O�moduleENDC O*------------------------------------------------------------------------------. ééééééé'VM03 COPYSGENCFËˤaaINITIO1 AGìì2™aaIFDRVR CI%%PaaSYSTEM CI..™aaCNFGDRVRCIOO(Üaa=/*:=/*‚VM03.COPYSGEN.CF‚-‚Chain�file�to�copy�files�for�SYSGEN=/*%=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�VM03 =USE :.VM03=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*9=/*ƒInvoke�as:„=VM03.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference2=/*‰Arg5=�\5„include�PCDRV�driver�filesƒ(optional)=/*—PCDRV�=�include�them=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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�. setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*----------------------------------------------------------------------------+=/*‚Copy�all�VM03�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM03.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!ééééééé4INITIO„IDNTƒ5,1�RMS68K�I/O�initializer�for�the�VM03.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VM03�BOARD.†******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢******É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O**********************************************************************/ *********O*^***************************************************************************** *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„Changed�MMU�initialization�to�look�at�\MMU*…10/13/83ƒSJF„Initial�writing.?*†1/10/84ƒMSL„Verify�that�UIP�(update-in-progress)�bit�is�reset&*—before�reading�real�time�clock�chip.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�the�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-*§specific�hardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLER�Routine�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.+ŠXREFƒTIMERA�Addr�of�timer�chip�(MC146818).4ŠXREFƒTIMINTVA‹#�of�milliseconds�between�timer�tics.4ŠXREFƒCLOCKFRQ‹Frequency�of�clock�(to�set�up�timer).*…SYSPAR�variables:ä2íPõHýFA 26ŠXREF.S�MMUHEREŒAddr�of�MMU;�0�if�we're�not�using�one.0ŠXREF.S�FRST451ŒAddr�of�first�MMU�in�the�system./ŠXREF.S�LAST451ŒAddr�of�last‚MMU�in�the�system.7ŠXREF.S�CURR451ŒPtr�to�MMU�LOADMMU�should�look�at�next.7ŠXREF.S�CURRSD�Current�segment�descriptor�#�in�the�MMU.7ŠXREF.S�DPRVAO�Dual-Ported�Ram�Versabus�Address�Offset.ŠXREF.S�DATE�Date.0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts..ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(MC146818).ŠXREF.S�TIME_LEFT ŠXREF.S�NSEŠXREF.S�MIDNIGHT *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH.  **‚Included�files:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ*ŠNOLISTŠINCLUDE�&.UTILITY.MCŠINCLUDE�M68451.M68451.EQŠINCLUDE�M146818.M146818.EQŠLIST‰PAGE ŠSECTION�8ŠOPT„BRSO*******************************************************************************2*ˆDATE�CONVERSIONS�FROM�ONE�BINARY�FORM�TO�ANOTHER*Ç6*ˆORDINAL�DATE�-->�DAY�NUMBER�WHERE�DAY�1�=�JAN�1�1980***ˆCALL *’BSR‡DATEGO*¦BINARY�GREGORIAN�-�YYYYMMDD*§TO*¦BINARY�ORDINALƒ-�DAY�NUMBER*ˆINPUT'*’D0�=�DATE�TO�BE�CONVERTED�--�YYYYMMDD**ˆOUTPUT#*’D0�=�CONVERTED�DATE‡--�DAY�NUMBER*O**********************************************************************************‰NON-LEAP�DAYS�BEFORE�TABLE*Ç‚,,F*‚Distance�is�S�for�short�branches,�L�for�long�branches,�or�nothing�if*‚the�default�will�do.6*‚The�byte�to�check�is�treated�as�an�unsigned�integer.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0�RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0�RANGE_ERRŠENDM  TIMERST:E‰MOVE.W�TIMSLIC(PC),TIMESLIC‚#�TIMER�INTERRUPTS�BEFORE�TASK�INTERRUPT'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC!‰BEQ.L‚TIMERBE�BRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG*4*ˆGet�system�time�and�date�from�battery�backed�timer* UIP_LOOP:.‰BTST†#7,REGA�Wait�for�UIP�bit�to�reset�before#‰BNE.S…UIP_LOOPŒreading�clock�chip. *‰CLR.L…D1’Prepare�for�following�short�load'‰MOVE.B„HRS(A1),D1ŠGet�hours�from�timerŠCHECK_RANGE.L�D1,#0,#230‰MOVE.L„#3600*1000,D2‡Addend�is�one�hour's�msecs+‰CLR.L…D0’Calculation�will�take�place�in�D0*‰BRA.S…CALCLOOPŒStart�the�calculation�loopCALCHRS)‰ADD.L…D2,D0�Add�one�hour's�msecs�to�timeCALCLOOP*‰DBRA†D1,CALCHRSŠLoop�until�hours�computed*‰CLR.W…D1’Prepare�for�following�short�load*‰MOVE.B„MINS(A1),D1‰Get�minutes�from�timerŠCHECK_RANGE�D1,#0,#59)‰MULU.W„#60,D1ŽConvert�minutes�to�seconds*‰CLR.L…D2’Prepare�for�following�short�load*‰MOVE.B„SECS(A1),D2‰Get�seconds�from�timerŠCHECK_RANGE�D2,#0,#59‰ADD.L…D2,D1�D1=total�seconds‰MULU.W„#1000,D1ŒD1=total�msecs!‰ADD.L…D1,D0�D0=grand�total�msecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStore�it�for�exec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Prepare�to�form�gregorian�date'‰MOVE.B„YEAR(A1),D0‰Get�year�from�timerŠCHECK_RANGE�D0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGE�D0,#1,#12‰LSL.W…#8,D0�D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGE�D0,#1,#31 *I*‚The�time�and�date�look�reasonable,�so�let's�go�ahead�and�keep�those�forG*‚our�own�(the�chi0 p�must�not�have�lost�power�since�last�time).‚We�can'tI*‚tell�for�sure�whether�the�chip�lost�power,�even�though�there's�a�bit�inJ*‚the�chip�that�says�so,�because�the�bug�has�already�read�the�information,*‚making�it�unavailable�to�us.* ‰BSR.L…DATEGOŽConvert�to�ordinal!‰MOVE.L„D0,DATE�Give�date�to�exec ŠBRA.S‚GO_TIMER *H*‚If�we�come�here,�one�of�the�fields�read�from�the�clock�chip�is�whacko.*‚Set�system�time�and�day�to�0.*1RANGE_ERR�MOVE.L�TIME_LEFT,NSE†Time�of�day�<--�0.ŠCLR.L‚MIDNIGHTŠMOVE.L�#0,DATEŒDate�<--�0. **ˆNow�start�timer�ticking*KGO_TIMER�MOVEƒTIMINTVA(PC),TIMINTV‚Save�timer�interrupt�interval�in�SYSPAR.4‰MOVE.B�#$A,REGA(A1)ˆSELECT�PERIODIC�ACTIVATION�RATE0‰MOVE.B�REGC(A1),D0‰RESET�ANY�PENDING�INTERRUPTS&‰MOVE.B�#$46,REGB(A1)‡ENABLE�THE�TIMER.‰ADD.L‚#6,A7�REMOVE�'BE'�AND�BUS�ERROR�ADDRESS‰RTS˜BACK�TO�INIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„*******************************************************************>*„NOTE:‚"CN00"�thru�"CN09"�reserved�for�non�VM30�(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"�reserved�for�these�each�MCCM�board,+ƒ*‹where�"n"�is�the�board�number�(1,2,...).7ƒ*‹"PRn�"�is�assigned�sequentially�for�each�MCCM�board.ƒ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****************************************************************************>*‚This�file�contains�all�board/system�dependencies�for�VM03.Ž*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�t1 he�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low�value�for�on-board�ram�(as�seen�by�driver)RAM$SQ„=�$0‹Difference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low�value�for�on-board�ram�(as�seen�by�device)JOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�valu�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$F80081†Address�of�timer.5CLOCKFRQ‚=�0800‰Number�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt*œ6‘SYSFAIL�interrupt.&7//7-?*=HOGMODEƒ=�0ŒSpecifies�whether�or�not�you�want�the�VM03�to�hog2*˜the�VERSAbus�(which�allows�it�to�run�faster�when3*˜accessing�the�VERSAbus).‚This�may�ONLY�be�used�if3*˜there�are�no�other�cards�in�the�system�capable�of**˜becoming�bus�master!‚If�in�doubt,�use�0.*š0�=�don't�hog�the�bus.0*š1�=�hog�the�bus�(no�other�intelligent�boards).*?SYSFAILƒ=�0ŒDetermines�whether�or�not�the�operating�system�will5*˜be�interrupted�when�SYSFAIL�is�asserted�on�the�bus.2*˜Some�intelligent�boards�will�assert�SYSFAIL�when0*˜they�experience�a�failure�of�some�kind.‚If�you5*˜have�such�boards�in�the�system,�AND�THE�DRIVERS�FOR3*˜THESE�BOARDS�HAVE�SYSFAIL�HANDLERS,�then�you�will2*˜probably�want�SYSFAIL�interrupts�enabled.‚If�the4*˜appropriate�SYSFAIL�handlers�are�not�written,�then5*˜taking�a�SYSFAIL�interrupt�will�hang�up�the�system,0*˜so�you�would�want�SYSFAIL�interrupts�disabled.!*š0�=�disable�SYSFAIL�interrupts. *š1�=‚enable�SYSFAIL�interrupts.*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** B&VECTNOƒ=�$FFŠStarting�Vector�Number‚@@@@@@@�used�by�IOC.DRVIPC.AG4LTDA$01ƒ=�$F80065†VM03�local�terminal�port�A�address 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space&DEVADDƒ=�\SIOBASE****************************************************************‰Vector�numbers£**>**********************************************************2 ****-IOCVEC1ƒ=�$49ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$4AŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$4BŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$4CŠI/O�channel�interrupt�4�vector.*IOCLVL1ƒ=�3ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�4ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�5ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�6ŒI/O�channel�interrupt�4�level. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.AMEMEND1ƒ=�$200000†Ending�addr�for�on-board‚memory�must�be�<�this.4MEMEND2ƒ=�$0‹Starting‚addr�for�off-board�memory�must *˜be�>=�this.@MEMEND3ƒ=�$0‹Ceiling�addr�for�off-board�memory�(must�be�<�this).:WHERLOAD‚=�0ŒMemory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.4NVME316ƒ=�0ŒNot�used�by�VM03�(needed�for�SYSINIT.CI)5CACHEF„=�0ŒNot�used�by�VM03�(needed�for�&.INITDAT.AG) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*+ASN‡=�127Š#�of�address�spaces--not�used�but!*˜needed�to�satisfy�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�CBOF.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡CBOF.SYSPAR.RO,&.SYSPAR.RO;Yéééééé**ˆVM03.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------B* This file sets up the flags used by the "VM03.IFDRVR.CI" file to'* conditionally include device dri2 vers.*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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---9*�VM03.SYSTEM.CIƒadd�processor�board/system�dependencies,(*–including�local�terminals�and�printers6*�&.CNFGTASK.CI„add�O/S�task�configuration�for�ROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=�2Œ#�of�terminals�using�VM03�(7201)�serial�ports;�max=�2 O*------------------------------------------------------------------------------2NORWIN„=�0Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"2"Š1st�RWIN1�is�controller�28ƒNHRWIN$1‚=�0Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRWIN$1‚=�0Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2G*P*X'`-h4pBƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------8NOTNT…=�0Œ#�of�TNT†Transparent�Network�Terminals;�max=�5 O*------------------------------------------------------------------------------=NOVM20„=�0Œ#�of�VM20…FDC�(floppy�only�disk�controller�boards) *¦two�board�set;�uses�IPC�driver*¦(see�"&.IPCDRV.CI")G*�NOTE:‚If�you�increase�the�number�of�floppies�on�either�the�1st�or�2nd@*ˆcontroller�boards,�you�may�need�to�edit�&.IPCDRV.CI�and�changeB*ˆthe�Z�value�from�81�to�85�so�that�the�file�IOC.VM20DRV.AG�can�be;*ˆassembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM20DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM207ƒNFV20$1ƒ=�0Œ#�of�floppy�disk�drives�on�1st�FDC;�max=�47ƒNFV20$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�FDC;�max=�4 ?ƒVM200$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�FDC�board?ƒVM201$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�FDC�board?ƒVM202$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�FDC�board?ƒVM203$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�FDC�board ?ƒVM200$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�FDC�board?ƒVM201$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�FDC�board?ƒVM202$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�FDC�board?ƒVM203$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�FDC�boardENDC O*------------------------------------------------------------------------------;NOVM21„=�1Œ#�of�VM21…UDC�(universal�disk�controller�boards)%*¦floppy�&�hard�disks;�two�board�set;*¦uses�IPC�driver*¦(see�"&.IPCDRV.CI")I*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies�on�either�the3 @*ˆ1st�or�2nd�controller�boards,�you�may�need�to�edit�&.IPCDRV.CIF*ˆand�change�the�Z�value�from�81�to�92�so�that�the�file�IOC.VM21DRV.AGB*ˆcan�be�assembled�during�sysgen.‚The�81�value�is�so�that�the�fileA*ˆIOC.VM21DRV.AG�can�be�assembled�in�a�384K�system�during�sysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=�2Œ#�of�hardƒdisk�drives�on�1st�UDC;�max=�47ƒNFV21$1ƒ=�2Œ#�of�floppy�disk�drives�on�1st�UDC;�max=�45ƒNHV21$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�UDC;�max=�47ƒNFV21$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�UDC;�max=�4 =ƒVM210$1ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�1st�UDC�board=ƒVM211$1ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�1st�UDC�board=ƒVM212$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�UDC�board=ƒVM213$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�UDC�board ?ƒVM214$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�UDC�board?ƒVM215$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�UDC�board?ƒVM216$1ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�1st�UDC�board?ƒVM217$1ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�1st�UDC�board =ƒVM210$2ƒ=�"'FXLRK25'"‚Type�of�1st�hardƒdisk�on�2nd�UDC�board=ƒVM211$2ƒ=�"'RMLRK25'"‚Type�of�2nd�hardƒdisk�on�2nd�UDC�board=ƒVM212$2ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�2nd�UDC�board=ƒVM213$2ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�2nd�UDC�board ?ƒVM214$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�UDC�board?ƒVM215$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�UDC�board?ƒVM216$2ƒ=�"'F8SDDSM'"‚Type�of�3rd�floppy�disk�on�2nd�UDC�board?ƒVM217$2ƒ=�"'F8SDDSM'"‚Type�of�4th�floppy�disk�on�2nd�UDC�boardENDC O*------------------------------------------------------------------------------8NOVM22„=�1Œ#�of�VM22…SMD�disk�controllers�boards�(single*¦board)J*�NOTE:‚If�you�increase�the�number�of�hard�disk�or�floppies,�you�will�needC*ˆto�edit�&.VM22DRV.CI�and�change�the�Z�value�from�81�to�92�so�thatF*ˆthe�file�IOC.VM22DRV.AG�can�be�assembled�during�sysgen.‚The�81�valueF*ˆis�so�that�the�file�IOC.VM22DRV.AG�can�be�assembled�in�a�384K�system*ˆduring�sysgen. IFGTˆ\NOVM222ƒNHV22$1ƒ=�2Œ#�of�hardƒdisk�drives�on�VM22;�max=�84ƒNFV22$1ƒ=�4Œ#�of�floppy�disk�drives�on�VM22;�max=�4 >ƒVM220$1ƒ=�"'FXCMD80'"‚Type�of�1st�hardƒdisk�on�1st�VM22�board>ƒVM221$1ƒ=�"'RMCMD16'"‚Type�of�2nd�hardƒdisk�on�1st�VM22�board>ƒVM222$1ƒ=�"'FXCMD80'"‚Type�of�3rd�hardƒdisk�on�1st�VM22�board>ƒVM223$1ƒ=�"'RMCMD16'"‚Type�of�4th�hardƒdisk�on�1st�VM22�board>ƒVM224$1ƒ=�"'FXCMD80'"‚Type�of�5th�hardƒdisk�on�1st�VM22�board>ƒVM225$1ƒ=�"'RMCMD16'"‚Type�of�6th�hardƒdisk�on�1st�VM22�board>ƒVM226$1ƒ=�"'FXCMD80'"‚Type�of�7th�hardƒdisk�on�1st�VM22�board>ƒVM227$1ƒ=�"'RMCMD16'"‚Type�of�8th�hardƒdisk�on�1st�VM22�board @ƒVM228$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�VM22�board@ƒVM229$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�VM22�board@ƒVM22A$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�VM22�board@ƒVM22B$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�VM22�boardENDC O*------------------------------------------------------------------------------7NOVM30„=�0Œ#�of�VM30…MCCM�(multi-channel�communications *¦boards)(*¦uses�IPC�driver;�has�1�printer�port/bd*¦(see�"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=�0Œ#�of�terminals�on�1st�MCCM;�max=�4.ƒNPV30$1ƒ=�0Œ#�of�printers‚on�1st�MCCM;�max=�1/ƒNTV30$2ƒ=�0Œ#�of�terminals�on�2nd�MCCM;�max=�4.ƒNPV30$2ƒ=�0Œ#�of�printers‚on�2nd�MCCM;�max=�1/ƒNTV30$3ƒ=�0Œ#�of�terminals�on�3rd�MCCM;�max=�4.ƒNPV30$3ƒ=�0Œ#�of�printers‚on�3rd�MCCM;�max=�1/ƒNTV30$4ƒ=�0Œ#�of�terminals�on�4th�MCCM;�max=�4.ƒNPV30$4ƒ=�0Œ#�of�printers‚on�4th�MCCM;�max=�1ENDC O*------------------------------------------------------------------------------5NVME400ƒ=�1�#�of�MVME400‚dual�7201�serial�port�boards IFGTˆ\NVME400:ƒNU400$1ƒ=�2Œ#�of�ports/users�on�VME400�bd.�#1;�max=�2/bd.:ƒNU400$2ƒ=�0Œ#�of�ports/users�on�VME400�bd.�#2;�max=�2/bd.ENDC O*------------------------------------------------------------------------------9NVME410ƒ=�1�#�of�MVME410‚dual�16-bit�parallel�port�boards IFGT‚\NVME4103 <ƒNU410$1ƒ=�1Œ#�of�printers�in�use�on�VME410�board�#1:‚max=�2<ƒNU410$2ƒ=�0Œ#�of�printers�in�use�on�VME410�board�#2:‚max=�2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=�0Œ#�of�MVME435�mag�tape�controller�boards;�max=�2 IFGTˆ\NVME435;ƒN435$1„=�0Œ#�of�tape�drives�on�first‚MVME435�board;�max=�5<ƒN435$2„=�0Œ#�of�tape�drives�on�second�MVME435�board;�max=�5ENDC O*------------------------------------------------------------------------------7NVME600ƒ=�0Œ#�of�MVME600‚analog�input‚controller�boards O*------------------------------------------------------------------------------8NVME605ƒ=�0Œ#�of�MVME605‚analog�output�controller�boards IFGTˆ\NVME6059ƒNU605…=�0ŒNumber�of�users�(total)�for�the�MVME605�boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=�0Œ#�of�MVME610…AC‚input‚controller�boards IFGTˆ\NVME610GƒM610QSIZ‚=�128…Minimum�number�of�entries�in�Interrupt�Processing�QueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=�0Œ#�of�MVME615/616�AC‚output�controller�boards IFGTˆ\NVME6159ƒNU615…=�0ŒNumber�of�users�(total)�for�the�MVME615�boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=�0Œ#�of�MVME620…DC‚input‚controller�boards O*------------------------------------------------------------------------------4NVME625ƒ=�0Œ#�of�MVME625…DC‚output�controller�boards IFGTˆ\NVME6259ƒNU625…=�0ŒNumber�of�users�(total)�for�the�MVME625�boardsENDCO*------------------------------------------------------------------------------#NRAD†=�0Œ#�of�RAD†Remote�A/D�boards IFGTˆ\NRADƒNURAD…=�0Œ#�of�RAD�usersENDC O*------------------------------------------------------------------------------#NRIO†=�0Œ#�of�RIO†Remote�I/O�boards IFGTˆ\NRIO1ƒNRIOINTƒ=�0Œ#�of�interrupt�levels�per�I/O�moduleENDC O*------------------------------------------------------------------------------ééééééé4 'VME101 COPYSGENCF„„¯aaINITIO1 AG¥¥ÀaaIFDRVR CIÆÆWaaSYSTEM CIÏÏ}aaCNFGDRVRCIèè©aa=/*<=/*‚VME101.COPYSGEN.CF‚-‚Chain�file�to�copy�files�for�SYSGEN=/*'=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�VME101 =USE :.VME101=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*;=/*ƒInvoke�as:„=VME101.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference2=/*‰Arg5=�\5„include�PCDRV�driver�filesƒ(optional)=/*—PCDRV�=�include�them=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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*-----------------------------------------------------------------------------=/*‚Copy�all�VME101�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME101.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No5 �"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé6INITIO„IDNTƒ5,1�RMS68K�I/O�initializer�for�the�VME101.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VME101�BOARD.„******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢******É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------B*…10/05/84ƒKEG„Commented�out�the�RESET�instruction�because�the�new.*—VME101bug�takes�care�of�the�2661�interrupts.*…10/25/83ƒSJF„Initial�writing.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�the�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-**‚XREF's* *…Routines:1ŠXREFƒKILLER�Routine�to�call�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.(ŠXREFƒTIMERA�Addr�of�timer�chip�(M6840).4ŠXREFƒTIMINTVA‹#�of�milliseconds�between�timer�tics.4ŠXREFƒCLOCKFRQ‹Frequency�of�clock�(to�set�up�timer).*…SYSPAR�variables:ŠXREF.S�DATE�Date.0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.�1¦D®5¶7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts.8ŠXREF.S�TIMINTV4‹Another�value�related�to�time�interval.+ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(M6840). *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH.   **‚Included�files:**‰M6840.M6840.EQ*ŠNOLISTŠINCLUDE�M6840.M6840.EQ*ŠLIST ŠSECTION�8ŠPAGE*J*‚This�code�is�needed�to�satisfy�INIT,�which�is�board-independent�and�must/*‚call�upon�us�to�do�the�board-dependent�stuff.**„Initialize�the�MMU.5 *3INITMMUƒRTS—It's�easy�for�us�to�initialize�the�MMU,*§since�we�don't�have�one. **„Start�the�timer�running.*TIMERSTDŠMOVE.L�TIMSLIC(PC),TIMESLIC‚Set�the�sysgen�parameter�which�dictates%*§the�#�of�timer�tics�per�time�slice.'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC$‰BEQ.S‚TIMER_EXITŠBRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG3‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REG�1&‰MOVE.B�#$01,CR13(A1)‡ALL�TIMERS�RESET$‰MOVE.L�#CLOCKFRQ,D0ˆCLOCK�FREQUENCY‰DIVUƒ#4,D0�DIVIDE�BY�4#‰SUB.W‚#1,D0�CLOCK�INTERRUPTS�AT�-1*‰MOVE.W�TIMINTVA(PC),D1…INTERRUPT�INTERVAL ‰MOVE.W�D1,TIMINTVŠSAVE�FOR�EXEC‰MULUƒ#4,D1�MULTIPLY�BY�4*‰SUB.W‚#1,D1�SUBTRACT�1�-�TIMER�GOES�TO�-1!‰MOVE.W�D1,TIMINTV4‰SAVE�FOR�EXEC‰LSL.W‚#8,D1�PUT�IN�HIGH�BYTE)‰ADD.W‚D1,D0�VALUE�FOR�TIMER�3�(2�HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSET�TIMER�34‰MOVE.W�#256,D0�VALUE�FOR�TIMER�1�(OVERFLOW�COUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSET�TIMER�18‰MOVE.B�#$00,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�3;‰MOVE.B�#$C6,CR13(A1)‡T3--INTERNAL�CLOCK,INTERRUPT�ENABLED,*£OUTPUT�ENABLED,�8-BIT�MODE8‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�1;‰MOVE.B�#$00,CR13(A1)‡T1--EXTERNAL�CLOCK,�ENABLE�ALL�TIMERS3‰ADDQ.L�#6,SP�Everything�went�OK;�just�get�that�bus4‰BRA.S‚TIMER_EXITŠerror�junk�off�the�stack�and�exit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USE�DUMP�POINTER�FOR�TIMER TIMER_EXIT�RTS–Return�to�INIT. ŠPAGE ‰SECTIONƒ80************************************************,*ƒValue�to�put�in�VME101�control�register.ƒ*0*************************************************7CTRL†SET„%1101ŽStatus�display�bit�pattern.�Also�used�to-*£assert�the�SYSFAIL*�signal�on�the�VMEbus�by,*£setting�them�all�to�1.�Status�display�here*£is�setup�for�"D".*ª0000‚=‚display�"0"*ª0001‚=‚display�"1"*¶:*ª1110‚=‚display�"E"*ª1111‚=‚display�"F",CTRL†SET„1<<4+CTRLŠStatus�display�(enabled).9CTRL†SET„0<<5+CTRLŠBus�block�transfer�request�(disabled).;CTRL†SET„0<<6+CTRLŠBus�request�time-out�counter�(disabled).>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers6 �will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME101.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify6 �this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.*;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)?ONBD$HIƒ=�$0FFFˆHigh�value�for�on-board�ram�(as�seen�by�driver)ARAM$SQ„=�$0000ˆDifference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$FE00D0†Address�of�timer.5CLOCKFRQ‚=�0800‰Number�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.6TRCFLAGƒ=�$0‹Trace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interruptÇ5Ð-Ø*œ6‘SYSFAIL�interrupt.* FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** 9LTDA$01ƒ=�$FE00A1†VME101�local�terminal�#1�device�address9LTDA$02ƒ=�$FE00B1†VME101�local�terminal�#2�device�address8LPDA$01ƒ=�$FE00C1†VME101�local�printer‚#1�device�address 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space****************************************************************‰Vector�numbers£**>**************************************************************9IOCVEC1ƒ=�$1BŠAuto�vectrized�interrupt�-�PIA�loc.�printer8IOCVEC2ƒ=�$1CŠAuto�vectrized�interrupt�-�EPCI�terminal�18IOCVEC3ƒ=�$1DŠAuto�vectrized�interrupt�-�EPCI�terminal�28IOCVEC4ƒ=�$1AŠAuto�vectrized�interrupt�-�PTM�prog.�timer*3IOCLVL1ƒ=�3ŒAuto�vectorized�interrupt�level�for�PIA6IOCLVL2ƒ=�4ŒAuto�vectorized�interrupt�level�for�EPCI�16IOCLVL3ƒ=�5ŒAuto�vectorized�interrupt�level�for�EPCI�23IOCLVL4ƒ=�2ŒAuto�vectorized�interrupt�level�for�PTM FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined7 3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.AMEMEND1ƒ=�$200000†Ending�addr�for�on-board‚memory�must�be�<�this.4MEMEND2ƒ=�$0‹Starting‚addr�for�off-board�memory�must)*˜be�>=�this.‚Not�applicable�for�a�VME110@MEMEND3ƒ=�$0‹Ceiling�addr�for�off-board�memory�(must�be�<�this).;WHERLOAD‚=�$0‹Memory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.7CACHEF„=�0ŒNot�used�by�VME101�(needed�for�&.INITDAT.AG)9NOTNT…=�0ŒNot�used�by�VME101�(needed�for�EET.VERSADOS.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*)ASN‡=�0Œ#�of�address�spaces--not�used�but!*˜needed�to�satisfy�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�C8OC.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡C8OC.SYSPAR.RO,&.SYSPAR.RO;Yééé**ˆVME101.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME101.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VME101.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�configuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=�2Œ#�of�terminals�on�VME101�serial�ports�(EPCI);�max=�2 O*------------------------------------------------------------------------------1NOLPRT„=�1Œ#�of�local�(on-board)�printers;�max=�1 O*------------------------------------------------------------------------------2NORWIN„=�0Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"3"Š1st�RWIN1�is�controller�38ƒNHRWIN$1‚=�0Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRWIN$1‚=�0Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 7 à)é*ñ-ù*)ƒCONTWIN2‚=�"4"Š2nd�RWIN1�is�controller�48ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�0Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0507ƒNT050$1ƒ=�0Œ#�of�terminals�on�the�VME050�board;�max=�26ƒNP050$1ƒ=�0Œ#�of�printers‚on�the�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------ANVME315ƒ=�1Œ#�of�MVME315‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"0"Š1st�MVME315�is�controller�08ƒNH315$1ƒ=�2Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�4Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN10'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN10'"‚Type�of�2nd�hardƒdisk�on�1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"1"Š2nd�MVME315�is�controller�18ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN10'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN10'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�0Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*-----------------------------------------------------------------------------=/*‚Copy�all�VME110�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME110.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé6INITIO„IDNTƒ5,1�RMS68K�I/O�initializer�for�the�VME110.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VME110�BOARD.„******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢*9 *****É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------*…10/25/83ƒSJF„Initial�writing.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�the�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-*§specific�hardware. * *‚XREF's.* *…Routines:1ŠXREFƒKILLER�Routine�to�call�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.(ŠXREFƒTIMERA�Addr�of�timer�chip�(M6840).4ŠXREFƒTIMINTVA‹#�of�milliseconds�between�timer�tics.4ŠXREFƒCLOCKFRQ‹Frequency�of�clock�(to�set�up�timer).*…SYSPAR�variables:ŠXREF.S�DATE�Date.0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts.8ŠXREF.S�TIMINTV4‹Another�value�related�to�time�interval.&3/C7;? +ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(M6840). *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH.   **‚Included�files:**‰&.UTILITY.MC*‰M6840.M6840.EQ*ŠNOLISTŠINCLUDE�&.UTILITY.MCŠINCLUDE�M6840.M6840.EQŠLIST ŠSECTION�8ŠPAGE*J*‚This�code�is�needed�to�satisfy�INIT,�which�is�board-independent�and�must/*‚call�upon�us�to�do�the�board-dependent�stuff.**„Initialize�the�MMU.*3INITMMUƒRTS—It's�easy�for�us�to�initialize�the�MMU,*§since�we�don't�have�one. **„Start�the�timer�running.*TIMERSTDŠMOVE.W�TIMSLIC(PC),TIMESLIC‚Set�the�sysgen�parameter�which�dictates%*§the�#�of�timer�tics�per�time�slice.'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC$‰BEQ.S‚TIMER_EXITŠBRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG3‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REG�1&‰MOVE.B�#$01,CR13(A1)‡ALL�TIMERS�RESET$‰MOVE.L�#CLOCKFRQ,D0ˆCLOCK�FREQUENCY‰DIVUƒ#4,D0�DIVIDE�BY�4#‰SUB.W‚#1,D0�CLOCK�INTERRUPTS�AT�-1*‰MOVE.W�TIMINTVA(PC),D1…INTERRUPT�INTERVAL ‰MOVE.W�D1,TIMINTVŠSAVE�FOR�EXEC‰MULUƒ#4,D1�MULTIPLY�BY�4*‰SUB.W‚#1,D1�SUBTRACT�1�-�TIMER�GOES�TO�-1!‰MOVE.W�D1,TIMINTV4‰SAVE�FOR�EXEC‰LSL.W‚#8,D1�PUT�IN�HIGH�BYTE)‰ADD.W‚D1,D0�VALUE�FOR�TIMER�3�(2�HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSET�TIMER�34‰MOVE.W�#256,D0�VALUE�FOR�TIMER�1�(OVERFLOW�COUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSET�TIMER�18‰MOVE.B�#$00,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�3;‰MOVE.B�#$C6,CR13(A1)‡T3--INTERNAL�CLOCK,INTERRUPT�ENABLED,*£OUTPUT�ENABLED,�8-BIT�MODE8‰MOVE.B�#$01,CR2SR(A1)†ALLOW�WRITE�TO�CONTROL�REGISTER�1;‰MOVE.B�#$00,CR13(A1)‡T1--EXTERNAL�CLOCK,�ENABLE�ALL�TIMERS3‰ADDQ.L�#6,SP�Everything�went�OK;�just�get�that�bus4‰BRA.S‚TIMER_EXITŠerror�junk�off�the�stack�and�exit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USE�DUMP�POINTER�FOR�TIMER TIMER_EXIT�RTS–Return�to�INIT.ŠPAGE ‰SECTIONƒ80************************************************,*ƒValue�to�put�in�VME110�control�register.ƒ*0*************************************************6CTRL†SET„%00�Bus�release�control�(release�on�request).*©00�=�Release�on�request.*©01�=�Release�on�bus�clear.*©10�=�Release�when�done.*©11�=�Relea: se�never.*CTRL†SET„0<<4+CTRLŠFail�LED�control�(off).;CTRL†SET„0<<5+CTRLŠVMEbus�SYSFAIL*�interrupt�mask�(disabled$*§since�we�aren't�prepared�to�handle%*§SYSFAIL�on�the�VME110�because�it�is)*§shared�with�ACFAIL�and�Software�Abort).0CTRL†SET„1<<6+CTRLŠWatchdog�timer�mask�(enable).:CTRL†SET„0<<7+CTRLŠWrite-protection�of�onboard�RAM�in�user$*§mode�according�to�map�decoder�PROM *§(disable).  INITIO: 7ŠPEA„KILLER(PC)‰Arrange�for�KILLER�to�get�control�if�we4ŠPUSHƒ#'BE'Žcan't�access�the�VME110�control�register"*§(which�would�cause�a�bus�error). 9ŠLEA„$FE8021,A0‰A0�<--�addr�of�VME110's�control�register.-ŠMOVE.B�#CTRL,(A0)‰Load�the�control�register. 2ŠADD.L‚#6,SPŽGet�the�bus�error�junk�off�the�stack.   E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME110.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)?ONBD$HIƒ=�$0FFFˆHigh�value�for�on-board�ram�(as�seen�by�driver)ARAM$SQ„=�$0000ˆDifference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$FE8010†Address�of�timer.5CLOCKFRQ‚=�0800‰Number�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt; P6Y/a *œ6‘SYSFAIL�interrupt.*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** /LTDA$01ƒ=�$FE8001†VME110�local�terminal�address****************************************************************‰Vector�numbers£**>**************************************************************.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.AMEMEND1ƒ=�$200000†Ending�addr�for�on-board�memory�must�be�<�this.8MEMEND2ƒ=�$00000‡Starting‚addr�for�off-board�memory�must)*˜be�>=�this.‚Not�applicable�for�a�VME110DMEMEND3ƒ=�$00000‡Ceiling�addr�for�off-board�memory�(must�be�<�this).:WHERLOAD‚=�0ŒMemory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.8CACHEF„=�0ŒNot�used�for�VME110�(needed�for�&.INITDAT.AG):NOTNT…=�0ŒNot�used�for�VME110�(needed�for�EET.VERSADOS.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*)ASN‡=�0Œ#�of�address�spaces--not�used�but!*˜needed�to�satisfy�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�C8OC.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡C8OC.SYSPAR.RO,&.SYSPAR.RO;Yé; é**ˆVME110.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME110.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VME110.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�configuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=�1Œ#�of�terminals�on�VME110�serial�ports�(ACIA);�max=�1IFGTˆ\NOLTERM-1ƒMSG†NOLTERM�must�be�<=�1ƒABORTENDC O*------------------------------------------------------------------------------2NORWIN„=�1Œ#�of�RWIN1„Winchester�controller�boards*@*ˆNOTE:‚You�cannot�sysgen�a�2nd�RWIN1�board�if�you�are�sysgening7*�for�a�SASI�5.‚The�two�boards�are�at�the�same�address.7*�Reference�IOC.ADDRESS.CI�to�change�the�address�if�you$*�want�both�boards�at�the�same�time.* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"0"Š1st�RWIN1�is�controller�08ƒNHRWIN$1‚=�1Œ#�of�hardƒdiskƒdrives�on�1st�RWIN1;�max=�2<ƒNFRWIN$1‚=�2Œ#�of�5-1/4"�floppy�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1i,r+z,‚-Š'DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�0Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0507ƒNT050$1ƒ=�0Œ#�of�terminals�on�the�VME050�board;�max=�26ƒNP050$1ƒ=�0Œ#�of�printers‚on�the�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------ANVME315ƒ=�1Œ#�of�MVME315‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"3"Š1st�MVME315�is�controller�38ƒNH315$1ƒ=�1Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�4Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�< 1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"6"Š2nd�MVME315�is�controller�68ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�0Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜max=�1I****�NOTE:‚Do�not�use�VME316�in�this�system,�as�I/O�channel�is�already�on3****ˆthe�CPU�board!‚See�"&.M316DEF.CI"�for�details. O*------------------------------------------------------------------------------ƒNF4205$1‚=�2Œ#�of�floppy�disk�drives�on�VME420�(SASI);�max=�2AƒM42050$1‚=�"'H5WIN15'"‚Type�of�hardƒdisk�on�1st�MVME420,�drive�0AƒM42051$1‚=�"'H5WIN15'"‚Type�of�hardƒdisk�on�1st�MVME420,�drive�1CƒM42052$1‚=�"'F5DDDSI'"‚Type�of�floppy�disk�on�1st�MVME420,�drive�2CƒM42053$1‚=�"'F5DDDSI'"‚Type�of�floppy�disk�on�1st�MVME420,�drive�3ƒ*>ƒ*…NOTE:‚Total�disks�for�SASI=�4,�i.e.�NH4205$1+NF4205$1�<=�4.ƒ*ENDC O*------------------------------------------------------------------------------=NVME4208‚=�0Œ#�of�MVME420‚SASI�8"�interface�controller�boards*IFGTˆ\NVME42080ƒCONT4208‚=�"2"ŠMVME420�(SASI�8)�is�controller�2<ƒNH4208$1‚=�0Œ#�of�hardƒdisk�drives�on�VME420�(SASI);�max=�2>ƒNF4208$1‚=�0Œ#�of�floppy�disk�drives�on�VME420�(SASI);�max=�2AƒM42080$1‚=�"'H8WIN10'"‚Type�of�hardƒdisk�on�1st�MVME420,�drive�0AƒM42081$1‚=�"'H8WIN10'"‚Type�of�hardƒdisk�on�1st�MVME420,�drive�1CƒM42082$1‚=�"'F8DDDSI'"‚Type�of�floppy�disk�on�1st�MVME420,�drive�2CƒM42083$1‚=�"'F8DDDSI'"‚Type�of�floppy�disk�on�1st�MVME420,�drive�3ƒ*>ƒ*…NOTE:‚Total�disks�for�SASI=�4,�i.e.�NH4208$1+NF4208$1�<=�4.ƒ*ENDC O*-----------------------------------------------------------< -------------------;NVME435ƒ=�0Œ#�of�MVME435‚mag�tape�controller�boards;�max=�2 IFGTˆ\NVME435;ƒN435$1„=�0Œ#�of�tape�drives�on�first‚MVME435�board;�max=�8<ƒN435$2„=�0Œ#�of�tape�drives�on�second�MVME435�board;�max=�8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=�0Œ#�of�MVME600‚analog�input‚controller�boards O*------------------------------------------------------------------------------8NVME605ƒ=�0Œ#�of�MVME605‚analog�output�controller�boards IFGTˆ\NVME6059ƒNU605…=�0ŒNumber�of�users�(total)�for�the�MVME605�boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=�0Œ#�of�MVME610…AC‚input‚controller�boards IFGTˆ\NVME610GƒM610QSIZ‚=�128…Minimum�number�of�entries�in�Interrupt�Processing�QueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=�0Œ#�of�MVME615/616�AC‚output�controller�boards IFGTˆ\NVME6159ƒNU615…=�0ŒNumber�of�users�(total)�for�the�MVME615�boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=�0Œ#�of�MVME620…DC‚input‚controller�boards O*------------------------------------------------------------------------------4NVME625ƒ=�0Œ#�of�MVME625…DC‚output�controller�boards IFGTˆ\NVME6259ƒNU625…=�0ŒNumber�of�users�(total)�for�the�MVME625�boardsENDC O*------------------------------------------------------------------------------#NRAD†=�0Œ#�of�RAD†Remote�A/D�boards IFGTˆ\NRADƒNURAD…=�0Œ#�of�RAD�usersENDC O*------------------------------------------------------------------------------#NRIO†=�0Œ#�of�RIO†Remote�I/O�boards IFGTˆ\NRIO1ƒNRIOINTƒ=�0Œ#�of�interrupt�levels�per�I/O�moduleENDC O*------------------------------------------------------------------------------éé'VME115 COPYSGENCFžž²aaINITIO1 AG¿¿/oaaIFDRVR CIðð[aaSYSTEM CIùù}aaCNFGDRVRCI®ff=/*<=/*‚VME115.COPYSGEN.CF‚-‚Chain�file�to�copy�files�for�SYSGEN=/*'=/*‚--‚FORCE�CATALOG�TO�BE�SET�=�VME115 =USE :.VME115=/*D=/*†This�chainfile�copies�those�files�required�to�do�a�SYSGEN�into�a'=/*†a�specified�volume�and�user�number.=/*;=/*ƒInvoke�as:„=VME115.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=�\1„Source�volume�nameŒ(must�specify).=/*‰Arg2=�\2„Target�volume�nameŒ(must�specify).=/*‰Arg3=�\3„Target�user�numberŒ(must�specify)-=/*‰Arg4=�\4„COPY�option�letter(s)‰(= optional)=/*—B�=�both�copy�&�verify=/*—P�=�pack�files =/*—Y�=�overwrite�if�file�exists*=/*—N�=�skip�copy�if�file�existsƒ(default)*=/*–VT�=�verify�&�show�only�1st�difference2=/*‰Arg5=�\5„include�PCDRV�driver�filesƒ(optional)=/*—PCDRV�=�include�them=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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*-----------------------------------------------------------------------------=/*‚Copy�all�VME115�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME115.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé6INITIO„IDNTƒ1,0�RMS68K�I/O�initializer�for�the�VME115.O*******************************************************************************O*******************************************************************************O**********************************> ************************************************É***A***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VME115.Š******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢******É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„Changed�MMU�initialization�to�look�at�\MMU)*…08/28/84ƒMAD„PI/T�Initialization�added.*…05/03/84ƒSJF„Initial�writing.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�the�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-*§specific�hardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLER�Routine�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.+ŠXREFƒTIMERA�Addr�of�timer�chip�(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPAR�variables:6ŠXREF.S�MMUHEREŒAddr�of�MMU;�0�if�we're�not�using�one.0ŠXREF.S�FRST451ŒAddr�of�first�MMU�in�the�system./ŠXREF.S�LAST451ŒAddr�of�last‚MMU�in�the�system.·4ÀQÈHÐ9Ø1à97ŠXREF.S�CURR451ŒPtr�to�MMU�LOADMMU�should�look�at�next.7ŠXREF.S�CURRSD�Current�segment�descriptor�#�in�the�MMU.7ŠXREF.S�DPRVAO�Dual-Ported�Ram�Versabus�Address�Offset.ŠXREF.S�DATE�Date.0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.%ŠXREF.S�TIMINTRŒSYSPAR�usec�remainder7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts..ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(MC146818). *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH.  **‚Included�files:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M68230.M68230.EQ*ŠNOLISTŠINCLUDE�&.UTILITY.MCŠINCLUDE�M68451.M68451.EQŠINCLUDE�M68230.M68230.EQŠLISTŠPAGEO*******************************************************************************2*ˆDATE�CONVERSIONS�FROM�ONE�BINARY�FORM�TO�ANOTHER*Ç6*ˆORDINAL�DATE�-->�DAY�NUMBER�WHERE�DAY�1�=�JAN�1�1980***ˆCALL *’BSR‡DATEGO*¦BINARY�GREGORIAN�-�YYYYMMDD*§TO*¦BINARY�ORDINALƒ-�DAY�NUMBER*ˆINPUT'*’D0�=�DATE�TO�BE�CONVERTED�--�YYYYMMDD**ˆOUTPUT#*’D0�=�CONVERTED�DATE‡--�DAY�NUMBER*O******************************************************************************* ŠSECTION�8**‰NON-LEAP�DAYS�BEFORE�TABLE*Ç ŠADD.W‚#3,D1ŽCOMPUTE�LEAP�DAYS ŠLSR.W‚#2,D1ŠADD.L‚D1,D0ŽADD�LEAP�DAYS+ŠMOVEM.L�(A7)+,D1-D2‡RESTORE�CALLER'S�STATE ŠRTS—GO�BACK*Ç*‰DECIDE�LEAPNESS*Ç%DATELEAP‚LEA„DATEDBNL,A6ˆSET�NON-LEAP ŠBTSTƒ#16,D0$ŠBNE.S‚DATELP02‹EXIT�IF�YEAR�NOT�K*2 ŠBTSTƒ#17,D0$ŠBNE.S‚DATELP02‹EXIT�IF�YEAR�NOT�K*4ŠMOVE.L�D0,D1ŽCHECK�FOR�CENTURY ŠCLR.W‚D1ŠSWAPƒD1 ŠDIVUƒ#100,D1ŠSWAPƒD1 ŠTST.W‚D1(ŠBNE.S‚DATELP01‹LEAP�YEAR�IF�NOT�CENTURYŠBTSTƒ#16,D1�IT�IS�CENTURY$ŠBNE.S‚DATELP02‹LEAP�IF�YEAR�=�K*400 ŠBTSTƒ#17,D1ŠBNE.S‚DATELP02!DATELP01‚LEA„DATEDBL,A6‰LEAP�YEARDATELP02‚RTS—GO�BACKŠPAGEO*******************************************************************************O**********************************************************************************É***6***…ROUTINE:‚INITMMU�--�INITIALIZE�THE�M68451�MMU.•******É***I***…FUNCTION:‚If�we�are�supposed�to�have�an�MMU,�verify�its�existence‚******‡and�initialize�it.°******É******…NOTES:¾******É***E***…REGISTER�USAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SR�hi„SR�lo�(CCR)…******‡D:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD�******‡A:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRY�CONDITIONS:³***+***‡Supervisor�mode,�interrupt�level�7.Ÿ******É***-***…EXIT�CONDITIONS�DIFFERENT�FROM�ENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION�8ŠOPT„BRS INITMMU: ,ŠIFNEƒ\MMU�If�we're�supposed�to�have�an�MMU, +ŠSAVEƒD0/A0ŽSave�registers�we'll�blow�away. 3ŠLEA„$F80000,A0‰A0�<--�address�where�MMU�should�be.%ŠMOVE.L�A0,MMUHERE‰Save�it�in�SYSPAR. *%*‚Set�up�the�other�SYSPAR�parameters.*8‹MOVE.L�A0,FRST451‰Our�only�68451�is�obviously�the�first9‹MOVE.L�A0,LAST451‰68451,�the�last�68451,�and�the�current‹MOVE.L�A0,CURR451‰68451.7‹MOVE.L�#1,CURRSDŠThe�current�segment�descriptor�is�#1. *@*‚Clear�all�segment�descriptors�except�the�one�we're�using�(#0).*5‹PEA„KILLERŒSet�up�for�us�to�go�to�KILLER�if�we�get�a‹PUSHƒ#'BE'Žbus�error.<‹FOR„D0�=�#1�TO�#31�DO…For�segment�descriptors�1�through�31,*ŽMOVE.B�D0,DP(A0)Š.‚Select�the�descriptor.7ŽMOVE.B�#0,SSR(A0)‰.‚Initialize�it�so�it�won't�be�used.‹ENDF2‹ADD.L‚#6,SPŽGet�the�bus�error�junk�off�the�stack. **‚Exit.*!ŠRESTORE�D0/A0�Restore�registers. ŠENDC ŠRTS—Return.ŠPAGEO********************************************************************************ˆSTART�TIMER„(M68230�PIT�chip) TIMERST:‚SAVEƒD0/A0/A1EŠMOVE.W�TIMSLIC(PC),TIMESLIC�#�TIMER�INTERRUPTS�BEFORE�TASK�INTERRUPT'ŠMOVE.L�TIMERA(PC),A1†GET�TIMER�ADDRESS#ŠMOVE.L�A1,PTMADDR‰SAVE�IT�FOR�EXEC>ŠMOVE.B�#$A0,TCR(A1)‡Set�timer�to�generate�periodic�interrupts*ŠMOVE.B�#$4C,TIVR(A1)†Set�up�timer�vector.(ŠMOVE.L�#CLOCKFRQ,D0‡D0=ticks�per�second6* Divide to find out how many ticks per 10ms interval.E*ƒWe�want�to�divide�by�100�but�because�of�the�possibility�of�overflow,*ƒwe�must�divide�by�200,�then�multiply�by�2.(ŠDIVUƒ#200,D0ŒD0=ticks�per�05ms�interval*ŠAND.L‚#$0000FFFF,D0†Mask�to�just�quotient'ŠLSL.L‚#1,D0ŽD0=ticks�per�10ms�interval5ŠMOVE.W�TIMINTVA(PC),TIMINTV�Set�10ms�timing�interval5ŠLSR.L‚#5,D0ŽD0=value�for�preload�with�prescale�of�32"ŠMOVEP.L�D0,CPRH-2(A1)…Set�preload)ŠMOVE.B�#$A1,TCR(A1)‡Start�timer�ticking.ŠRESTORE�D0/A0/A1ŠRTS—BACK�TO�INITŠPAGEO*******************************************************************************O**********************************************************************************É***:***…ROUTINE:‚INITIO�--�INITIALIZE�BOARD-DEPENDENT�I/O.‘******É***H***…FUNCTION:‚This�routine�is�sort�of�a�catch�all�for�initializationƒ***/***‡of�things�other�than�the�timer�and�MMU.›******É******…NOTES:¾******É***E***…REGISTER�USAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SR�hi„SR�lo�(CCR)…******‡D:ƒ.ƒ.ƒDƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD�******‡A:ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É***? ***…ENTRY�CONDITIONS:³******É***-***…EXIT�CONDITIONS�DIFFERENT�FROM�ENTRY:Ÿ******É***O*******************************************************************************O******************************************************************************* *7* Equates for the 68230 PI/T in the VME115 environment:*/MODE0„EQU�$0FƒMode�0:�unidirectional�8-bit�mode-VECTBASE�EQU�$C0ƒBase�interrupt�vector�numberBINTFUNC‚EQU�$18ƒInterrupt�function�for�PC5/PC6�vectored�interrupts;INTPRIO‚EQU�$05ƒInterrupt�priority:�HI-->�H3/H4/H2/H1�-->LO=INPUTSƒEQU�$00ƒSelect�all�inputs�thru�data�direction�register?OUTPUTS‚EQU�$FFƒSelect�all�outputs�thru�data�direction�register3NULLOUT‚EQU�$00ƒInitial�data�of�all�null�characters&SUBMODE‚EQU�$80ƒSubmode�1X�(bit�7�set)8H12ENAB‚EQU�$00ƒH1�disabled�(bit�3);�H2�disabled�(bit�2)6H34ENAB‚EQU�$06ƒH3�enabled‚(bit�3);�H4�enabled‚(bit�2).PITENAB‚EQU�$30ƒEnable�all�interrupts;�Mode�0. PAGEINITIO:*"* Get the base address of the chip*<ŠMOVE.L�TIMERA(PC),A0†Address�of�68230�PI/T�interrupt/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)„Set�Port�Mode�Control�Register�for�Mode�0.<ŠMOVE.B�#VECTBASE,PIVR(A0)�Set�base�interrupt�vector�number.EŠMOVE.B�#INTFUNC+INTPRIO,PSRR(A0)�Set�interrupt�functions�&�priority.8ŠMOVE.B�#OUTPUTS,PADDR(A0)�Select�Port�A�as�all�outputs.6ŠMOVE.B�#INPUTS,PBDDR(A0)‚Select�Port�B�as�all�inputs.@ŠMOVE.B�#NULLOUT,PADR(A0)‚Set�Port�A�initial�data�as�null�chars.FŠMOVE.B�#SUBMODE+H12ENAB,PACR(A0)�Set�PortA�submode�1X,�H1,H2�disabledFŠMOVE.B�#SUBMODE+H34ENAB,PBCR(A0)�Set�PortB�submode�1X,�H3,H4�enabled.** Init Port C as follows:*ˆPC7:ƒInput„TIACK*ˆPC6:ƒInput„PIACK*ˆPC5:ƒOutputƒPIRQ:*ˆPC4:ƒOutputƒSYSFAIL�(drive�low�to�turn�off�startup�mode)*ˆPC3:ƒOutputƒTIRQ*ˆPC2:ƒInput„External�Clock!*ˆPC1:ƒOutputƒPrinter�Input�Prime!*ˆPC0:ƒOutputƒPrinter�Data�Strobe)* Program Outputs as '1'and Inputs as '0'*9ŠMOVE.B�#$3B,PCDDR(A0)…Program�Port�C�as�described�above.1ŠMOVE.B�#%00000001,PCDR(A0)‚Set�Data�Strobe�high.8ŠMOVE.B�#PITENAB,PGCR(A0)‚Enable�all�interrupts;�Mode�0.*H* TEMPORARY PATCH SPACE UNTIL WE CAN FIGURE OUT WHAT TO DO WITH THE PI/T*ŠNOPŠNOPŠNOPŠNOP E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME115.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)?ONBD$HIƒ=�$0FFFˆHigh�value�for�on-board�ram�(as�seen�by�driver)ARAM$SQ„=�$0000ˆDifference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$F81001†Address�of�timer.****************************************************************‰Vector�numbers£**>***************************************************************-IOCVEC1ƒ=�$50ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$51ŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$52ŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$53ŠI/O�channel�interrupt�4�vector.**IOCLVL1ƒ=�2ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�3ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�4ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�5ŒI/O�channel�interrupt�4�level. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.AMEMEND1ƒ=�$200000†Ending�addr�for�on-board‚memory�must�be�<�this.8MEMEND2ƒ=�$00000‡Starting‚addr�for�off-board�memory�must)*˜be�>=�this.‚Not�applicable�for�a�VME115DMEMEND3ƒ=�$00000‡Ceiling�addr�for�off-board�memory�(must�be�<�this).:WHERLOAD‚=�0ŒMemory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.7CACHEF„=�0ŒNot�used�by�VME115�(needed�for�&.INITDAT.AG)9NOTNT…=�0ŒNot�used�by�VME115�(needed�for�EET.VERSADOS.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*6ASN‡=�127Š#�of�address�spaces:‚needed�by�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�CBOD.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡CBOD.SYSPAR.RO,&.SYSPAR.RO;Yé@ éé**ˆVME115.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME115.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VME115.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�configuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=�2Œ#�of�terminals�on�VME115�serial�ports�;�max=�2 O*------------------------------------------------------------------------------1NOLPRT„=�1Œ#�of�local�(on-board)�printers;�max=�1 O*------------------------------------------------------------------------------2NORWIN„=�1Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"2"Š1st�RWIN1�is�controller�28ƒNHRWIN$1‚=�1Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRWIN$1‚=�2Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3  )+,#/)ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�0Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0507ƒNT050$1ƒ=�0Œ#�of�terminals�on�the�VME050�board;�max=�26ƒNP050$1ƒ=�0Œ#�of�printers‚on�the�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------I*�NOTE:‚The�MVME315�board�is�not�supported�due�to�incompatibility�between@*ˆMVME115�and�MVME315�although�controller�assignments�reserves�a@*ˆslot�for�the�MVME315�board�since�MVME115�(VME115�bug)�includes*ˆMVME315�support.*ANVME315ƒ=�0Œ#�of�MVME315A ‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"1"Š1st�MVME315�is�controller�18ƒNH315$1ƒ=�0Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�0Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"6"Š2nd�MVME315�is�controller�68ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�1Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*‚Copy�all�VME120/128�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME120.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé**ˆ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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME120.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)@ONBD$HIƒ=�$1FFFF‡High�value�for�on-board�ram�(as�seen�by�driver)ARAM$SQ„=�$0000ˆDifference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** ?TIMER…=�$F20001†Address�of�timer‚(Must�match�value�for�MFP_BASE*œin�9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=�0ŒNumber�of�clock�ticks�per�millisecond*œ(not�used�on�VME12X)"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘DispatchY4b1j.*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt*œ6‘SYSFAIL�interrupt.*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses$MSG‰***‚Short�I/O�space�base�address'MSG‰***‚Short�I/O�space�address�offsetsFMSG‰****************************************************************** 9LTDA$01ƒ=�$F20001†VME120�local�terminal�#1�device�address 1SIOBASEƒ=�$FF0000†Base�address�of�short�I/O�space****************************************************************‰Vector�numbers£**>***************************************************************-IOCVEC1ƒ=�$50ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$51ŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$52ŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$53ŠI/O�channel�interrupt�4�vector.**IOCLVL1ƒ=�2ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�3ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�4ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�5ŒI/O�channel�interrupt�4�level. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operatiC ng�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.EMEMEND1ƒ=�$28000-$100‚Ending�addr�for�on-board‚memory�must�be�<�this.=MEMEND2ƒ=�$28000-$100‚Starting‚addr�for�off-board�memory�must *˜be�>=�this.EMEMEND3ƒ=�$200000†Ceiling�addr�for�off-board�memory�(must�be�<�this). E* SET1 is a user adjustable parameter that can take on any one of the*ƒfollowing�values: *…1)‚"SYSTEM" *…2)‚"USER"*…3)‚"DONT-CARE"F* If SET1 is set to "SYSTEM" then the cache bank should be set up as aC*ƒsupervisory�cache.‚In�this�mode,�RMS�and�the�drivers�will�use�theE*ƒcache�and�RMS�will�not�flush�the�cache�on�task�switches.‚If�SET1�isC*ƒset�to�any�other�value,�then�RMS�will�flush�the�cache�on�all�task7*ƒswitches�that�force�a�change�in�address�space�number. SET1†=�"DONT-CARE" &Tˆ=�$F80006IFEQˆ"\SET1"†,"SYSTEM""ƒ&Tˆ=�\STARTRMS„Set�to�dummy�valueENDC )CACHEF„=�\&TŠVariable�for�flushing�cache:&*ž1.)‚CACHEF�<==�$F80006�(flush�bank).**ž2.)‚CACHEF�<==�Dummyƒ(don't�flush�bank).;WHERLOAD‚=�$0‹Memory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.9NOTNT…=�0ŒNot�used�by�VME120�(needed�for�EET.VERSADOS.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 2PAGESIZE‚=�2048‰Size�in�bytes�of�a�page�of�memory.*6ASN‡=�127Š#�of�address�spaces:‚needed�by�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�CBOD.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡CBOD.SYSPAR.RO,&.SYSPAR.RO;Y*ˆVME120.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME120.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VME120.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�configuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------?NOLTERMƒ=�1Œ#�of�terminals�on�VME120�serial�ports�(MFP);�max=�1 O*------------------------------------------------------------------------------2NORWIN„=�1Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"2"Š1st�RWIN1�is�controller�28ƒNHRWIN$1‚=�1Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒND FRWIN$1‚=�2Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2>ƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�hardƒdisk�on�1st�RWIN1,�drive�0>ƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�hardƒdisk�on�1st�RWIN1,�drive�1@ƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�floppy�disk�on�1st�RWIN1,�drive�2@ƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2r({*ƒ/‹%BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�1Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0507ƒNT050$1ƒ=�2Œ#�of�terminals�on�the�VME050�board;�max=�26ƒNP050$1ƒ=�1Œ#�of�printers‚on�the�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------ANVME315ƒ=�1Œ#�of�MVME315‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"1"Š1st�MVME315�is�controller�18ƒNH315$1ƒ=�1Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�4Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"6"Š2nd�MVME315�is�controller�68ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�1Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*‚Copy�all�VME120/128�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME128.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééé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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME128.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)@ONBD$HIƒ=�$1FFFF‡High�value�for�on-board�ram�(as�seen�by�driver)ARAM$SQ„=�$0000ˆDifference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device) FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** ?TIMER…=�$F20001†Address�of�timer‚(Must�match�value�for�MFP_BASE*œin�9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=�0ŒNumber�of�clock�ticks�per�millisecond*œ(not�used�on�VME12X)"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�whF ich�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘DispatchÁ4Ê1Ò3Ú*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt*œ6‘SYSFAIL�interrupt.*FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses$MSG‰***‚Short�I/O�space�base�address'MSG‰***‚Short�I/O�space�address�offsetsFMSG‰****************************************************************** 9LTDA$01ƒ=�$F20001†VME128�local�terminal�#1�device�address 1SIOBASEƒ=�$FF0000†Base�address�of�short�I/O�space****************************************************************‰Vector�numbers£**>***************************************************************-IOCVEC1ƒ=�$50ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$51ŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$52ŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$53ŠI/O�channel�interrupt�4�vector.**IOCLVL1ƒ=�2ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�3ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�4ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�5ŒI/O�channel�interrupt�4�level. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�10‹Number�of�milliseconds�between�timer�interrupts.?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�address�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.EMEMEND1ƒ=�$28000-$100‚Ending�addr�for�on-board‚memory�must�be�<�this.=MEMEND2ƒ=�$28000-$100‚Starting‚addr�for�off-board�memory�must *˜be�>=�this.EMEMEND3ƒ=�$200000†Ceiling�addr�for�off-board�memory�(must�be�<�this). N* SET1 and SET2 are user adjustable parameters that can take on any one of the*ƒfollowing�values: *…1)‚"SYSTEM" *…2)‚"USER"*…3)‚"DONT-CARE"K* Each SETx parameter is associated with a particular cache bank (bank 1 orK*ƒbank�2).‚If�either�SETx�parameter�is�set�to�"SYSTEM"�then�that�cache�bank(*ƒshould�be�set�up�as�supervisory�cache.1*ƒThe�assumption�here�is�that�RMS�and�the�driversJ*ƒall�share�the�same�address�space�and�are�using�the�bank�marked�"SYSTEM".E*ƒRMS�will�not�flush�the�"SYSTEM"�cache�on�task�switches.‚If�the�SETxI*ƒparameter�is�marked�as�anything�other�than�"SYSTEM"�then�RMS�will�flushF*ƒit�on�any�task�switches�that�force�a�change�in�address�space�number. SET1†=�"DONT-CARE"SET2†=�"DONT-CARE" &Tˆ=�3IFEQˆ"\SET1"†,"SYSTEM"ƒ&Tˆ=�2ENDCIFEQˆ"\SET2"†,"SYSTEM" ƒ&Tˆ=�&T-2ENDCCACHEF„=�$F80000+(2*\&T)*˜Variable�for�flushing�cache:,*ž1.)‚CACHEF�<==�$F80002�(flush�bank1�only).,*ž2.)‚CACHEF�<==�$F80004�(flush�bank2�only).,*ž3.)‚CACHEF�<==�$F80006�(flush�both�banks).;WHERLOAD‚=�$0‹Memory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.8NOTNT…=�0ŒNot�used�by�VME128�(needed�by�EET.VERSADOS.CI) EMSG‰************************************************************G *****)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 2PAGESIZE‚=�4096‰Size�in�bytes�of�a�page�of�memory.*6ASN‡=�127Š#�of�address�spaces:‚needed�by�&.INITDAT.AG. GMSG‰*******************************************************************=MSG‰*ƒCopy�CBOD.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡CBOD.SYSPAR.RO,&.SYSPAR.RO;Yééééééé**ˆVME128.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME128.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VME128.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�configuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=�1Œ#�of�terminals�on�VME128�serial�ports�;�max=�1 O*------------------------------------------------------------------------------2NORWIN„=�1Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"2"Š1st�RWIN1�is�controller�28ƒNHRWIN$1‚=�1Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRG WIN$1‚=�2Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"5"Š2nd�RWIN1�is�controller�58ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2â)ë*ó/û%BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�1Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0503ƒNT050$1ƒ=�2Œ#�of�terminals�on�VME050�board;�max=�22ƒNP050$1ƒ=�1Œ#�of�printers‚on�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------ANVME315ƒ=�1Œ#�of�MVME315‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"1"Š1st�MVME315�is�controller�18ƒNH315$1ƒ=�1Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�4Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"6"Š2nd�MVME315�is�controller�68ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�1Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜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=/*‚Set�Arg6�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*-----------------------------------------------------------------------------=/*‚Copy�all�VMES10�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VMES10.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!éééI é6INITIO„IDNTƒ5,1�RMS68K�I/O�initializer�for�the�VME/10.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***A***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VME/10.Š******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢******É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„Changed�MMU�initialization�to�look�at�\MMU4*†3/�6/84ƒSJF„Make�bit�7�of�CR1�a�0�rather�than�a�1.?*†1/10/84ƒMSL„Verify�that�UIP�(update-in-progress)�bit�is�clear&*—before�reading�real-time�clock�chip.*…11/�7/83ƒSJF„Initial�writing.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�the�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-*§specific�hardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLER�Routine�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.+ŠXREFƒTIMERA�Addr�of�timer�chip�(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPAR�variables:6ŠXREF.S�MMUHEREŒAddr�of�MMU;�0�if�we're�not�using�one. )4 2A :E B? JO RA Z/ b: j> r0ŠXREF.S�FRST451ŒAddr�of�first�MMU�in�the�system./ŠXREF.S�LAST451ŒAddr�of�last‚MMU�in�the�system.7ŠXREF.S�CURR451ŒPtr�to�MMU�LOADMMU�should�look�at�next.7ŠXREF.S�CURRSD�Current�segment�descriptor�#�in�the�MMU.7ŠXREF.S�DPRVAO�Dual-Ported�Ram�Versabus�Address�Offset.ŠXREF.S�DATE�Date.1ŠXREF.S�TIME_LEFTŠms�until�next�significant�event0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts..ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(MC146818).0ŠXREF.S�NSE�Next�significant�event�absolute�time$ŠXREF.S�MIDNIGHT‹ms�of�last�midnight *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH. **‚Included�files:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ*ŠNOLISTŠINCLUDE�&.UTILITY.MCŠINCLUDE�M68451.M68451.EQŠINCLUDE�M146818.M146818.EQŠLISTŠPAGEO*******************************************************************************O**********************************************************************************É***7***…ROUTINE:‚INITMMU�--�INITIALIZE�THE�M68451�MMUs.”******É***G***…FUNCTION:‚If�we�are�supposed�to�have�MMUs,�verify�that�at�least„***4***‡one�exists,�count�them,�and�initialize�them.–******É******…NOTES:¾******É***E***…REGISTER�USAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SR�hi„SR�lo�(CCR)…******‡D:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD�******‡A:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRY�CONDITIONS:³***+***‡Supervisor�mode,�interrupt�level�7.Ÿ******É***-***…EXJ IT�CONDITIONS�DIFFERENT�FROM�ENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION�8ŠOPT„BRS INITMMU: /ŠIFNEƒ\MMU�If�we're�supposed�to�have�some�MMUs, 1ŠSAVEƒD0/D1/A0/A1ˆSave�registers�we'll�blow�away. 0ŠLEA„$F1A800,A0‰A0�<--�address�of�the�first�MMU.%ŠMOVE.L�A0,MMUHERE‰Save�it�in�SYSPAR. (‰PEA…KILLER�CRASH�IF�FIRST�MMU�NOT�THERE'‰MOVE.W‚#'BE',-(A7)ŠBUS�ERROR�SWITCH�ON,‰MOVE.B‚(A0),D0ŽVERIFY�PRESENCE�OF�FIRST�MMU8‰MOVE.L‚A0,FRST451‹SAVE�ADDRESS�OF�FIRST�68451�IN�SYSPAR.‰MOVE.L‚A0,CURR451‹IT'S�ALSO�THE�CURRENT�68451(‰MOVE.L‚#1,CURRSDŒSEGMENT�DESCRIPTOR�#�1#‰LEA…N68451U(PC),A1‡ADDRESS�OF�EXIT6‰MOVE.L‚A1,2(A7)�EXIT�IF�BUS�ERROR�WHILE�COUNTING�MMUs%‰MOVE.W‚#3,D0�FOUR�POSSIBLE�LAST�MMUsN68451B1‰MOVE.B‚(A0),D1ŽEXIT�THROUGH�BUS�ERROR�IF�NO�NEXT.‰MOVE.L‚A0,LAST451‹CURRENT�MAY�BE�THE�LAST�MMU)‰ADD.Lƒ#$40,A0ŽSET�TO�CHECK�NEXT�MMU�SLOT‰DBRA„D0,N68451B‹LOOP�TILL�DONE+‰ADD.Lƒ#6,A7�BUS�ERROR�POINTER�OFF�OF�STACK *I*‚Unload�segment�descripters�in�all�MMU's,�in�case�RESET�wasn't�performed*‚prior�to�boot.*N68451U'ŠMOVE.L�FRST451,A1ŠPoint�to�first�68451$ŠMOVE.B�#1,D0�Segment�descriptor�#�1UNLD10%ŠMOVE.B�D0,DP(A1)‹Point�to�descriptor-ŠMOVE.B�#0,SSR(A1)ŠElse�clear�this�descriptorUNLDNEXTŠADDQ.B�#1,D0�Next�descriptorŠCMP.B‚#$20,D0�End�of�this�MMU?ŠBNE.S‚UNLD10ŽBranch�if�no#ŠLEA„$40(A1),A1ŠMove�on�to�next�MMUŠCLR.B‚D0’Descriptor�#�0)ŠCMP.L‚LAST451,A1ŠAre�we�beyond�all�MMUs?ŠBLE.S‚UNLD10ŽBranch�if�noUNLDEXIT **‚Exit.*.N68451XƒRESTORE�D0/D1/A0/A1‡Restore�registers. ŠENDC ŠRTS—Return.ŠPAGEO*********************************************************************************ˆSTART�TIMER„(146818�TIMER)* *G*‚This�macro�will�verify�that�a�byte�is�within�a�specified�range.‚If�itH*‚is�not�within�the�range,�a�branch�is�taken�to�RANGE_ERR.‚The�syntax�isD*„CHECK_RANGE.‚,,F*‚Distance�is�S�for�short�branches,�L�for�long�branches,�or�nothing�if*‚the�default�will�do.6*‚The�byte�to�check�is�treated�as�an�unsigned�integer.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0�RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0�RANGE_ERRŠENDM  TIMERST:E‰MOVE.W�TIMSLIC(PC),TIMESLIC‚#�TIMER�INTERRUPTS�BEFORE�TASK�INTERRUPT'‰MOVE.L�TIMERA(PC),A1‡GET�TIMER�ADDRESS#‰MOVE.L�A1,PTMADDRŠSAVE�IT�FOR�EXEC!‰BEQ.L‚TIMERBE�BRANCH�IF�NO�TIMER)‰PEA„TIMERBE(PC)‰WHERE�TO�GO�ON�BUS�ERROR$‰MOVE.W�#'BE',-(A7)‰SET�BUS�ERR�FLAG*4*ˆGet�system�time�and�date�from�battery�backed�timer* UIP_LOOP:4‰BTST†#7,REGA(A1)‰Wait�until�UIP�bit�is�clear�before#‰BNE.S…UIP_LOOPŒreading�timer�chip. *‰CLR.L…D1’Prepare�for�following�short�load'‰MOVE.B„HRS(A1),D1ŠGet�hours�from�timerŠCHECK_RANGE.L�D1,#0,#230‰MOVE.L„#3600*1000,D2‡Addend�is�one�hour's�msecs+‰CLR.L…D0’Calculation�will�take�place�in�D0*‰BRA.S…CALCLOOPŒStart�the�calculation�loopCALCHRS)‰ADD.L…D2,D0�Add�one�hour's�msecs�to�timeCALCLOOP*‰DBRA†D1,CALCHRSŠLoop�until�hours�computed*‰CLR.W…D1’Prepare�for�following�short�load*‰MOVE.B„MINS(A1),D1‰Get�minutes�from�timerŠCHECK_RANGE�D1,#0,#59)‰MULU.W„#60,D1ŽConvert�minutes�to�seconds*‰CLR.L…D2’Prepare�for�following�short�load*‰MOVE.B„SECS(A1),D2‰Get�seconds�from�timerŠCHECK_RANGE�D2,#0,#59‰ADD.L…D2,D1�D1=total�seconds‰MULU.W„#1000,D1ŒD1=total�msecs!‰ADD.L…D1,D0�D0=grand�total�msecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStore�it�for�exec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Prepare�to�form�gregorian�date'‰MOVE.B„YEAR(A1),D0‰Get�year�from�timerŠCHECK_RANGE�D0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGE�D0,#1,#12‰LSL.W…#8,D0�D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGE�D0,#1,#31 *I*‚The�time�and�date�look�reasonable,�so�let's�go�ahead�and�keep�those�forG*‚our�own�(the�chip�must�not�have�lost�power�sinceJ �last�time).‚We�can'tI*‚tell�for�sure�whether�the�chip�lost�power,�even�though�there's�a�bit�inJ*‚the�chip�that�says�so,�because�the�bug�has�already�read�the�information,*‚making�it�unavailable�to�us.* ‰BSR.L…DATEGOŽConvert�to�ordinal!‰MOVE.L„D0,DATE�Give�date�to�exec ŠBRA.S‚GO_TIMER *H*‚If�we�come�here,�one�of�the�fields�read�from�the�clock�chip�is�whacko.*‚Set�system�time�and�day�to�0.*1RANGE_ERR�MOVE.L�TIME_LEFT,NSE†Time�of�day�<--�0.ŠCLR.L‚MIDNIGHTŠMOVE.L�#0,DATEŒDate�<--�0. **ˆNow�start�timer�ticking*KGO_TIMER�MOVEƒTIMINTVA(PC),TIMINTV‚Save�timer�interrupt�interval�in�SYSPAR.4‰MOVE.B�#$A,REGA(A1)ˆSELECT�PERIODIC�ACTIVATION�RATE0‰MOVE.B�REGC(A1),D0‰RESET�ANY�PENDING�INTERRUPTS&‰MOVE.B�#$46,REGB(A1)‡ENABLE�THE�TIMER.‰ADD.L‚#6,A7�REMOVE�'BE'�AND�BUS�ERROR�ADDRESS‰RTS˜BACK�TO�INIT*�DAY�NUMBER�WHERE�DAY�1�=�JAN�1�1980***ˆCALL *’BSR‡DATEGO*¦BINARY�GREGORIAN�-�YYYYMMDD*§TO*¦BINARY�ORDINALƒ-�DAY�NUMBER*ˆINPUT'*’D0�=�DATE�TO�BE�CONVERTED�--�YYYYMMDD**ˆOUTPUT#*’D0�=�CONVERTED�DATE‡--�DAY�NUMBER*O******************************************************************************* ‰SECTIONƒ8**ˆNON-LEAP�DAYS�BEFORE�TABLE¥*Ç=DATEDBNL�DC.W�0,31,59,90,120,151,181,212,243,273,304,334,365Œ*Ç*ˆLEAP�DAYS�BEFORE�TABLE©*ÇCTRL1…SET„%00<<5+CTRL1‡Cursor�selection�(we�leave�this�alone).CTRL1…SET„0<<7+CTRL1‰Reserved.  0************************************************,*ƒValue�to�put�in�VMEC1�control�register�2ƒ*0************************************************ 0CTRL2…SET„0<<0�Mask�for�MMU�interrupt�(disable).;CTRL2…SET„0<<1+CTRL2‰Mask�for�'transmitter�empty'�interrupt$*§from�the�2661�connecting�us�to�the*§keyboard�(disable).>CTRL2…SET„0<<2+CTRL2‰Mask�for�'bus�clear'�interrupt�(disable).CTRL5…SET„1<<4+CTRL5‰Mask�for�local�resource�timeout�(enable).6CTRL5…SET„1<<5+CTRL5‰Mask�for�VMEbus�timeout�(enable).;CTRL5…SET„0<<6+CTRL5‰Address�modifier�alteration�(disable).=CTRL5…SET„1<<7+CTRL5‰Board�fail�control�(we're�OK).‚When�this'*§bit�is�0,�SYSFAIL*�is�asserted�on�the *§VMEbus.  0************K ************************************,*ƒValue�to�put�in�VMEC1�control�register�6ƒ*0************************************************ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…When�incorporating�any�drivers�during�SYSGEN„<<<<<<<?*‚>>>>>>>…that�require�memory�allocated�for�them�as�perƒ<<<<<<<?*‚>>>>>>>…the�driver�package�instructions�-�this�is�theƒ<<<<<<<,*‚>>>>>>>…spot�the�file(s)�go�into!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…This�is�also�the�spot�for�code�for�a�driver…<<<<<<<>*‚>>>>>>>…that‚requires�other�types�of�initialization,ƒ<<<<<<<0*‚>>>>>>>…such‚as�clearing�an�interrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGE�IT�HERE—<<<<<<<*<*ˆWhen�you�write�the�code�that�is�to�be�merged�here,�wrap�it*ˆaround�with�the�following:*:*ˆAt�the�beginning,�with�DRVRxOUT�referring�to�your�unique*ˆlabel,�put�this�code:*'*‹PEA„DRVRxOUT(PC)„IF�BUS�ERROR�OCCURS,*¢RETURN�OR�GO�ON�TO�NEXT*¢DRIVER'S�INITIALIZATION**‹MOVE.W�#'BE',-(A7)…SAVE�'BUS�ERROR'�FLAG*9*ˆThen�insert�the�code�to�do�what�you�need�to�do�for�this*ˆparticular�driver.**ˆAt�the�end,�put�this:***‹LEA„6(A7),A7ˆREMOVE�BUS�ERROR�FROM�STACK*DRVRxOUTƒEQU„**=*ˆIn�this�way,�if�the�code�for�one�driver�causes�a�bus�error,.*ˆthe�code�for�other�drivers�will�be�executed.*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:‚The�following�conditionals�are�order�dependent.„**3*„**‹Do�not�change�the�order!‚Local�drivers�1st.‡**9*„**‹The�order�determines�device�number�(HD00,PR,�etc)‚***„**‹for�most�items.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚The�VME316�has�no�driver.‚It�has�an�initialization�module�that�isJƒ*‚merged�into�SYSINIT.RO.‚The�include�file�below�defines�the�I/O�channel.ƒ*ƒ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****************************************************************************@*‚This�file�contains�all�board/system�dependencies�for�VME/10.Œ*&*‚It�is�called�from�"&.VERSADOS.CD".¦**Ê*E*‚The�user�should�not�have�to�modify�this�file�except�under�extreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ON�BOARD�RAM�ADDRESSES*>*†VMEbus�drivers�require�the�following�target�system�dependentB*†variables�to�be�defined�when�the�macro�file�DUALPORT.MC�is�used:<*†Note�that�the�ONBD$HI�parameter�may�vary�on�the�VME110�and<*†and�VME101�systems�depending�on�the�size�and�number�of�RAM<*†chips�used�on�the�processor�card.‚The�values�shown�are�the?*†minimum�requirements.�Modify�that�parameter�to�match�your�own*†system�if�different.**;ONBD$LOƒ=�$0‹Low‚value�for�on-board�ram�(as�seen�by�driver)@ONBD$HIƒ=�$5FFFF‡High�value�for�on-board�ram�(as�seen�by�driver)CRAM$SQ„=�$D00000†Difference�between�on-board�ram�address�as�seen�by*˜driver�and�device.JOFFBD$LO‚=�\ONBD$LO+\RAM$SQ�Low‚value�for�on-board�ram�(as�seen�by�device)KOFFBD$HI‚=�\ONBD$HI+\RAM$SQ�High�value�for�on-board�ram�(as�seen�by�device)L  FMSG‰******************************************************************MSG‰**ˆAddresses�of�timer,�etc.FMSG‰****************************************************************** !TIMER…=�$F1A081†Address�of�timer.2CLOCKFRQ‚=�0ŒNumber�of�clock�ticks�per�millisecond"PANEL…=�$0‹Address�of�front�panel.5TRCFLAGƒ=�0ŒTrace�flag.‚Zero�implies�don't�trace.‚The/*˜setting�of�bits�in�the�TRCFLAG�parameter�will1*˜control�which�events�cause�an�entry�to�be�built*˜in�the�trace�table.*˜Bit�#�in�TRCFLAG†Event *›15‘TRAP�#1*›14‘I/O�interrupt�not�claimed*°by�user�task.*›13‘Timer�interrupt.*›12‘User�trap�(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/O�interrupt�claimed�by *°user�task*œ8‘Return�from�LOADMMU*œ7‘Simulated�interrupt ƒ6 Œ2 ”- œ*œ6‘SYSFAIL�interrupt.* ?SYSFAILƒ=�0ŒDetermines�whether�or�not�the�operating�system�will5*˜be�interrupted�when�SYSFAIL�is�asserted�on�the�bus.2*˜Some�intelligent�boards�will�assert�SYSFAIL�when0*˜they�experience�a�failure�of�some�kind.‚If�you5*˜have�such�boards�in�the�system,�AND�THE�DRIVERS�FOR3*˜THESE�BOARDS�HAVE�SYSFAIL�HANDLERS,�then�you�will2*˜probably�want�SYSFAIL�interrupts�enabled.‚If�the4*˜appropriate�SYSFAIL�handlers�are�not�written,�then5*˜taking�a�SYSFAIL�interrupt�will�hang�up�the�system,0*˜so�you�would�want�SYSFAIL�interrupts�disabled.!*š0�=�disable�SYSFAIL�interrupts. *š1�=‚enable�SYSFAIL�interrupts. FMSG‰******************************************************************.MSG‰**ƒLocal�terminal/printer�device�addresses#MSG‰**ƒShort�I/O�space�base�address&MSG‰**ƒShort�I/O�space�address�offsetsFMSG‰****************************************************************** %KBDOVRDƒ=�0ŒKeyboard�override�option:)*˜0�=�keyswitch�on�front�panel�is�enabled.*˜1�=�keyswitch�override�-�if�key�is�in�locked)*œposition�the�keyboard�is�still�enabled.0*˜NOTE:‚This�parameter�is�only�valid�with�VME/10!*Ÿunits�with�the�panel�keyswitch. 1SIOBASEƒ=�$FF0000†Base�address�of�Short�I/O�space****************************************************************‰Vector�numbers£**>***************************************************************-IOCVEC1ƒ=�$41ŠI/O�channel�interrupt�1�vector.-IOCVEC2ƒ=�$43ŠI/O�channel�interrupt�2�vector.-IOCVEC3ƒ=�$44ŠI/O�channel�interrupt�3�vector.-IOCVEC4ƒ=�$45ŠI/O�channel�interrupt�4�vector.**IOCLVL1ƒ=�2ŒI/O�channel�interrupt�1�level.*IOCLVL2ƒ=�4ŒI/O�channel�interrupt�2�level.*IOCLVL3ƒ=�5ŒI/O�channel�interrupt�3�level.*IOCLVL4ƒ=�6ŒI/O�channel�interrupt�4�level. FMSG‰******************************************************************3MSG‰**…Descriptive�info�about�this�operating�systemFMSG‰****************************************************************** 6TIMSLICƒ=�2ŒNumber�of�timer�interrupts�per�time�slice.=TIMINTVƒ=�16‹Number�of�milliseconds�between�timer�interrupts.7*˜(Not�used�on�VME/10.‚It�is�included�for�documentation/*˜only.‚The�actual�value�used�for�the�VME/10�is*˜15.625�msec.)?ROMEADDR‚=�$0‹ROM�end�address�--�defined�by�user�for�a�ROMmable,*œsystem.‚Set�to�$0�if�not�a�ROMable�system.-*œThe�ROM�start�adM dress�(ROMSADDR)�is�defined3*œin�the�.RMS.CI�file�and�has�a�value�equal!*œto�the�initial�program�counter.@MEMEND1ƒ=�$2FF00‡Ending�addr�for�on-board‚memory�must�be�<�this.8MEMEND2ƒ=�$2FF00‡Starting‚addr�for�off-board�memory�must)*˜be�>=�this.‚Not�applicable�for�a�VME110EMEMEND3ƒ=�$280000†Ceiling�addr�for�off-board�memory�(must�be�<�this).;WHERLOAD‚=�$0‹Memory�address�where�boot�file�will�be�loaded1*˜Nonzero�on�VM01�only.‚If�nonzero,�VERSAdos�will"*˜be�moved�at�initialization�time.6CACHEF„=�0ŒNot�used�by�VMES10�(needed�by�&.INITDAT.AG)8NOTNT…=�0ŒNot�used�by�VMES10�(needed�by�EET.VERSADOS.CI) EMSG‰*****************************************************************)MSG‰**‚Parameters�about�table�sizes,�etc.EMSG‰***************************************************************** 1PAGESIZE‚=�256ŠSize�in�bytes�of�a�page�of�memory.*ASN‡=�127Š#�of�address�spaces GMSG‰*******************************************************************=MSG‰*ƒCopy�C8OC.SYSPAR.RO�into�&.SYSPAR.RO�to�make�it�genericAMSG‰*ƒfor�.LG�files�and�possible�for�sysgening�more�than�1�systemMSG‰*ƒper�account�#GMSG‰******************************************************************* "=COPY‡CAOE.SYSPAR.RO,&.SYSPAR.RO;Yéééééé**ˆVMES10.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VMES10.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/SYSTEM�DEPENDENCIES�are�included�from�the�&.VERSADOS.CD�file.�---;*�VMES10.SYSTEM.CIƒadd�processor�board/system�dependencies,(*˜including�local�terminals�and�printers6*�&.CNFGTASK.CI†add�O/S�task�conM figuration�for�ROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=�1Œ#�of�terminals�on�VMES10�serial�ports�(TERM);�max=�1 O*------------------------------------------------------------------------------2NORWIN„=�1Œ#�of�RWIN1„Winchester�controller�boards* IFGTˆ\NORWIN)ƒCONTWIN1‚=�"0"Š1st�RWIN1�is�controller�08ƒNHRWIN$1‚=�1Œ#�of�hardƒdisk�drives�on�1st�RWIN1;�max=�2:ƒNFRWIN$1‚=�1Œ#�of�floppy�disk�drives�on�1st�RWIN1;�max=�2BƒRWIN0$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�RWIN1,�drive�0BƒRWIN1$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�RWIN1,�drive�1DƒRWIN2$1ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�1st�RWIN1,�drive�2DƒRWIN3$1ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�1st�RWIN1,�drive�3 )ƒCONTWIN2‚=�"1"Š2nd�RWIN1�is�controller�18ƒNHRWIN$2‚=�0Œ#�of�hardƒdisk�drives�on�2nd�RWIN1;�max=�2:ƒNFRWIN$2‚=�0Œ#�of�floppy�disk�drives�on�2nd�RWIN1;�max=�2 ¤) ­* µ. ½(BƒRWIN0$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�RWIN1,�drive�0BƒRWIN1$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�RWIN1,�drive�1DƒRWIN2$2ƒ=�"'F5DDDSI'"‚Type�of�1st�floppy�disk�on�2nd�RWIN1,�drive�2DƒRWIN3$2ƒ=�"'F5DDDSI'"‚Type�of�2nd�floppy�disk�on�2nd�RWIN1,�drive�3ƒ*Gƒ*…NOTE:‚You�can�not�mix�5-1/4"�and�8"�floppies.‚Pick�one�or�the�other.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=�0Œ#�of�VME050ƒSystem�Controller IFGTˆ\NVME0507ƒNT050$1ƒ=�0Œ#�of�terminals�on�the�VME050�board;�max=�26ƒNP050$1ƒ=�0Œ#�of�printers‚on�the�VME050�board;�max=�1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=�0Œ#�of�MVME300‚IEEE�488�GPIB�controller�boards O*------------------------------------------------------------------------------ANVME315ƒ=�0Œ#�of�MVME315‚winchester/floppy�disk�controller�boards IFGTˆ\NVME315+ƒCONT3151‚=�"3"Š1st�MVME315�is�controller�38ƒNH315$1ƒ=�0Œ#�of�hardƒdisk�drives�on�1st�VME315;�max=�2:ƒNF315$1ƒ=�0Œ#�of�floppy�disk�drives�on�1st�VME315;�max=�4 AƒM3150$1ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�1st�MVME315�boardAƒM3151$1ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�1st�MVME315�boardCƒM3154$1ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�1st�MVME315�boardCƒM3155$1ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�1st�MVME315�boardCƒM3156$1ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�1st�MVME315�boardCƒM3157$1ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�1st�MVME315�board +ƒCONT3152‚=�"4"Š2nd�MVME315�is�controller�48ƒNH315$2ƒ=�0Œ#�of�hardƒdisk�drives�on�2nd�VME315;�max=�2:ƒNF315$2ƒ=�0Œ#�of�floppy�disk�drives�on�2nd�VME315;�max=�4 AƒM3150$2ƒ=�"'H5WIN15'"‚Type�of�1st�hardƒdisk�on�2nd�MVME315�boardAƒM3151$2ƒ=�"'H5WIN15'"‚Type�of�2nd�hardƒdisk�on�2nd�MVME315�boardCƒM3154$2ƒ=�"'F8SDDSM'"‚Type�of�1st�floppy�disk�on�2nd�MVME315�boardCƒM3155$2ƒ=�"'F8SDDSM'"‚Type�of�2nd�floppy�disk�on�2nd�MVME315�boardCƒM3156$2ƒ=�"'F5DDDSI'"‚Type�of�3rd�floppy�disk�on�2nd�MVME315�boardCƒM3157$2ƒ=�"'F5DDDSI'"‚Type�of�4th�floppy�disk�on�2nd�MVME315�boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=�0Œ#�of�MVME316‚VMEbus�to�I/O�channel�interface�boards;*˜max=�1I****�NOTE:‚Do�not�use�VME316�in�this�system,�as�I/O�channel�is�already�on2****ˆthe�CPU�board!‚See�"&.DRV316.CI"�for�details. 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=/*‚Set�Arg5�so�this�file�can't�be�rerun�directly�w/o�setting�proper�args!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*�INVOCATION�ERROR!�Insufficient,�null,�and/or�invalid�argument�specified!ƒ=/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=/*----------------------------------------------------------------------------+=/*‚Copy�all�VM04�specific�files�for�sysgen=/@„\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=/*‚Copy�all�the�rest�of�the�root�files�for�sysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM04.COPYSGEN.CF‚completed.‰Have�a�nice�day!=/*N=/*‚No�"NOARG"�and�"=END"�because�independent�driver�release�items�may�follow!ééééééé4INITIO„IDNTƒ5,1�RMS68K�I/O�initializer�for�the�VM04.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO�--�RMS68K�I/O�INITIALIZER�FOR�THE�VM04�BOARD.†******É***J***…ENVIRONMENT:‚Part�of�the�RMS68K�exec�for�the�Motorola�68000�family.***(***‡Copyright�1983�by�Motorola,�Inc.¢******É***D***…FUNCTION:‚Routines�from�this�module�are�called�by�the�RMS68K‡***E***‡routine�INIT�during�system�initialization.‚All�board-specific„***.***‡initialization�is�done�in�this�module.œ******É***G***…NOTES:‚This�module�is�SUBSed,�ASMed,�and�LINKed�at�SYSGEN�time.„***?***‡All�modules�will�run�at�level�7�and�in�supervisor�mode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revision�history�(add�new�changes�to�top).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------C*†2/27/85ƒSJF„Changed�timer�initialization�to�use�TIMINTV�value�for+*—the�number�of�milliseconds�between�ticks.*…10/20/84ƒACC„Initial�writing.** * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutine�to�initialize�the�MMU.,ŠXDEFƒTIMERSTŒRoutine�to�start�up�thO e�timer.3ŠXDEFƒINITIO�Routine�to�set�up�all�the�other�board-*§specific�hardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLER�Routine�to�crash�the�system.*…Parameters�from�INITDAT:-ŠXREFƒTIMSLICŒ#�of�timer�tics�per�time�slice.(ŠXREFƒTIMERA�Addr�of�timer�chip�(Z8036).4ŠXREFƒTIMINTVA‹#�of�milliseconds�between�timer�tics.4ŠXREFƒCLOCKFRQ‹Frequency�of�clock�(to�set�up�timer).*…SYSPAR�variables:6ŠXREF.S�MMUHEREŒAddr�of�MMU;�0�if�we're�not�using�one.ŠXREF.S�DATE�Date. â4 ëR0ŠXREF.S�TIMESLIC‹#�of�timer�tics�per�time�slice.7ŠXREF.S�TIMINTVŒTime�interval�between�timer�interrupts.+ŠXREF.S�PTMADDRŒAddr�of�timer�chip�(Z8036). *„Others:.ŠXREFƒCRASHSAV‹Place�to�SAVE�info�if�we�CRASH.  **‚Included�files:**‰&.UTILITY.MC*‰Z8036.Z8036.EQ*‰VM04.CTRLSTAT.EQ*‰M68020.CACR.EQ*ŠNOLISTŠINCLUDE�&.UTILITY.MCŠINCLUDE�Z8036.Z8036.EQŠINCLUDE�VM04.CTRLSTAT.EQŠINCLUDE�M68020.CACR.EQŠLIST ‰SECTIONƒ8ŠPAGEO*v*****************************************************************************O**********************************************************************************É***/***…ROUTINE:‚INITMMU�--�INITIALIZE�THEˆMMU.•******É***?***…FUNCTION:‚Verifies�the�existence�of�theˆMMU�and�sets�it…***H***‡up�for�use�by�RMS68K.‚The�VM04's�MMU�is�not�currently�supported.�******É******…NOTES:¾******É***E***…REGISTER�USAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SR�hi„SR�lo�(CCR)…******‡D:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD�******‡A:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRY�CONDITIONS:³***+***‡Supervisor�mode,�interrupt�level�7.Ÿ******É***-***…EXIT�CONDITIONS�DIFFERENT�FROM�ENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠOPT„BRS INITMMU: ŠRTS  ŠPAGE O**********************************************************************************ˆSTART�TIMER„(Z8036�TIMER)**N*********************************************************************************ˆCounter�Mode�Spec�Reg*CSC†SET‡$00‘Initialize/CSC†SET‡1<<7+CSCŒEnable�Continuous�Single�Cycle***C1EN…SET‡$00‘Initialize�it#C1EN…SET‡1<<6+C1EN‹Enable�Counter�1*)*ˆset�up�control/status�reg�for�Counter�1* C1SR…SET‡$001C1SR…SET‡0<<0+C1SR‹This�is�a�read-only�status�bit*¦shows�count�in�progress,C1SR…SET‡1<<1+C1SR‹This�is�a�write-only�bit,*¦trigger�enabledééééé