IMD 1.17: 11/11/2016 16:54:03 File generated by the HxC Floppy Emulator software v2.8.9.4  X- ؋FFFv3Pvv^FFFF= rߌȎ.OCopyright 1980, 1981, 1982, 1983, 1984 Intel Corporation program_version_number=V6.0program_name=iAPX 86, 88 Bootstrap LoaderX P.XYu P. vǹ4^&t&W&g&G>_u &S&/SYSTEM/RMX86UFfs1PP^&7Y:1466055iRMX 86F03 (VOL1 N 2 05 1   u.^GFF ^GFFf뺀>fs ^&?t F24]U>u.SP8.BDB&gOBDa6]UNN]UJ&FJF~t[FJJ&FJ t~t7NJ&w>F^YJ&FJ@JN럋]U_~L7t@~htA"^s~?t@~ytA"_FF&F$F "`FPR t&t t u ,PR^&?/u GPR$.06&W1P.SS^$1 t.0FY.&G&GT&G $1(&w&wQ*,6TP.SP/V1V;r܋.&8tLPS.@P5s62PRV.&TP&?/uGPRvVuw6TPa8X>XuX3hq6>hudXv>hpuL>6vh $iFj>iu`4:.8р>i@u><@봀>hu@t`:8X>hu+HF>6v~F&GFH>huaH`FbJL>6vGJ&GJLJZ\bJLJ;6\u;Zsh>6tj>at"P S6^`s8P^ S$P S6^]UQQ u~u!#P S6^>|u{u FFF F^6&6p6n^SSVnpu|tvx6x6v6(vx6&6x6v^SSvxvx(;~uezCz% '0% ff@%   s::t%   *)FV.Sv$+FVs.6$Pv.v0VFlnp6p6n6(npr|z~]UFf؋ʋFf‹]UFf‹]UF3vFv،]UFVv] 0123456789A%S T T ,%V W W %X Y Y (%` a a ޥ ޥ ޥ P ޥ ޥ ޥ %ޥ   %  6t抄;uJt@tzvx6x6vQKvxt;$u|(;~u r~~l;ru=l@lr|np6p6n6(np$;u;r)]U~u6&6,6*PS2Pvv6FVl$&(P`FV;Vu;Fs )FVlvv$&(P_rlnp6p6n6(np6r6(np6r$&(PN~+N~$9Vu9Fv.Sv$% * * 9:%+ 6 6 < >%7 C C F$$@H%D O O h0p2ޥ ޥ ޥ ޥ ޥ ޥ Pޥ ޥ ޥ ޥ ޥ ޥ %b   fNN% , % K0% @ % % E% E% % % % h% 4% j%   nl%   'o(% ! !  %ަ ަ ަ <% > %  % l  %  P% `% (% 8% %   |?%   d%   fi% N% % Ϧ Ϧ %4( h6%Ц ܦ ܦ 8")19:#bs1.lib$bcico.obj%bs1.csd&bs1.a86'bserr.a86(b204.a86)b206.a86*b208.a86+b215.a86,b218A.a86-b251.a86.b254.a86/bsasi.a860bscsi.a861bcsdm.a862bs13bs1.mp2AR R VRRV!R(R1R5RCREV[R]VfRvRĉRȋVđRȓVtBS1MDSȈASM86.86 V2.0wDATADATACODECODE??SEGrhh"hEBSERROR POLLTIMES DEVICE_TABLEAUTO_DEVICE_SELECT DEFAULT_FILEMANUAL_DEVICE_SELECTRU>tu ]Q. F tbtb~F &%:t>t].ti]QFN~&= w R?SPACEMAPR?FNODEMAPR?BADBLOCKMAPR?VOLUMELABELinstal.csdhi.030 hi.lib hutil.lib loader.031 loadrp.lib loadrl.libloadro.libloadra.libljbcfn.libljbcfa.libljbcfs.libsdb.030sdb.libboot.060bs1.incbs1dev.incbserr.incb204.incb206.incb208.incb215.incb218A.incb251.incb254.inc bsasi.inc!bscsi.inc"bcico.inclĀ VERSIONV6P06ASM86.86 V2.0wCODECODE??SEGhh9=Copyright 1980, 1981, 1982, 1983, 1984 Intel Corporation tBS1GF!ASM86.86 V2.0wDATADATACODECODE??SEGrhhYh? LINE_BUFFERCOCIPROMPTCAN_ECHOBS_ECHO DEFAULT_FILE֐ GET_FILE_NAMEm.PS$t[<u tKS <uS.QCS.7[YĈC< t < t SP!؀? t? uȀ? uCð P Pqu@^N .\. ]V@AY R RRR VCRJRNuYėYĥRȧVļRŊtBS1ADSԈASM86.86 V2.0wDATADATACODECODE??SEGrhhKh#BSERROR POLLTIMES DEVICE_TABLEAUTO_DEVICE_SELECT۠OU>tu ]Q.<.(F0v3PPPu]UXYX*Y 9XL@XLHXOY[XdXDyRĒRȔVġRȣVYXYYY YYYY&Y*Y.Y2Y6Y:Y>YBYGYlRŃYŠYRVXR8REXxY }YƍYƑX-ʓ\ƗY ƞYƣYtBS208GA; ; *-*-* INSTAL.CSD *-*-* ; ; Submit file to install the iRMX 86 R6.0 Human Interface, ; Application Loader, System Debugger and Bootstrap Loader. ; ; This file should be executed by the System Manager (id 0 - super) ; ; Invocation: submit :logical_name:instal(:logical_name:) ; ; Where: logical_name is the logical name the diskette drive is ; attached by. ; ; copy %0h* over :sd:rmx86/hi ; copy %0l* over :sd:rmx86/loader ; copy %0s* over :sd:rmx86/s2BSERRORTRACK_SIZE_204 DEV_GRAN_204BASE_204% DEVICEREAD204  DEVICEINIT204< @AϠu5 ?55Q& F& u&BJ쨀uBJ$^YU..2.YÊtA.;r.㍷*ݷ6t6 tP.쨀tB$@Xu Qt Q$< ttu$hH}(;BSERRORBASE_208% DEVICEREAD208- DEVICEINIT208 @AϠ]\  F֠  FŠ $ SM86.86 V2.0w(CODE CODE_BS208DATA DATA_BS208??SEG>hHg(&BSERRORBASE_208TRANSLATE_FLOPPY+DEVICEREAD208GENDEVICEINIT208GENC @AϠU]\&~Q.>.YP.쨀tB$@Xu Qt Q$< ttu$u @V:&t/)Xt^ t Q] (]\Y]Y]Y ]wY}RĆYēYėYĥXĩY>ĮXĸY2ĺY>ľY4Y+YYGXdXdYGX$YBYGX$)X.RőY4ŘRŝY(ťRŰRŸRY(X$Y*YFY+Y(Y1Y2YGY4Y6Y(Y Y2YY+YYB%Y/Y3YF6Y=YGBYHYCNYRYYYF]YdY(iYpX4vY6ƄXƑYBƜYFơY.ƥY0ƪY(ƲY1ƹY2ƽY4Y+YYYYY)R7YAY^YŇRɉVōYšXŨRR X@YEYTYYX[\_Y jY mYpYsYNtBS215GASM86.86 V2.0w(CODE CODE_BS215DATA DATA_BS215??SEGBhHHŘ(U-BSERROR DRTAB_215 DEVICE_215 WAKEUP_2151% DEVICEREAD215} DEVICEINIT215" @AϠMMMMP PP P  Q.t@YP.2F.&<r  .&<s6,6& u>uu>t8>t8uF&<r &&;u.tu6M]U.FF tHuAPPPP tT660Š2R3ҊX>t >tȢ t Q>t\] ͜]\Y]Y]Y ]7Y=RFYSYWYeXiY>nXx%*DEFINE (b206(base)) ( name b206 public base_206 code_bs206 segment byte public 'CODE' base_206 dw %base code_bs206 ends end) F"+ E. DH6Q Yt ⡹Q>t] U..P.ZYXU..&&&6.>..3.t34QR.>.ZYXÊtL tG.;r$. u㍷*ݷ t 6U..&&&6.>..3.t3.2F.&<r  .&<s6 ,6&ut{uu8>t=\uߠF&<r &&;u)tt>u6)]U.F V =2R3ҊY2zY>~Y4ĂY+ēXĘRĦYįXĴXĸYĽXXRYY2Y>Y4RY(RR"R,Y(2X,5Y*9YOBY+GY(NY1RY2TYIXY4\Y6gY(nYuY2wY{Y+ńYŇYBŎYŘYŜYOşYŦYŬYCŲYŶYŽYOYX$Y(Y>YBY6YGYYFXYIY2Y4YYY>%Y.+YI0R2V:Y2>Y4BY2DY>HY4LY+TY4XY2`YBkYOpY.tY0{Y(ƂY(ƊY1ƑY+ƠRʢVƦYIt BS218AGASM86.86 V2.0w*CODE CODE_BS218ADATA DATABhH(y"BSERROR DEV_GRAN_251BASE_251% DEVICEREAD251 DEVICEINIT251O @AϠ}QHuYQYUS.. װ ׊װ ؇װ ׊:t3sװ װ װ쨀t3C oװUhc^ YTOװH 쨀u7u.[]U.SV^. Q. װ F װ쨀tt&C7tY⫹QQY^[] QKuY>u @V:&t/)F"+ E6Q P. t .0u6.>.X#X YX R*R:R.YP.쨀t.$@Xu Qt Q$< ttu$t. t.2] U..t`2uX. 2.0u u2t*$YAYFRORtBS251GASM86.86 V2.0w(CODE CODE_BS251DATA DATA_BS251??SEGAϠ@uPXU.6.>..tFȰӰ׹'uӰt@F FN FF~ytװ d.].K>ְ>t P.U..2؟.PvPPr3..:r .uhPvPPs"$<(u 2].UPvvv ys PF NӋ؋ʺ.f$~tFFFn^&tF^&G"F.W;Vv,VVu&O":t&O ;vz+ʉNs^&G$<u1&9G v(~Ns FFFF^& uN^&GP$PN _Z ˆF^.GFFNF^.ON.G FF1^ &F1B&WF^&GtF^ &N1P&WX1&v&^ &GF&OPF*fFY;w &GFF^&Gv &D^F&)&G^&G:Fu&G:Fuߜ\|\\6\=\P&G:Fu &G;Ft1F^&GF&GF&GF&GF&G F&GFN FF~ytװ d.].K>ְ>t P.U..2؟PvPPs"$<(u g].UPvvv s PF NӋ؋ʺ.f$<(t] v]RR#R(RġRįRĿYYRVXRR)Y8YFYQXnRpVŖRŰYtBCSDM ASM86.86 V2.0wCODEVICEINIT251 DEVICEREAD254 DEVICEINIT254DEVICEREADSASIDEVICEINITSASIDEVICEREADSCSIDEVICEINITSCSICOCITRANSLATE_FLOPPYD%*DEFINE (b208(base)) ( name b208 public base_208 code_bs208 segment byte public 'CODE' base_208 dw %base code_bs208 ends end) <(t] y]RR#R(RġRįRĿYYRVXRRR&R/R8R^YmY{YņXţRɥVRYtBSCSIASM86.86 V2.0w(CODE CODE_BSCSIDATA DATA_BSCSI??SEGhH (g@CONTROLPORT_SCSI CPORT_SCSI BPORT_SCSI APORT_SCSIBSERROR'DEVICEREADSCSIMDEVICEINITSCSI @AϠ@uPXU.6.>..tFȰӰ׹'uӰt@F  ]#tt VERSIONV6P0BS1GFBS1MDSBS1ADSBS204BS206BS208BS208GBS215BS215GBS218AGBS251BS254BSASIBSCSIBCSDMBTFLOPE "vp puo) 4?BK9P7V]$cZdO GET_FILE_NAMEMANUAL_DEVICE_SELECTAUTO_DEVICE_SELECT DEVICEREAD204 DEVICEINIT204 DEVICEREAD206 DEVICEINIT206 DEVICEREAD208 DEVICEINIT208DEVICEREAD208GENDEVICEINIT208GEN DEVICEREAD215 DEVICEINIT215DEVICEREAD215GENDEVICEINIT215GENDEVICEREAD218AGENDEVICEINIT218AGEN DEVICEREAD251 DECODE??SEGhh COCI6|tBTFLOPPLM86 V2.304/03/84 00:41:5ܖ6STACKMEMORYCODEDATACONST BTFLOP_CODE BTFLOP_DATAzh@k@T&ݘD{|m{ |Uuqz{X{ Hum  tr TRANSLATE_FLOPPY2 %S0)  p G5F 3<2.0UF^&?uv&L &&GFVFF^&G FBCICOASM86.86 V2.0w6DATADATACODE BOOT_DEV_INITCODECODE??SEGCGROUPQhh,hhBSIO_TX_INT_RESET BSIO_RXRDY BSIO_TXRDYBSIO_STATUS_PORTBSIO_DATA_PORTBSER_INIT_TABLEBDEV_INIT_STRUC_LEN BDEV_INIT_LENBDEV_INIT_TABLEs T% BTIME_OUTCOCICINIT DAǠ0Q tHuY....u.=t.6Ս6.\S.T.D.| u.| t.| t$.T }.T 3.T gh_ ts ͎  tsː ATTACHANDCATALOGDIRECTORY=LOCALDELETECONNECTION RQSATTACHFILE RQSCATALOGCONNECTION' DEàHUQQ^S^SF^&?u vP^ S^S^&?tv] -<tHCCJOBɈPLM86 V2.304/03/84 01:36:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHiH TRD[[{|ez{Z{ J{|mH MINMEMORY MAXMEMORY EXCE; ; *-*-* BS1.CSD *-*-* ; ; Generate the iAPX 86, 88 Bootstrap Loader V6.0 first stage. ; ; Invocation: submit bs1(first stage location, second stage location) ; ; asm86 :f1:bs1.a86 macro(90) object(:f1:bs1.obj) print(:f1:bs1.lst) asm86 :f1:bserr.a86 macro(50) object(:f1:bserr.obj) print(:f1:bserr.lst) asm86 :f1:b204.a86 macro(50) object(:f1:b204.obj) print(:f1:b204.lst) asm86 :f1:b206.a86 macro(50) object(:f1:b206.obj) print(:f1:b206.lst) asm86 :f1:b208.a86 macro(50) object(:f1 t s.  ts0 4 ts2 tsc[ ts5ǎ ts7  ts9;CREATEINITIALPROGRAM 6 DELETEHIUSER8 CREATEHIUSER:ҌtHJOBATTRIBUTES HRESIDENTCLISTACKSIZE STARTJOB DELETEJOBTREELOCALDELETECONNECTIONLOCALDELETESEGMENTRGLOBAL MOVESTRINGTERMINALTABLET USERJOBTABLET JOBEXITMAILBOXT RQCREATEIOJOB RQCREATEUSER! RQDELETEUSER# RQSATTACHFILE%RQSCREATEDIRECTORY'RQSCATALOGCONNECTION)RQSET* VERSION3P0PLM86 V2.304/03/84 01:34:2ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH,ߘH TD[[ DEà0Copyright 1981, 1982, 1984 Intel CorporationutHATCATPLM86 V2.304/03/84 01:35:1ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHDǘH T"D[[b {[uqf ts؎z{V{ Fu k ю ts VM D; 2) [U..t.]U..tF.]ɜQ XX$X1X>DRRR RRR%R]tPHANDLER EXCEPMODE TASKFLAGSJOBFLAGS yhlo qoxb { Qu guo tsǎȎ tsʎ\ tsɎ\ tsǎwobur  tsun t s Îǎ t s ˎȎ ts"ǎ t s$ǎǎ t s&Ŏ  ts( 5 ts* t s ,:b208.obj) print(:f1:b208.lst) asm86 :f1:b215.a86 macro(50) object(:f1:b215.obj) print(:f1:b215.lst) asm86 :f1:b218a.a86 macro(50) object(:f1:b218.obj) print(:f1:b218.lst) asm86 :f1:b251.a86 macro(50) object(:f1:b251.obj) print(:f1:b251.lst) asm86 :f1:b254.a86 macro(50) object(:f1:b254.obj) print(:f1:b254.lst) asm86 :f1:bsasi.a86 macro(50) object(:f1:bsasi.obj) print(:f1:bsasi.lst) asm86 :f1:bscsi.a86 macro(50) object(:f1:bscsi.obj) print(:f1:bscsi.lst) ; link86 & DEFAULTUSER+ RQSLOADIOJOB-RQCREATESEGMENT/RQCATALOGOBJECT1RQUNCATALOGOBJECT3HCLIINIT4h DEà$4 HOME' TERM U^&GFF^&G F&>uG^&w&wP. P&wPPRP.6. P6^S8FP^&w&wP. P&w. P6^S^&G^&?un^&w&w^S^&?u^&wP^S^&GPPP^S^&?u^&w&wP^S^&?ua^&w&wP^S^&?u@^&w&w P^S^&?u^&w&while executing commandtcommand not foundߠwhile loading command;-   EOF FU ƆPFP PFPF~uPFPF~uivPPFP~uvPPFP~umv0PPFPF~uPvP.PFPF~uiv5PPFPF~umPFPF~uuQWvPFPPPPFP~uP^S^&G^&?!uv D>P^S^&G^&?u ^S ^SFP] Ϝ% 9 r Ć ׆( HhDtHCLIVPLM86 V2.304/03/84 01:37:5֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHvH T2ИD[[{|eurz{Y{ Iun{|mul  ts Ў 9 ts ͎F~uvPPFP~,uRPP,PFP몋F tPPRPPyRPPPFPvRPFPƜZ!/MemxĢڌ 6NX euņ tHCNFIOPLM86 V2.304/03/84 01:39:3֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHDHTqD[[{|mwgLENGTHCHAR yΎotb {Uu k ` tENATESTRINGRQCCREATECOMMANDCONNECTIONRQCDELETECOMMANDCONNECTIONRQCSENDCOMMANDRQCSENDCORESPONSE RQEXITIOJOB RQSATTACHFILE"RQSCATALOGCONNECTION$RQSOPEN& RQSWRITEMOVE( RQSREADMOVE*RQSETEXCEPTIONHANDLER,HISIGNON. DEà :$:PROG| PROG  :co: :ci:submit :prog:r?logonk,# 0 5, V3.0: USER = Π2DCopyright 1981, 1982, 1984 Intel Corporation +r&, directory logical name not created ? **iwhile reading commandw&w vPP^S]j39DVZb j ĂĈĔĜ džچ2<S] sUQ^&G tP^S^&?uH^&w ^&w^&G t PFP^&G&D ~])3GZ UFF&8r6&|u$vFFF&E ^&Fu^&8F^&GF&G&L^&O&O DF&GZ&Wv &D &Gv &D&GS^ &G_^&D^ &GFP^S^&G vPrPPvPRPPFPPPFPF~tPPPFPu}v%{% 1; U l xĕěĵÆ؆ 2AO[e v ňōśԌކ]PFPFP~tvPPFPF~uvPPFP~,u@PRPPPvFPFPPPFPF~tmF tPPRPPF~u!F=t t=u7vRP F!u PP vRPPPvPPFPb {OueΎ ts Î tsǎ Î tsŎ  tsЎΎ tsÎ  ts Î ts O ts׎ ts!Ȏ  ts#   ts%  ts'͎  ts)ˎ׎ ts+wao-M tscHCLIINIT/֌ CUSPERROR CONVERTDECIMAL GETUSERID MOVESTRINGCONCATs Ҏz{ P{ @ue{|euc  tsǎ  tsŎŎ t s؎ur   ts   tsɎ tscZ ts؎ 0 ts! 0 ts#[DELETECONFIGCONNATTACHANDGETNUMBER# GETUSERATTRIBUTESU"GETTERMINALATTRIBUTES$k HCONFIGDEVICELOCALDELETECONNECTION MOVESTRINGCONCATENATESTRING RQSATTACHFILERQSOPEN RQSREADMOVE DEàLENGTHCHAR yUV,oW#wH  wp q wp q, Y,,Z[oUSERIDMAXIMUMPRIORITYPASSWORDDEFAULTMEMORYSIZEMAXIMUMMEMORYSIZEINITPROGPATHNAMEPREFIXPATHNAME y`\]Co^k RQHIINITERROR, RQJMERROR,TERMINALMAILBOXTJOBEXITMAILBOXTTERMINALTABLET USERJOBTABLET Z HIINIT ATTACHANDCATALOGDIRECTORY DELETECONFIGCONN ATTACHANDGETNUMBERGETTERMINALATTRIBUTESHSYSTEMDIRECTORYHSYSTEMLOGICALNAMESCREATEINITIALPROGRAM FP^S(^&?uY^&GP P^&G s^&Ge^&GG>P.P^GP.Pt] ؜ 0U^ &G G PPQ> tL^ &G FPP6FFFP^S^SFF^&?uH> tTFt^&G > t:F t^&G> t"^GP.P< t tL] 6`t]ø`P  u>`t]6@6>`P]s/ $'+3<@CH ]UQ^G PP6^S^&?u6S^&Gv&<uhWPRP6V^&?uJ6S^&Gv&<u1PPP6V^&?uv&t6P^SF]+&+KP]b{ĔBhUQQF@f FP^SF^&?u7NF&F&F &P^S^SF] L YlUPP^SP^SFP^- ts.َ ts0Ŏ L t,s2: ts4 ts6Վ ts8  ts: P ts< - t,s> Î ts@- tsB- tsD 3 tsFՎ tsH tsJ H tsL{ |Ub tNsO\uN&Q tsRw ] T user/b4UQQ6PPFPF u< tً]û &Ӡ56UQQF,0F< wF NFF]+GgU^&^&;Fs(<,t< tt^&&@&]B4LU6]ɜ  rkU.FP-PP^SFP-P^S^SFP^S^&?uPPPS^&?t]Ŝ0=@S<6#UQQF^SFP~u Fu^F]cUUFPPP^SFPP^ S^SCREATEHIUSER DELETEJOBTREE!RGLOBAL#RTERMINALTABLE% RUSERJOBTABLE'RJOBEXITMAILBOX)RHIJOB+ MOVESTRING/WAITCONNECTION1WAITJOBRESPONSE3 RQAATTACHFILE5RQAOPEN7 RQCREATEUSER9RQAPHYSICALATTACHDEVICE;RQSETDEFAULTUSER=RQWAITIO?RQCATALOGOBJECTARQCREATESEGMENTCRQCREATEMAILBOXERQSETOSEXTENSIONGRQSETEXCEPTIONHANDLERIRQGETTASKTOKENSKqRQSGETFILESTATUSM RQGETTIMEP RQSETTIMES RQENDINITTASK HIENTRY HRESIDENTUSERTERMINALXHRESIDENTUSERATTRIBUTES_i DEà SYSTEMi terminalsrPU[[b {[uqz{X{ Hum  ts ю tsc{|mb t s H ts̎w ] ȎLENGTHCHAR yofw ] ÎLENGTHCHAR yoab tsŽu h  tsَ ts w o"Xw o$Vw o&Tw o(Rw o*P{|eu,H SFvPP^SP^SWPP^SP^SPvP^SFFFFFP^SFWP^SvPP^SƆtpP^S^&?tFNF.;FrA^&@FFv^S^S^S^&@FFFsPuPPP^S1^&?u"uPPP^S ^&?t.>tP^FG PPP^S^&G SGP^&uPQPK " .8BNQY cor| ts<  ts>Ŏ ts@  tsB  tsD  tsF ! tsH & tsJŎ tsL! tsN tsP tsc : tsS tsU tsW\QUERY.TTICOTASKRTICITASKBRCDELETECOMMANDCONNECTIONVCCREATECOMMANDCONNECTIONXHCLSIZELOCALDELETECONNECTIONLOCALDELETEMAILBOX r  Vbt@l !!&)-8CHNT^n~ĈđĕĞĥ Įķ̝՝ޝ tHWTJRPLM86 V2.304/03/84 01:43:1ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH_H TD[[b {[uqf ts؎{|eumz{ T{ Du i  ts  D tsWAITJOBRESPONSE'LOCALDELETESEGMENTRQRECEIVEMDEà V R?h$INT?  ]L\ ]U\ :STREAM: UFF& N^ t&F&s F&(F^&FsF&6( PP^SF^&?u0F t'&tF&6(^GPQ^SF^&?u+F t"N vv؍GPIQ^S^&FsF&6(PPFPF]ŜP^Ȇ_U PPPFPFPFPF&6PFPFPF~uPFPF~ũuǎF&. vF&SF&6& ez{F{ 6u[Ŏ ts؎Ŏ ts֎ tsu`!! ts" ts$ ts& ts(Ŏ ts* ts,ǎ  ts.Ǝ  ts0Ď  ts2Ž & ts4 ts6 ts8  ts:! ĿĆΆ.JO_ lŃ Őš#ŨŽ#dž$CZGPF&N;rcvFVvPVFF^&?u3FP؍GP^&u&8G uvvQPGPFu^&]ۜ8zhUPu>t6hPPf>u=uh Vb &b;rh&9Du\&Ld\jl&>ft'6hSj&?ub &Dj&?u5b &Td&E LOCALDELETESEGMENT LOCALDELETESEMAPHORELOCALDELETETASKMINWORDRCCONNWAITCONNECTIONWAITIORS RQAATTACHFILE RQAOPEN#RQAREAD% RQASPECIAL'RQAWRITE)RQSDELETECONNECTION+ RQSCREATEFILE- RQSREADMOVE/ RQSWRITEMOVE1RQWAITIO3RQSGETCONNECTIONSTATUS5RQCREATEMAILBOX7RQCREATESEGMENT9RQCREATESEMAPHORE; RQCREATETASK=RQCATALOGOBJECT? RQGETPRIORITYARQLOOKUPOBJECTCRQRECEIVEMESSAGEE RQSENDMESSAGEG RQSETPRIORITYIRQUNCATALOGOBJECTKE RQGETTYPEMRQGETTASKTOKENSORQSETEXCEPTIONHANDLERQCONTROLCHANDLERRǜ ESSAGE; DEàcUQQv PRP^SF^&?tF(F&^&F&^&F&FF] Ϝ T׊tHCCONNPLM86 V2.304/03/84 01:12:4ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH qH T(ژD[[{|eoxb {Yuod ts֎d ts Ԏd ts Ҏd ts Ўd tsΎurÎ ts{|mwݎoSFPg^F&6&6RP&6PF&>u&6PF&F&F&6PvvPFPV3 )#BT!qsuw ن Ǡ[.UQQv PRPv^S^&?u vSF^&?uF&FF]% - GUPPPFPFPFPF&6*&6,FPhF~uF&6*QWPPF&6,FP~uF&6*&6,PFPF~uF tF&6(QPFPFoݜ  *#^hHYH T2јD[[b {[uqf ts؎f ts֎{|eu kz{ R{ Bu g{|mue   tsɎ ͎ ts ͎ ts   ts܎  ts @ ts @ ts)CSENDEORESPONSECSENDCORESPONSE-wLOCALDELETEMAILBOXLOCALDELETESEGMENT CUSPERRORRQCREATESEGMENTRQCREF&6&&6"&6$-F&6.&6*&6,F&6F&6F&6F&6F&60F&6F&6v]l5!,7OV †͆ӆcUF&F&;t@]~U^&7FP^S^&?tF<t<u ^&&GP^S^&G^&?uPS^&Gv&<u{^&wvvP^S^&?uv&t&tP^SF^&?u/v^ SPRQvP^S^&G^&?t^&w^&wF]$@Jc STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHtH T.՘D[[b {[uqf ts؎f ts֎{|mw o pz{ Q{ AufҎ ts{|eub  tsߎÎ tsߎ  tsێ  tsÎ tsَҎ ts׎Ҏ ts 1REQUESTGLOBALATTACHREQUESTGLOBA& 94>RZ׆挅7Ŗźņ$qF&F&F&^&u F&& F&P^SF&PWP^SF&PWP^SF&0^&?urvPPRQNWP^SF&^&?uBPvP^S^&?u%PPFPPvFPF!FPFPPPFP]s/E"]uċ$ĿɆٌ   tHCCSIOPLM86 V2.304/03/84 01:15:4ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPno oBUPPPFPFPFPF&6"&6$FPF~uF&6 vQPPPFPF~uF&6"vQP&6$FP~uF&6"&6$PFPF~uF;FsF&6"PRPPFPL#  *#^gۆj"UQQF tTPvPRPPFPvF~uvPRPFPFPv]P(.OV^nUQQ^&FP^St ^&PQP^SF^&?u9FuPPSATEMAILBOXRQRECEIVEMESSAGE RQSENDMESSAGE DEàUQQF Ft~u ЉFV^&P^SF^&?tP^SF^&?uvF&N&NF&Z&N F& Z& vP^S^&?Yu"vPRPSF&^&vv]J1LΆԆUUF&>uP^ &SRPP^ &_S^ &w&SF&6^S] &,0-U^ &_S^ &w&SF&6^S] tHCREQPLM86 V2.304/03/84 01:16:5ٖ,Ԇ6U2P^SF^&?u+F2PvP^S^&?t.6^SF&^&?utF&&&P^SF&^&?uuP^SF&^&?uYP^SFRQLOOKUPOBJECT@RQCREATESEGMENTB RQGETPRIORITYDRQRECEIVEMESSAGEF RQSUSPENDTASKHRQUNCATALOGOBJECTJRQRECEIVEUNITSL RQSENDUNITSNRQGETTASKTOKENSP DEà cij#coa$child jobs could not be deletedĠ&Uvv P^ DEàUF^&FFFse^&?u\vS^&?uF;FuF^&?uvSF^&?u u&멎F&FFP딋] .V/tHEXCUTPLM86 V2.304/03/84 01:19:1ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-H T7D[[{|eurz{Y{ Iun{|mul  ts ЎH MINMEMORY MAXMEMORY EXCEPHANDLER EXCEPMODE TFPF&N;t!PQPFPFPFPF&6 &60FP~t8vFPF t&t!PRPPPPFPF&6PRPFPF]` ' 1< J\t† , 6I SczţԆ{]U^S.6^ S^S^&?u/^S.6^S^S^&?u^S^S]Ü +8N U.6^SF&^&?txxQWFQP^& u7y<:t<$u/F&PQRPx ts7Ǝ ts9  ts ;  ts=  ts?ێ tsAƎ tsC  tsEƎ tsG : tsI  tsK > tsM Վ tsO tsQ  tsSSTARTJOB&REXECUTERT CUSPERROR HJOBATTRIBUTES HPREFIXESHCOMMANDNAMEMAX DELETEJOBTREE CREATE* ?mP(UQ P^SF^&?u*&F&&&^Sv]  DtHDLJOBPLM86 V2.304/03/84 01:18:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[b {[uqz{X{ Humَ ts ӎَ ts юَ ts َ ts͐ DELETEJOBTREE,RQDELETESEGMENT RQDELETEJOB RQOFFSPRINGS^&?uvv#P^S^&?unF tvPP^S^&?uMF tvPP^S^&?u,F tvPP^S^&?u v^S]+ &0G Qh rĉ 5U F&6PFPF&6vPFPF&6PPFPFPFPF&60PPFPF~u0 tF&60PPFPFF&6PFPF&6FP^SF^&?uEvF&6"&6*F &6v^S_^&?uF&6FP^SFPFPFF&6PASKFLAGSJOBFLAGS yh bolwa͎LENGTHCHAR yogoxb {Gu]Ǝ tsÎc tsǎR tsR tswo!Ywo#Wwo%Uwo'S  ts)ˎ ) ts+׎ ts- Î ts/ Î ts1 : ts3Ž׎ ts5  P^S-F^&?u\hFNFF.:wCF&PQ^SxP^SF^&?t&^&@FFFuF&6]S A ĉěU^SF^&?tF&&Z&F &F& & ^SF^&?uqPSFv.6.6Q.6 P. PF&6^SFv^&?uvvv^S^SF&6v] 5 cpuxĄˆцtHGTCMDPLM86 V2.304/03/84 01:21:1,STACKMEMORYCrwo p{|eu hz{O{ ?ud  tsǎÎ tsum  tsÎ  ts   ts؎   t s͎Ў t s͎ G ts! tscÎ ts$9CONTROLCSPECIAL"CONTROLCHANDLER5# CSETCONTROLC%dLOCALDELETECONNECTIONRCCONN RCURRJOB RQABORTIOJOB RQSATTACHFILERQSOPEN RQSSPECIALRQLOOKUPOBJECTSTACKMEMORYCODEDATACONSTDGROUPCGROUPnhHoH T>ŘD[[b {[uq{|euoz{V{ Fu k  ts ώ{|m ю t sݎu g    ts Վ ts  ts܎ ׎ tsŎ ׎ tsڎ ׎ ts؎ ю ts CSENDCOMMANDQs{EXECUTER SKIPBLANKSTYPECHARCOLLECTLEXICAPLM86 V2.304/03/84 01:25:1ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH?̘H TD[[{|eurz{Y{ Iun{|mul  ts Ўc ts ѐ APPEH ̌ CUSPERROR DEàcommand aborted by EH-UQ^&G tPRPPP]!ȊtHDFEX2шASM86.86 V2.0wCODECODE??SEGCGROUPۘh( )APPEH\ ^&w^St ^&^&GF&60PP^SF^&?u tF&60PP^SF^&_^FFP&&AQ^S ^&?uXF&^Fv& tF&> ^9^Y^&F&^S^S<^&?tF&& &] &Ty4tHSETCCPLM86 V2.304/03/84 01:23:4ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHiH T4ϘD[[b {[uqf ts؎{|mwoODEDATACONSTDGROUPCGROUPnhHFŘH TD[[{|mwowz{X{ Hum{|eu k   ts ώb { Puf   ts؎Վ tsʐCGETCOMMANDNAME+ RCOMMANDNAME MOVESTRING RQLOOKUPOBJECTP DEàJUQPQP^SF^&?uv&\S^&7P^S] >tHSENDCPLM86 V2.304/03/84 01:22:1,RQRECEIVEUNITS RQGETTYPE ɜ DEà :ci:4UQQFFF#v PFPRP^S]o(&x5UPPPFPFF&6PPFPF~u߸PQPFPF~uPPPRPFP 4 DOpU^&F u4PQP^SF^&?u &F1^&?t(sv^SF^&?ut ^&MP^SF^&?u4PPPS^&?uvvS^&?/u&v]#P nxtHDFEXLATOMRQCREATESEGMENTRQRECEIVEUNITSRQDELETESEGMENT RQGETSIZE RQGETTYPEk DEàUQQF &6^SFN;vdP^SF^&?uKNF &6^YF &6^SFF &F&Z&Y]ۜ *bUFF P^SF^& t=uJF &>~uJF & FF& P^SF<uv v^S^SI~tC^&!9F &F<tjRPPQP^& uI] ޜ[u"QU^&FF&HAPPEHSƜ DtHFMTEXPLM86 V2.304/03/84 01:27:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH*H TD[[z{[{ Kup{|eun Î tsҎ9 ts ώ Ŏ ts Ύotw[okw[oi{|mwVofێ tsƐCFORMATEXCEPTIONXj CONVERTHEX CONCATENATETOSTRING CONCATE{UwPbP^SFPwPPPFPFPPwPFP~tvF%u ^[[{|eurz{Y{ Iun{|mul  ts Ўb { Qu g\ tsΎ׎ t sڎ   tsǎ D t sՐCGETINPUTCONNECTIONs; CUSPERROR LOCALDELETECONNECTION RQSATTACHFILERQSOPEN DEàREAD access requiredUQQ^ &S^SF^&?u PPPS^&?uF>v^&&uP^ &S^&7^ &SRPP] NECTION CSENDCOMMANDCCREATECOMMANDCONNECTIONCFORMATEXCEPTION CSETCONTROLCCSENDCORESPONSECSENDEORESPONSECGETCHARCGETINPUTPATHNAMENOWC CGETPARAMETER CBACKUPCHARCSETPARSEBUFFERCGETCOMMANDNAMECGETOUTPUTCONNECTIONCGETINPUTCONNECTIONCGETOUTPUTPATHNAMECGETINPUTPATHNAMERCCONNRQLOOKUPOBJECT LOOKUPJIDSDETERMINEDESCRIPTORHIINITؚYY)HIENTRYRQERRORt RQHIINITTASK~.Copyright 1981, 1982, 1984 Intel Corporationprogram_version_number=V3.0program_name{ |UuU   ts!ώ ts# < ts% < ts'ɐCGETOUTPUTCONNECTION()COERCEUPLOCALDELETECONNECTION MOVESTRINGCONCATENATESTRING CUSPERRORRQCSENDEORESPONSE RQSATTACHFILE RQSCREATEFILERQSOPENRQSSEEK"RQSTRUNCATEFILE$RQSGETCONNECTIONSTATUS& DEà", already exists, OVERWRITE? "UPDATE or add access required"<UPDATE or add access requiredĠ%Z UPDATE or APPEND access requiredsNATESTRING LEXCEPTABLE EXCEPTABLE EXCEPOFFSET EXCEPLITERALS DEà: UNKNOWN EXCEPTION CODE : E$wUQ^&_S^&w&w^S^&?ujv&D.u+JVtG^&_S^&wP^S^&_S^&w^.P^S)^&_S^&wPP^S^&]7'16_iăćĦtHGTICNPLM86 V2.304/03/84 01:28:1ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHwH TD&&^S^SF^&?!u^S^SFF&%^&?tvPPS^&?uv^.^& v^cEegikm />U Ռ׌ٌی݌SvPPP^S^&/t*u^&^&?uFs F&&F8v^&&u P^SZ^&7^SRPP] ,  UiatHBEGINňASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPh(/HwCDELETECOMMANDCON+?VttHGTOCNPLM86 V2.304/03/84 01:29:1ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHiH T9D[[{|murg tsb {Wumb ts Ԏz{ R{ Bu g{|eue  tsɎ  tsǎ  tsŎ  tsÎɎ ts؎Ɏ ts֎  ts=iRMX 86 Human InterfaceDPxxU\zkD"/Kh  " & * . 6:>FJNRV.Uv=}*.=tF..N]FFvFPVÍFP~u vPFPVÍFP~uvSFPVøPP3PFP u vPFPVÃ5Dxd OVERLAY,fnfLOADER_SUPPORThoh SEG_BOUNDS'jp~jڠ FRAGMENTATIONPl0l͠* DIR_NOT_EMPTYn1n*8 NOT_FILE_CONNp2p8FNOT_DEVICE_CONNdr3rFV CONN_NOT_OPEN֠t4tVd CONN_OPEN v5vd{n BUFFERED_CONNx6xno|OUTSTANDING_CONNSz7z|_ALREADY_ATTACHED|8|K DEV_DETACHINGנ~9~8%$+NOT_CONFIGUREDڠ@+: FILE_EXISTS &: FFILE_NOT_EXIST!#F UDEVFD" U [SUPPORT#[c EMPTY_ENTRY^$cڠ oDIR_ENDŠ%o̠w FILE_ACCESS&w  FILE_TYPE ' SHAREM"(" SPACEN$) $ IDDR&*&IO(+( FLUSHINGF*,*ILLEGAL_VOLUME`,-Ok [PATHĠ4[]` CONTROL_C1`V jCONTROL.jJrUNMATCHED_LISTS=+r@ DATE(. NO_PARAMETERSà%' VERSION"GET_PATH_ORDERT  UNKNOWN_EXITǠ WARNING_EXITԠ ERROR_EXITWޠ FATAL_EXITnѠ ABORT_EXITSĠ UDI_INTERNALݠHTHPc ABS_ADDRESSJ`Jco BAD_GROUP"LaLoy BAD_HEADERNbNy BAD_SEG_DEFPcP CHECKSUMcRdRtEOFݠTeTi FIXUP#VfVc NO_LOADER_MEMXgX[ NO_MEMZhZK RECORD_FORMAT\i\B RECORD_LENGTH^j^2 RECORD_TYPE `k`"NO_START_ADDRESSgblb JOB_SIZEdm+5zcĜytHERTABASM86.86 V2.0w6CODEHDSPTB3CODEHDSPTB2CODEHDSPTB1??SEGCGROUPhH H([ O LEXCEPTABLE) EXCEPLITERALSu EXCEPOFFSET EXCEPTABLEuOKXW TIMEURMEMjRK  BUSYO E LIMITL> CONTEXT  I 6 EXIST F , %STATECNOT_SAME_DEVICE:(ILLOGICAL_RENAMEѠ;STREAM_SPECIAL?< INVALID_FNODE=PATHNAME_SYNTAX> FNODE_LIMIT?Р LITERAL2L STRING_BUFFER;I SEPARATORtF' CONTINUEDrC'1INVALID_NUMERIC@1 ALISTϠ=A} FWILDCARD:FvO PREPOSITION7,DEVICE_OFFLINEp...p IFDRb0/0_LOGICAL_NAME_SYNTAX2@2X CANNOT_CLOSEƠ4A4B IO_MEMORY6B63 MEDIA8Dܠ8'LOGICAL_NAME_NEXIST~:E٠: NOT_OWNERW<F֠< IO_JOB\>GӠ>#IO_UNCLASSIFIED@PȠ@# 3IO_SOFTBQŠB3 ;IO_HARDDR D;נC IO_NOT_READY?FSFC͠PIO_WRITE_PROTECTEDWSYSTEM_MSG_SENT~0oUNKNOWN_SYSTEM_PORT1lSYSTEM_MSG_COPY_SENT2i-SYSTEM_PORT_ACTIVE^3f-h@DEST_CHANNEL_MEMORY-5b@STSYSTEM_PORT_INACTIVE7^T=iSYSTEM_PORT_DEADԠ9Zi&zSOURCE_CHANNEL_MEMORYNAPzUNDEFINED_POOL|CL ZERO_DIVIDEJ OVERFLOW$ ܠ TYPEUѠ PARAM tHGTPARPLM86 V2.304/03/84 01:45:5ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH_H T<ǘD[[{|murg ts{|ez{V{ Fu kun   ts  ю ts   ts ю ts  B ts)DETECTPREPOSITION CGETPARAMETERO>COERCEUP PARSELIST SKIPBLANKSTYPECHARCOLLECTLEXICALATOM7 NOT_CONNECTIONBet JOB_PARAMETER`t PARSE_LIBRARYǠh JOB_TABLESeР DEFAULT_SOaà STRINGɠ^ ERROR_OUTPUT[ RESERVE_PARAMƀ OPEN_PARAMtǀۊtHGTCHRPLM86 V2.304/03/84 01:44:3ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHsH T$ߘD[[b F"F"NNw@wA s ^&FN؋.Fw7^S^ &w^SP^& u^S^ &S^&^.u +^&?u ^&Fq^&?toa^&?u0&oźżžŒČ̠^&?uZF@^&G^S^ &w^SP^& uU^S^S<u<^&G;^&?u2F@^&G^S^ &w^SP^&^&^&?t^&^&u] )@xQtHPRLSTPLM86 V2.304/03/84 01:47:2ؖ,STACKMEMOECTRQLOOKUPOBJECT DEà6UQ(P^SF^&?u (F]~Dl2UQPQP^SF^&?t@^&?u4SF^&?u#WPPS^&?uF v] BI]BUQ^SF^&?tF&&  t F]ϠQU^&^&O&;OrF#^&FFv&|^&F^&GF] j8%U^&G&;Gs ^&t&O^&^&] $BYUQF&F^ &OF& Z&^ &&&]ʠ BAD_CALLB  ARRAY_BOUNDSʠ NDP_ERRORILLEGAL_OPCODEEEMULATOR_EXCEPTIONʠ  INT_TBL_LIMIT- u CPU_EXT_DATAz eSEG_WRAPAROUND٠ V+CHECK_EXCEPTIONߠ+E ;NO_USERΠ!Ӡ;3C NO_PREFIX3"РC)M NOT_LOG_NAME;@MZ NOT_DEVICEAZeDEà"ޠUF Ft^&?t|^GFFF^&:Fra^&^&:u;F^&ȊN:r#^&pN^&:@u FuΊF^&@FFFu]p_U^ &GFF t'^ &r^ &G FF t ^ &s ^&0^&G&^&^ && ?t&& u ^&!^ &G& GuG^ &GFF^&^S^SF^&?uF<u^&GFRPPSP^& u^S^SF^&?u^&GFF&GF<tF{[uqf ts؎{|mwor{|eu jz{ Q{ Auf ˎ ts  tsȎ   tsߎ[ ts[ tsގ[ tsю 3 tsԎ 3 ts > t s ͐d CREATEJIDS LOOKUPJIDS2DETERMINEDESCRIPTORCGETCHAR CBACKUPCHAR%CSETPARSEBUFFERY!NLOCALDELETESEGMENTRJIDS RQCREATESEGMENTRQCATALOGOBJ RYCODEDATACONSTDGROUPCGROUPnhHLH T2јD[[{|mz{Z{ Juoَ ts{|eu kur   t s   0 tsˎ   t sݐ PARSELISTo>SKIPBLANKSTYPECHARCOLLECTLEXICALATOM CONCATENATETOSTRING DEà"ΠU~ rwFF^ &F^&FF^SFPF<u F$FFFnhHH TFD[[{|eurz{Y{ Iun{|mul  ts Ўb { Qu g\ tsΎ  ts Î tsǎ Վ tsݎ׎ t sԎ  tsЎ tsێ t sΎ׎ t s̎ D ts! D ts#@ GETSIONAMES CGETINPUTPATHNA*H TJD[[z{[{ Kup{|eun9 tsю{|mێ t s ێ t s u j  ts;TYPECHAR SKIPBLANKSTYPECHARCOLLECTLEXICALATOMd5CONCATENATETOSTRING DEàH I1><1<>OAAECEDE BDEEDDDDDDDDDDDDD!DDDDDDDDDDDDDDDDDDDDDDDDDDDD3E4DDEDDDDDDDDDDDDDDDDDDDDDDDDDDD0DEL  F&F& ttF&&F&&:sF&&^S^ &7PFPS^S^&?tF&>uZ&^S^SF t&NPFPFFr ^&?tR^&?u&^&7"^S^SF&F^& tP^SRPP^&F~tF&6^S)TnΆ~g^ &7^S^&?tӎF&6FPF&^&%tQ^SRQP^&^&?%uF&^&?t^&3i %K%UF&^ Sv^Su F$F%FtF.sFF~v*FN؋.F< u ~ uF.rFs.F t%Pv v&t^PvFPF uT^F&GFPSF-~t4F tPv v&t^PvFP^F&GF] g`ĎĴ4~dU^SFPFF uW^ Sv ^SvF~u8FP^S%FF^ vNFV +։VQRv&t^QPFPF up^ &^&G[^.iy~FNu^&FF^Sv^SvF t] AJ7eĝğġģĥħĩīĭȆ!IKMOQSUWY=tHSCANPLM86 V2.304/03/84 01:48:4Ֆ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHMEy"CGETINPUTPATHNAMENOWC$Ìz CUSPERROR LOCALDELETESEGMENT PARSELIST MOVESTRING NTHSTRING WCOPENINPUT WCGETINPUT WCCLOSEINPUTRQCREATESEGMENT DEà}UF^&GFv^SF^&?uDPQv^SP^& uF$F^&Gv^&?uF른]  >]ryU F&>u&>t^&] ^ &GFF t ^ &?s ^&Ը^&^&F&&>uPFP F&&F& t^&놎F& t&t!F&rPFP       ԠU ^&G&;Gr ^&*^&^&FFv&t^&FtDf^.OFtR^v&tFFF.HȊN:r).Jv&;uv&.I FuʀfF]5 RuċĠ%UQQFP^S8F&u_F F tM^ GFF^ &FFFPv^SF&>&tFP^SFt ^&6F& F&v F& tV&8t^&] n ܠ_U ^ &GFF t ^ &s ^&P^&^&F&>$u%^ &SFP"PF&$&F&" t ^&F& F&r&>uF&F&:vF&>t?&F&:s1F&&&'& t/P^S^&?uF&F&>u&'F&>t&>u&PF&P^&&@FF|~t]Še:UQ^&vSt^&?u9&2F&s &6^SvFP^&?uF&]  ?J U0F^&vSt^&?u4&-F&r%&&jjF^YG~t^ &^ SvFP^S^&?uFFsF&^SrFPPFjP^SFPPFP^S8Fr+R8Nu$?8Vu8Fr8Nu8VuF&>OuuFPPFMQNQPFPFRF&^&?uF{W{ Gul  I ts {|eu h  ts̎ ! tsɎ  tsȎ  tsƎ ӎ tsߎuq Ď tsÎ  E ts  ts  t sˎ Ď ts! Ď t s#Ɏ ӎ ts%Ў Ď ts'  ts)0 WCOPENINPUT& WCCLOSEINPUT:( WCGETINPUT*ČWCSCAN tsَ ts!Վ  ts#Î  G ts%АCGETOUTPUTPATHNAME_&[DETECTPREPOSITION GETSIONAMES LOCALDELETESEGMENTMAXWORDMINWORD MOVESTRING NTHSTRING WCOPENOUTPUT WCGENOUTPUT WCCLOSEOUTPUT SKIPBLANKSTYPECHAR"COLLECTLEXICALATOM$͜ DEàTOOVERAFTERU ^ &GFFFPPSP^& uQFPPFt=^ S^SF^&?u$&>tF& F&'&&vF^ &G] $ 6;OctˎFPPFPP^S~u+JVu F& FF&] / b~UFFNN^ &8v^&8w^F&8wv^&8tFF^F&8v!^&8uF^&&@^ &PȈFXFF8FwM^N&8vBSQ^S^ SP^SNsFFFȈF뿊FȈF8Fwt&>uF& tP^SF&F(PP^SFPF&>tGF&6&6^S^ !ކ 0>Yc~ ̆@M&w^S^&?tF&6FPF&F&'] i # tHWCINPLM86 V2.304/03/84 01:53:3ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHGH TrD[[b {[{|mupz &u ^&!^&%^ SvFjPFPF&^ SvFP^S]  ˆtHWCOUTPLM86 V2.304/03/84 01:55:4ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH H T8˘D[[b {[{|mupz{W{ Gul  I ts {|eu h  ts̎ ! tsɎ  tsȎ ׎ tsuqs3:uƆƆ. rƆኖ؋. . sR. s^&Ƃ#P.^&^&&@&F. sF^&N;r*+&pPs^&+F@F Fu?,,Ռچ-:C_dmťˌІ6&F^&v0:&8Gu(ɵu+JVt ;VvVFP^S؎&PNt+Ju9^&N+^&;v'Ȱt+Jt^&v^St^&?u&PF&t>F&jjF^YF&jMF^Y^ SvF<P^S^&?uF&t&>uRFFFFjFFFFFFFFFF^&N;wF&tP.~^&*^v&@^ &&@&FFv&|u^&;v^ &;Fr8NFFv&DM<t^&;vm<ug^ &;Fr vA#=XφEJUWY[]mG&v^S^&_[&@^ &&@&SCN} pc-q:}Y ] "R5CSv/t{*X$ /G7C'P ^7pw}8(ATTACHANDCATALOGDIRECTORYCREATEINITIALPROGRAM DELETEHIUSER CREATEHIUSERHCLIINITDELETECONFIGCONNATTACHANDGETNUMBERGETUSERATTRIBUTESGETTERMINALATTRIBUTES RQHIINITERROR RQJMERRORTERMINALMAILBOXTJOBEXITMAILBOXTTERMINALTABLET USERJOBTABLETHIINITWAITJOBRESPONSEQUERYTICOTASKTICITASKCDELETECOMMANDCONNECTIONCCREATECOMMANDCONNECTIONCSENDEORESPONSECSENDCORESPg̎ tsɎ K tsƎ O t sӐ WCSCAN:JK INDEXBYTE INSETBYTE RQCREATESEGMENTRQDELETESEGMENTRQSGETFILESTATUS DEà?*5'" //^ Uv ~N^Y] :Ux~ uFF=^&F@P^SF^&?txNPXQN~ u/FjFFFMFFFFFF&$FFFFFFF<FFFꈆ^&N;w&@PP Ǝ tsŎ Ǝ t sӎ ӎ tsڎ Ǝ ts ts3 WCOPENOUTPUT WCCLOSEOUTPUT# WCGENOUTPUTZ dWCSCAN MOVESTRINGCONCATENATETOSTRINGCONCATENATESTRING INDEXBYTERQDELETESEGMENT RQGETTYPE DEà4#U^&P^S^S]B;;#U^&vSt^&?u& v^S]N 1ZU~t~u ^&QF^&~t^ &v^St ^&?t^v@P^GP^&Pv捂P^S^&PF^&^&t+JtF^SPFP~u~sv~ uNuG^&F t$H^&H:t/:t^t v&PFF^&F&~ uuF&^&vFP] p 8dž=t VERSION3P0HATCATHCCJOBHCLIHCNFIOHLINITHWTJRHCCONNHCCSIOHCREQHDLJOBHEXCUTHGTCMDHSENDCHSETCCHDFEXHDFEX2HFMTEXHGTICNHGTOCNHBEGINHERTABHGTCHRHGTPARHPRLSTHSCANHGTIPNHGTOPNHWCINHWCOUTHWCgFv&DM<t^&;v<u ^&HF^ Svv^&^AP^&@P^S^&?u FFF&<^ &Sv^SFP~t^ &]ɜ ĆtHWCSCNPLM86 V2.304/03/84 01:57:1ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TlD[[{|murz{Y{ Iunێ tsێ ts b { Q{|eufώ t sێu  ONSEREQUESTGLOBALATTACHREQUESTGLOBALDETACH DELETEJOBTREESTARTJOBEXECUTERCGETCOMMANDNAME CSENDCOMMANDCONTROLCSPECIALCONTROLCHANDLER CSETCONTROLCAPPEHHAPPEHCFORMATEXCEPTIONCGETINPUTCONNECTIONCGETOUTPUTCONNECTIONHIENTRYRQERROR RQHIINITTASK LEXCEPTABLE EXCEPLITERALS EXCEPOFFSET EXCEPTABLE CREATEJIDS LOOKUPJIDSDETERMINEDESCRIPTORCGETCHAR CBACKUPCHARCSETPARSEBUFFERDETECTPREPOSITION CGETPARAMETER PARSELISTTYPECHARSKIPBLANKSTYPECHARCOLLECTLEXICALATOM GETSIONAMESCGETINPUTPATHNrtab_215 dw %ncyl db %nfsur db %nrsur db %nsec dw %secsize db %nalt code_bs215 ends) %*DEFINE (end) (end)  :f1:bs1.obj, & :f1:bserr.obj, & &:f1:bcico.obj, & ;for standalone serial channel support :f1:b204.obj, & :f1:b206.obj, & :f1:b208.obj, & :f1:b215.obj, & :f1:b218.obj, & :f1:b251.obj, & :f1:b254.obj, & :f1:bsasi.obj, & :f1:bscsi.obj, & :f1:bs1.lib ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample Bootstrap First Stage Configuration File ; ; Bootstrap First Stage configuration files consist of ; an include of the configuration macros in "bs1.inc", ; followed by configuration macros for option selection, ; macros for the devices, and the "end" macro. ; ; The CPU selection macro determines what type of CPU is used. ; If the type is 80186 or 80188, the iAPX_186_init macro is ; invoked t%*DEFINE (b215(wakeup,ncyl,nfsur,nrsur,nsec,secsize,nalt)) ( name b215 public wakeup_215, device_215, drtab_215 code_bs215 segment byte public 'CODE' wakeup_215 dw %wakeup device_215 db 0 drtab_215 dw %ncyl db %nfsur db %nrsur db %nsec dw %secsize db %nalt code_bs215 ends) %*DEFINE (b220(wakeup,ncyl,nfsur,nrsur,nsec,secsize,nalt)) ( name b220 public wakeup_215, device_215, drtab_215 code_bs215 segment byte public 'CODE' wakeup_215 dw %wakeup device_215 db 2 dAMECGETINPUTPATHNAMENOWCCGETOUTPUTPATHNAME WCOPENINPUT WCCLOSEINPUT WCGETINPUT WCOPENOUTPUT WCCLOSEOUTPUT WCGENOUTPUTWCSCANh:bs1.mp2) & ; Add "bootstrap" to loc86 when locating the first stage in ROM ; ; ; Bootstrap Loader first stage generation complete. ;  & to :f1:bs1.lnk print(:f1:bs1.mp1) ;& ;nopublics except(firststage, boot_186, bootstrap_entry) ; loc86 :f1:bs1.lnk & addresses(classes(code(%0),stack(%1))) & order(classes(stack,data,boot,code,code_error)) & noinitcode & start(firststage) & &; change above line to start(boot_186) if iAPX_186_INIT is invoked & segsize(boot(1800H)) & map print(:f1 o specify the programmimg of the chip select registers. ; ; CPU(cpu type) Specifies the type of CPU. The bootstrap recognizes ; 80186 and 80188 as CPUs requiring special programming. ; Other cpu types are ignored. ; ; iAPX_186_init(R, UMCS, LMCS, MMCS, MPCS, PACS) ; ; Specifies the values for the chip selects and mode ; for 80186 and 80188 CPUs. This may only be invoked ; after a CPU(80186) ot CPU(80{W{ Gulur  H ts {|mu g Ύ t s܎ ts}\ t sڎ a ts a ts tsc  D tsŽ  H ts GETLASTCHARbGETCHAR GETCHANGEMODEN GETSKIPUNTIL GETSKIPTEXTGETFLUSH GETSTRINGOPENGETCGETREAD INSETBYTE DEà'"  *LU; w6 S6 >u] 6 & ]Ñ) ; ; console Causes the bootstrap to input the file name ; from a console device. ; ; auto Causes the bootstrap to use automatic device ; selection (hunts for first ready device). ; ; manual Causes the bootstrap to use manual device ; selection based on the file name input from ; the console. This macro automatically invokes ; console and auto. ; ; loadfile CausesD8UF  F  F] "%+.tHGETNUPLM86 V2.304/03/84 02:01:4ߖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHVH TD[[{|ez{Z{ Juoَ ts ts}d ts ur  H ts Ύ{|mueώ tsؐ GETBINARY GETSELECTORa ̌LCONVERTTOBINARYGETCHAR GETSKIPTEXT "Z VERSION3P0PLM86 V2.304/03/84 01:59:4Ӗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHlH TD[[ DEà0Copyright 1981, 1982, 1984 Intel CorporationuD,program_version_number=V3.0program_name=iRMX 86 Human InterfacetHGETNPLM86 V2.304/03/84 02:00:3,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHT*٘D[[{|eb {Zupz188) macro. R should ; be set to 'yes' to place the 186 in R mode. For ; information on the other argments, see iAPX 186 ; documentation. ; ; The option selection macros have no arguments and serve to ; determine how the bootstrap will determine the boot file ; name and boot device. If no options are selected, the ; second stage default file name ("/system/rmx86" for named ; file volumes) and a single boot device are used. "(48@D@NUQFF<s".ms{F]!#'.1+UQuFtv^SsF]';+UQNFtv^SrF](;U t t]eUF t&PFt FFFsF;FuFt|F;FtFFr.vPsFFFFv^Sr;Fs&F t&s;Ns F&@&\Ftf] \^c the bootstrap to print the pathname of the file ; that it is attempting to load. This message is printed ; after a ready device has been found and the second stage ; has been loaded. ; ; defaultfile Used to indicate the name of the file to be ; loaded when console is not specified, or the default ; device and/or file to be used if console is specified ; but no file is given. If this m GETSTRING INDEXBYTE GETEXCEPTION֜ DEà  0123456789ABCDEFOUPFu,FP PPFFFFFPP]S %*@E@XaUPF;uFvPF uF]ðNFHFFϜ %*MڊtHGETRDPLM86 V2.304/03/84 02:02:4ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHQHTD[[{|eb {ZupzFt :r*Pa Pz] )6U vvFt :r*P/ PH] '1UF$.F$.]g$.Uvv]۠AUv]٠NUPP] ,_UF  FF] "tHPUTWRPLM86 V2.304/03/84 02:04:5ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHTHTD[[{|eb {uqz{X{ Hum{|eu k  J ts Ў tsc{|muf[ tsێ ӎ tsʎ[ tsɎ[ tsǎb tsŎ ̎ tsŽ{ |UuX ts[ ts  ` ts"f ts$  J ts&PUTFLUSH PUTCHANGEMODE/ PUTBUFFERWPUTCHAR PUTBLANKS$ PUTSTRINGE PUTDECIMAL PUTDWDECIMAL PUTHEXBYT[{|murg tsz{W{ Gul{|eu j  ts ΐ!COERCEUPCOERCEUPSTRING DEàUF u6FPP,;wF6&< u > u]  {Y{ Iunێ tsێ ts  INDEXBYTE INSETBYTE< DEà@UQF Ft"^&Fu+JVuF@]?<UQF Ft"^&Fu+JVu]7tHSTRNGPLM86 V2.304/03/84 02:07:4ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH@ɘH T0ӘD[[{|eurߎ tsz{W{ Gul   S^ &*ж^.[&@nFu΋] vZtHCVDECňPLM86 V2.304/03/84 02:11:0,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHYH T,טD[[z{[{ Kup{|eun Ŏ tsҎ{|mu j 3 ts ͐CONVERTDECIMALD CONCATENATESTRING J DEà 8FUQF 1F t ^SPF 10^&&P&]rDUFFPv FF t!^Sv ^GP^&P^S]TUF Ft~ s ^&1^&F t!^Sv ^GP^&P^S]UUF Ft~s ^&]^&F tL&:F vBNF ^ &;s*ЈV^SvF ^ @PFP^S3]ؠsUQ^&P^&P^w^^t+JVYu^&^&^v&@^&H+]=tHSTRTBPLM86 V2.304/03/84 02:09:0ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH FV FV t^SvvFV ǃ0^&&A&]Ɯ V;VƠu`UFFPv v Ft7:Fr2FF*F:Fr#^SvP^S^&?uFu^SvFP^S] DEàUQF Ft/~r)^&F F t!PvF^&;r ^&iF tb^&F9Fw(=v ^&^&^&N+IN^&xv NFY^F&]**UUF Ft~ s ^&2^&t7:Fr2FF*F:Fr#^Sv P^S^&?uFu^Sv FP^S]v 9CftHCVDWPLM86 V2.304/03/84 02:12:0,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH:H T:ɘD[[z{[{ Kup{|eun Ŏ tsҎ{ |Uu j{|mu h - tsːCONVERTDWDECIMAL`-CONCATENATESTRING J LQ_DWORD_DIV DEà 8bUQQTD[[z{[{ K{|muoup؎ ts׎ ts ׎ ts 1 NTHSTRING FINDSTRING] FINDEXACTSTRING p DEàaUF FtFt^&8s3^GFFFF:Fv^&@FFF^]]UF FuFF^GFFF^F&8r_^&w^^t+JYu^&^&:t6~tFFF^&@FFFuFsFF]+ u h ! tsˎ  tsʎ َ tsގ ӎ ts{ |U  E tsʎu^   ts   tsICONVERTDATETIMETOSECONDSCONVERTSECSTODATECONVERTSECSTOTIME@UCOERCEUP INSETBYTE CONCATENATETOSTRINGCONCATENATESTRING NTHSTRING FINDSTRING LQ_DWORD_DIV LQ_DWORD_MUL DEà;Zx0Np[" JANUARYFEBRUARYMARCHAPRILMAYJUNEJULYAUGUCONVERTTODOUBLEBINARYCONVERTTOBINARY)COERCEUP INDEXBYTE ; LQ_DWORD_MUL DEà0123456789ABCDEF HTOQ    U FF^&uȴF&pPPF tN^.F^&FF9FrY^&pPPF t 9FrFt5FN~NI׉FVFu^&FV]H*.3Gmqv̢V;:UQQ^S^SFV^&?u t&FV]tHCQERYPLM86 V2.304/03/84 02:15:5ٖ,STPF^ v&x/tUF ^ SFPF^ SFP FF;rq wl9Nrg^ SFPNF^ &;FwJ~Ns)FF1Vn~u* u&~v/~dsFlρ~r~3v^.y;Fr^&^&?tݸFFF^SFPF^&N;vT&x:u^F^SFPF^&N;v)&x:u3F^SFPbF^&;Fw~s <9Fs9Fr^&Fm^.NIȋF@1F  ׌a~v ~uFF<FPFׇV_YPFQ error query error U^ &rPP^SFPPP^SFPF tP^SPPP PPFPF tP^SPPFtAEP^SF^& tPRPRPPF tF&$t;t F^&^SvFP^z{X{ Humَ ts ӎَ ts юَ ts ώَ tsَ͎ tsˎf tsʎf tsȎf tsƎf tsĎf tssLOCALDELETECONNECTIONLOCALDELETEMAILBOXLOCALDELETESEGMENT>LOCALDELETESEMAPHORE]LOCALDELETETASK|uYRQSDELETECONNECTION RQDELETEMAILBOX RQDELETESEGMENTRQDELETESEMAPHORE RQDELETETASK DEà#UQF tt PFH TD[[b {[uqz{X{ Humَ ts ӎ{|eَ t s u i  tsَ tsWAITCONNECTION/RQDELETESEGMENT RQGETTYPE RQRECEIVEMESSAGE DEàTUQQvPFP^SFP^S=uFF&^&vFP] #EtHWTIORPLM86 V2.304/03/84 02:25:2ۖ,STACKMEMORYCODEDATACONSTDGROUPwH'oiwXog}RGLOBALRCCONN RJIDSRCURRJOB RTERMINALTABLE$ RUSERJOBTABLE,RJOBEXITMAILBOX5RHIJOB@ RCOMMANDNAMEI DEà RQGLOBAL  R?HCCONN R?JIDS R?CURR$APP[ $R?HTERM ,R?HUSERJ5 R?E$JOB$MB @R?HI$JOBI R?H$C$NAMExtHGIOPPLM86 V2.304/03/84 02:29:0ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH,HT&ݘD[[{|eurzD[[b {[uqz{X{ Humَ ts َ ts ю{|eَ t sݐ WAITACTUALUWAITIORS RQDELETESEGMENT P DEà=Uv^SF&N^&?u PFPF] .tHLOCD PLM86 V2.304/03/84 02:27:1ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHpH TD[[b {[uqS^& u]F&>u%FPPRPP^ S^S^& tPFP"FPFP^S^& tP^ SR4~v:FsP^ SQP(^&P^ S4PPP^SF^&?ubF&6"P^S^&?uvPFPSF^& t)P^ SEPP^&7^ SRPPv^SF&]B;Y͆"(UQF tt PFP]ʜ;#]UQF tt PFP]:#|UQF tt PFP]9tHNAMESPLM86 V2.304/03/84 02:28:1ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHTH TD[[{|mwH'owwH'ouw87oswXo qw@/o owH'o mwXokCGROUPnhHAʘH TD[[b {[uqz{X{ Humَ ts ӎ{|eu i   ts َ tsWAITIORSՌ$RQDELETESEGMENT RQRECEIVEMESSAGE DEàEUQQvPFP^SF&^& tvFP] 6tHWTACTPLM86 V2.304/03/84 02:26:2ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH9ҘH T{Y{ Iun{|mul  ts Ў Î ts Ύ O ts͎ Î tsގ; tsېGETINOUTPATHNAMES C CUSPERROR MOVESTRING RQCGETINPUTPATHNAMERQCGETOUTPUTPATHNAMEC DEàZZ TO :co:B UQQ^SvFP~uBs;^&?uSv^ SFP^&?uPPRPP~tF tP^SRPPF^&?t<^SvPFPFF tP^[[z{[{ Kup{|eunb {Uu k{|mu i / ts ̎ 4 tsʎ ` ts̎ ` tsʎ ` tsȎ ֎ t s؎ ֎ t s֎َ t sԎ  . ts  G ts / ts! GETPATHNAME"FINDLOGICALNAME INSERTSTRINGLOCALDELETECONNECTIONLOCALDELETEMAILBOXLOY^&w^F y^YF^&]tHFLOGPLM86 V2.304/03/84 02:31:1ߖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH'H TND[[b {[uqf ts؎z{V{ Fu k{|eu i  ts ͎  tsˎ ׎ t s܎  tsǎ ю ts  ts܎{|mu[ tu^Sv PFP^S^&?t^Sv PPFP~tq^&/u+JVu!~} ^&8s4&/^&wE(M ^x ĺĆ߆ %1Q~ŕόEN+H&p~}^Yqvvv]( -39tHPTDWKPLM86 V2.304/03/84 02:34:0ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH<͘H T0ӘD[[{|murg tsَ?u~t ^&F 0FFFF F&9,r߹^&xuyv v&p shF^&xRtT&x?tM^SvP^S^SvF^P^S^SvP^SFta]/ġ̆׌UQ^&P QP^SF^&?u ^Sv Pvv ^S^&?u.P^SF^&?u^Sv Pvv ^S]4 RhtHGTPATPLM86 V2.304/03/84 02:32:3ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH>˘H T>ŘDSRPP^&?tF]:%;K[_̆tHINSTRPLM86 V2.304/03/84 02:30:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHUH TD[[z{[{ Kup{|eun{|mul 7 ts ϐ INSERTSTRING DEàUQ^&v&^&F=v ^&F;Fw ^&n^&:F sF ^&*N F p^&^y^NOCALDELETESEGMENTWAITCONNECTIONWAITIORSRQCREATEMAILBOX RQAATTACHFILERQAGETPATHCOMPONENT DEà/)^ ... /s ... U~ w ^&^&P^SF^&?u޸Pv RPv^S^&?u vSF^&?u)vv^S^&?u vSF^&?t~F&>u^&?tSv PP^S^Sv PFP^S^&?tPvPv^S^&?u vSF^&?u9vFFvFFFPPvv^S^&?t~sڎ   tsFINDLOGICALNAMECLOCALDELETECONNECTION MOVESTRINGCONCATENATESTRING RQGETTYPERQSCATALOGCONNECTION RQSATTACHFILERQLOOKUPOBJECTRQGETTASKTOKENS DEà :xx:::  RQGLOBALUF&F&;t@]۠-UvFPF~uh~uHF&>tVPPFPPFPF~u.vPFvF~uFr vve]Ҝ2<?IbU^&v&v ^SF^&g ts׎z{U{ Eu j _ ts ю{ |Uufӎ ts̎{|eub tsҎ[ tsǎ[ tsŐ PUTDWKAY& PUTDWTHOUSAND7PUTCHAR PUTBLANKS PUTSTRING PUTDWDECIMALMINWORD LQ_DWORD_DIV LQ_DWORD_MUL DEàD d   k Mڠ Gݠ Thc Mie Bil>!UQFFVu v FVFيF]' V[UCONVERTTODOUBLEBINARYCONVERTTOBINARY CUSPQUERYUSERMAXWORDMINWORDOPTIONALCOLONS GETUSERIDSAMEFILE CUSPERRORGRABLOGICALDEVICEWAITCONNECTIONWAITIORS WAITACTUALLOCALDELETECONNECTIONLOCALDELETEMAILBOXLOCALDELETESEGMENTLOCALDELETESEMAPHORELOCALDELETETASKRGLOBALRCCONNRJIDSRCURRJOBRTERMINALTABLE RUSERJOBTABLERJOBEXITMAILBOXRHIJOB RCOMMANDNAMEGETINOUTPATHNAMES INSERTSTRINGFINDLOGICALNAME GETPATHNAMEPUTDWKAY PUTDWTHOUSANDCONVERTIDTONAMEsRPP@BPAvv;PP+P]O#FjĀBtHIDNAMPLM86 V2.304/03/84 02:35:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHXH TD[[z{[{ Kup{|eun{|mul 5 ts ώ Ŏ ts Ύ Î ts̐CONVERTIDTONAME CONVERTDECIMAL MOVESTRING DEà WORLDȠ# S U~u^ Sv  user or intel supplied ci/co routines rather than ; the monitor ci/co routines. ; ; serial_channel (ser_type, ser_base_port, ser_port_delta, ; cntr_type, cntr_base_port, cntr_port_delta, ; baud_counter, count, flags) ; ; Configuration of intel supplied standalone ci/co routines. ; If the cico macro has been invoked, and intel ci/co ; routines are desired, invoke one of theL GETSKIPTEXTGETFLUSH GETSTRINGOPENGET GETBINARY GETSELECTOR GETEXCEPTIONGETREADPUTFLUSH PUTCHANGEMODE PUTBUFFERPUTCHAR PUTBLANKS PUTSTRING PUTDECIMAL PUTDWDECIMAL PUTHEXBYTE PUTHEXWORD PUTSELECTORPUTCRLFOPENPUT PUTEXCEPTIONPUTWRITECOERCEUPCOERCEUPSTRING INDEXBYTE INSETBYTECONCATENATETOSTRINGCONCATENATESTRING MOVESTRING SUBSTRING COMPARESTRING NTHSTRING FINDSTRINGFINDEXACTSTRING CONVERTHEXCONVERTDECIMALCONVERTDWDECIMALCONVERTDATETIMETOSECONDSCONVERTSECSTODATECONVERTSECSTOTIME FV N~FVRPPPFFV N~^.ϋN~F u vvQvv^..P+NQFRP-Y+ȉNFF;Fw 0PFuFRPP]h+V(:VFPV[V|Æ^&UFVu(sWPPP`FVusRPPP 8FV@usRPPPvv@PPP]#FjĀBUFVu'sWPPP`FVu@BsRPPPe8FV;uacro is not used, the ; default file name is '/system/rmx86'. ; ; retries(x) Causes the bootstrap to try to find a ready device (when ; in manual or automatic) x times. If it fails after x times, ; an error will be generated. If this macro is not invoked, ; the bootstrap will try forever. The valid range for x ; is 1 to 0fffeh. ; ; cico Indicates that the bootstrap will be linked to ; P^S+^ Sv P^S^ Sv vP^S] l)3It VERSION3P0HGETHGETNUHGETRDHPUTHPUTWRHCOERCHINDEXHSTRNGHSTRTBHCVHEXHCVDECHCVDWHCVTDTHCVTOBHCQERYHMAXHMINHOPCOLHGTUIDHSAMEFHCERRHGRBLDHWTCNHWTIORHWTACTHLOCDHNAMESHGIOPHINSTRHFLOGHGTPATHPTDWKHIDNAMt 7 `8T&L*l.I2; A D5HkMqa4gOnpr x{U[.GQGP8~4Q6  GETLASTCHARGETCHAR GETCHANGEMODE GETSKIPUNTI default ; invocations to configure the proper serial channel. ; Consult the iRMX 86 Bootstrap Loader reference manual for ; information on how to use the serialchannel macro for ; custom hardware configurations. ; ; ; ; The device macros give characteristics of the devices and ; the search sequence for automatic device selection. ; ; device(Name, Unit, Device$init, Device$read) ; ; Name is the device name. ; %device(f0, 0, deviceinit204, deviceread204) %device(f1, 1, deviceinit204, deviceread204) %device(f2, 2, deviceinit204, deviceread204) %device(f3, 3, deviceinit204, deviceread204) %device(af0, 0, deviceinit208gen, deviceread208gen) %device(af1, 1, deviceinit208gen, deviceread208gen) %device(af2, 2, deviceinit208gen, deviceread208gen) %device(af3, 3, deviceinit208gen, deviceread208gen) %device(d0, 0, deviceinit206, deviceread206) %device(w0, 0, deviceinit215gen, deviceread215gen) %device(wf0, 8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; name bs1 $include(:f1:bcico.inc) $include(:f1:bs1.inc) %cpu(8086) ;iAPX_186_INIT(y,0fc38h,none,80bbh,none,003bh) ; 188/48 board ;iAPX_186_INIT(y,none,none,80bbh,none,0038h) ; 186/03 and 186/51 boards ; %console %manual %auto %loadfile %defaultfile('/system/rmx86') %retries(5) ; ;cico ; ; iSBC 86/05/12a/14/30 ;serial_channel(8251a,0d8h,2,8253,0d0h,2,2,8) ; ; iSBX 351 (on iSBX #0) ;serial_channel(8251a,0A0h,2,8253,0B0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample Bootstrap Error Routine Configuration File ; ; Bootstrap Error Routine configuration files consist of ; an include of the configuration macros in "bserr.inc", ; followed by configuration macros for option selection ; and the "end" macro. ; ; The option selection macros have no arguments and serve to ; determine how the bootstrap will report errors if they ; occur. If no options are selecteiRMX 86 Application Loader V3.1 (143111)  No quotes are needed. ; Unit is the unit number. ; Device$init is the device$init procedure of the ; bootstrap device driver for the device. ; Device$read is the device$read procedure of the ; bootstrap device driver for the device. ; ; If neither auto or manual device selection is used, only ; one device macro can be given. ; ; The file must end with an end macro. ; ; Macros called have a percent sign, others have a semicolon. ; ;;;;;;;;;;;;;;;, deviceinit215gen, deviceread215gen) %device(wf1, 9, deviceinit215gen, deviceread215gen) %device(wf2, 10, deviceinit215gen, deviceread215gen) %device(wf3, 11, deviceinit215gen, deviceread215gen) %device(pmf0, 0, deviceinit218Agen, deviceread218Agen) %device(bx0, 0, deviceinit251, deviceread251) %device(b0, 0, deviceinit254, deviceread254) %device(sa0, 0, deviceinitsasi, devicereadsasi) %device(sc0, 0, deviceinitscsi, devicereadscsi) %end h,2,2,8) ; ; 8MHz iSBC 186/03/51 ;serial_channel(8274,0d8h,2,80186,0ff00h,2,0,0dh) ;serial_channel(8274,0dah,2,80186,0ff00h,2,1,0dh) ;serial_channel(8274,0dah,2,80130,0e0h,2,2,034h) ; ; 6MHz iSBC 186/03/51 ;serial_channel(8274,0d8h,2,80186,0ff00h,2,0,0ah) ;serial_channel(8274,0dah,2,80186,0ff00h,2,1,0ah) ;serial_channel(8274,0dah,2,80130,0e0h,2,2,027h) ; ; iSBC 188/48 SCC #1 ;serial_channel(82530,0d0h,1,82530,0d0h,1,0,0eh,a) ;serial_channel(82530,0d2h,1,82530,0d2h,1,0,0eh,b) ; ; ; ; d, the bserr routine ; will display no error messages. ; ; console Causes the bootstrap error routine to print ; messages on the console when errors occur. By ; default these messages are very short. ; ; text Causes the bootstrap error routine to print longer, ; more descriptive messages when an error occurs. ; (This macro automatically includes console.) ; ; list Causes the bootstrap error routine to prin;;;;;;;;;;;;;;;;; ; ; $include(:f1:bserr.inc) ;console %text %list %again ;int3 ;halt %end  be invoked. ; ; again Causes the bootstrap routine to jump back to the firststage ; and try again. This is recommended when the bootstrap is ; configured with a console device. ; ; int3 Causes the Bootstrap to execute an int 3 instruction. This ; is used to return to a monitor after a booting failure. ; ; halt This causes the Bootstrap to come to a halt after an error. ; (If None of the macros console, texe sector size in bytes. ; Track_size is the track size in sectors. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:b204.inc) %b204(0A0H, 128, 26) %*DEFINE (b218A(io_base, motor_flag)) ( name b218A public status_port_218A,data_port_218A,DACK_port_218A public reset_port_218A,motor_port_218A,TC_port_218A public motor_flag_218A code_bs218A segment byte public 'CODE' status_port_218A db %io_base data_port_218A db %io_base + 2 DACK_port_218A db %io_base + 10h reset_port_218A db %io_base + 14h motor_port_218A db %io_base + 18h TC_port_218A db %io_base + 1ch motor_flag_218A db %motor_flag code_bs218A ends end) t a list ; of the available devices whenever the user enters an ; invalid device name in manual mode. ; (This macro automatically includes console and text.) ; This macro may only be used if the manual macro is used ; in the bs1 configuration file. ; ; The following option selection macros serve to determine what the ; bootstrap error routine will do after reporting the error. Only ; ONE of the following three may;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for iSBC 204 board bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The 204 board macro is: ; ; b204(IO_base, Sector_size, Track_size) ; ; IO_base is the I/O base port number selected on the 204 board. ; Sector_size is tht, or list, are invoked, ; halt or int3 are the best selections. In these cases, the ; error code can be found in the CX register after the hlt ; or int3 is performed.) ; ; ; The file must end with an end macro. ; ; Macros called have a percent sign, others have a semicolon. ; ; Note that the console macro in this file is independent of the ; console macro in the BS1.A86 file. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for iSBC 206 board bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The 206 board macro is: ; ; b206(IO_base) ; ; IO_base is the I/O base port number selected on the 206 board. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEJOB RQEXITIOJOB DELETESEGMENT DELETEMAILBOXMAXPADD CHECKHEADER RSTARTMESSAGELBUFSIZE LRDBUFSIZELDEFAULTMEMPOOL LOADERSTART DEàUFF^&G &;Gs t^&w^SF^&?ttF&^&G&^&G%F&^&&^&G& .PP ʋ&&&&0.&&.&>u&>u .&&F&6&6&6PF^&wF&6 &6&6PP^&GvPF^&G &9Gv ty^&G t t;FsF^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for iSBC 208 board bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The 208 board macro is: ; ; b208(IO_base) ; ; IO_base is the I/O base port number selected on the 208 board. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;] >tLALODPLM86 V2.304/02/84 23:58:1Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHZH T$ߘD[[ ASYNCHLOADlI RQCREATETASKRQCREATESEGMENT DELETESEGMENT CHECKHEADER LOADERSTART DEàUQQ^&w^SF^&?tF&&^&&^&O& & P^SF&"^&?u8PQvRQPWP^SF^&?tF&6"v][qtLBEGINnY~ VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLALDJ PLM86 V2.304/03/84 00:06:4ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH H T:ɘD[[#ASYNCHLOADIOJOB EXITIOJOBB RQCREATEIOJOBRQCREATEMAILBOXRQRECEIVEMESSAGERQCATALOGOBJECT RQDELE;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:b206.inc) %b206(068H) &G%F&P^SFF&$^&?uz^F&9GvF&^&9G tFFvv^&_S^&wPPFPRQPW&6^ɜ10 ćķ ֆ    , zцC&7^SF^&ty tvPFP^SF^&?uFF;FuFF&^& uݎF&svvP^S^&?ud1v)F^&+GF;sNF)FFvvF]^&m^&`^&gvFPY! 2s }ņRUv ^S^S;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:b208.inc) %b208(180H) ASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH{h INITIALIZEjYYLOADERDATATOKENRQLOADERINITTASK.Copyright 1980, 1981, 1982 Intel Corporation program_version_number=V3.1program_name=iRMX 86 Application LoaderDPUtLCHKSMASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYYCHECKSUMUNF ^&C LRDBUFSIZEΜ DEàU6 64PP]Ä UP6 RP64P>un64PFPPF>uOvPF>u:~u.F&>+u &%PF&vFPF ]"E #*6;BKPWāĔܠUQF.9Fw t$~t20~.)FF.>u}>.uen6 2PQ.664P>uJ02;*u,*2d~t2ȊtLDRENTASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH5ژHL LOADOVERLAYSYNCHLOADIOJOBASYNCHLOADIOJOB ASYNCHLOADLOADERDATATOKENYY LOADERENTRY RQERRORDۜD5.=}VQ.Yσ)DRRRR $PtLDRPUBPLM86 V2.304/03/84 00:00:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHkTDOG SH DtLSETDSASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH HYYSETDSREGUF]&DtLTASKPLM86 V2.304/03/84 00:12:3,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHG H TrD[[ LOADERSTARTYRQCREATEMAILBOXRQCREATESEGMENT RQCREATETASK RQDELETETASKRQGETTASKTOKENSRQLOOKUPOBJECT RQSENDMESSAGERQSETEXCSEXTENSION RQDELETEJOBRQLOADERINITERROR LOADERENTRY{ DEà2UQPPP>uPFP]R (tLIOUTLPLM86 V2.304/03/84 00:01:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHwH TD[[/WAITIOGETFILECONNECTION XREADMOVE茟RQRECEIVEMESSAGERQDELETESEGMENT RQGETTYPE RQAATTACHFILERQAREADRQWAITIOTDATA EXCEPCODE CURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG]DtLDELAYPLM86 V2.304/02/84 23:58:5Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHzH TD[[ DELAYUSERTASKknRQLOOKUPOBJECTRQUNCATALOGOBJECTRQRECEIVEMESSAGE DELETESEGMENT DELETEMAILBOX EXITIOJOB RSTARTMESSAGE DEàU PPPFPF~uWF&6PFPFPF~u5F&FFPPFPF&6v^vRPFP]! ;Ycnt0~NF0).]   .2BNR X_fnq{ ĂċĒ ĘĝġĦīĮĺľԒؒtLPADDASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYY PADDCUFFs] DtLPROLGASM86.86 V2.0wCODECODE??SEGCGROUPۘhH  DELAYUSERTASKu\USERTASKPROL[[TDATARQLOADERINITERROR RESULTDATAV EXCEPCODE@ SKIPOVLDEFRECiABSOLUTECODEFLAGj CURRENTOFFSETBPREVIOUSOFFSETDREADSTARTEDFLAGF BUFFERPTRHMEMPTRL SEGINFOPTRP LNAMESROOTT RINFOSEG RSTARTMESSAGE  DEà R?INFOSEG R?MESSAGEtLINITPLM86 V2.304/03/84 00:00:4,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH.ݘH TD[[ INITIALIZE`O RQENDINITTASKRQSETOEPTIONHANDLERRQACLOSERQADELETECONNECTIONRQAOPENRQAREADALLOCMEMGETINDEX READRECORDSETDSREGGETFILECONNECTIONUSERTASKPROLOG DELETESEGMENT DELETEMAILBOXWAITIO EXITIOJOBTDATA RESULTDATA EXCEPCODEREADSTARTEDFLAG SEGINFOPTRLBUFSIZE LRDBUFSIZE- DEà R?LINFOC N2 U F<+;Fv-^&F&ɱuA<w@ s i]FFPFFPF u^&FF*FH &F~u &GF~w ^&FF^. |ĉĐēĝġĤ ĭĴĽÒцՖܒ"*OvʼnőŧŮŖ9>;t>uFFPF^&?uF^&^&^&?t aFF^&FFָFFFu ^&FFքFu ^&FF t`vPFP^&^&?uDF<H;Fv5^&?tnF֍FPFHF^&&ƒF>tFFF;wo&G sY&G>&; uJ&Gt= t9& u2&WRPFP&&ĤĪĮıĽ)R UQQ>u.PQPFPF~uP6>PFPFs6>] *6CFMYUH؉FFиPP>tr*PPF΃>tsPPF&>ugpPPF>uQvFVйpPP">uPP4>uF&FΉF6$vиPFPF t~FF PPF¡ tPFPP>u;v+Pw&7FuFFFF;w^&7FFu>tF646*6,6&s$6 PPFP6"vF"s tPFPP66"PP>t(6"6>s6FPPPLI %+/6Rhuy}Ā ĉĖĝĤīıĸĿ–ŒȒ̖Ӓܖ(.58<?CFJMPX_d m{Ńut.6P,2>ur6 PP64P>uF>u{6 *PQ.664P>uW>uG;u/>;t>tF^&Ft :s c^&$FFֹ&O&O~ui^&"FF^&u &G F~u^&s&GF^&&G&F1^&&&GF^&&GF~u^&s&G 8;@CGORWZ]ahpsx2F ~t &GFFFF ~uF ,F~u &G%&G FNc AT_ĄĈľŒČʒԖ !);U^&G ^&G^&G ^&G ^&GFv>uhsF&Z&FN FF>u6^S6 S66PF>tFF]vu%)3U[ctĀĊđėĠ?u&G Fu>t >&> u/F>;pu^S>ucF>;pu >u;;$ 'R ľۆ%5@h lsŀŊŔśūźŒˆϖՒ)uЀ>;pu#Fs^S>u>u{>;tF^&FtiWF@tF^& F^&6 64P>uF>u> u >ul>ug;>tU>>tNFFF;P4>ua.6P&F؃>uG&FԡP0YFti FPP>F܉F>u>N>k )7<CLW\gqv}ĩıĵĿĆǒ˖цԖ!'49=CGPVafimux}ŀŇōœŜŨŻÒƒЖٖݖ[I F FډFFމF F܉F.6P*>ŎŕŢūůŶſƒɆ͒ІӒۖJ2 vPPfhk'ϊtLUTILPLM86 V2.304/03/84 00:23:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHdH T,טD[[aALLOCMEM  DELETESEGMENT DELETEMAILBOXMAXGETINDEX READRECORD CHECKHEADER#gRQDELETEMAILBOXRQCREATESEGMENTRQDELETESEGMENTRQGETPOOLATTRIBRQCREATEMAILBOXuyPFPF+ʈN uVFtQRPP>u0v4<+HFP>u{SvP>u6;v66FN*N*<QYFFF;v&FFPPP>u,FFu:<8d :;6] " &,7C]k o{ ċĒ ġĨ įij ǒ Ֆܖ   ! '. 1 4 7 #UFP^SF^&?uNvPPv^S^&FFF^&Z&WF]UEU>t &u׉FV&7&Ov~FQN[ډF^&GQ[߉F^9~u9vr 9^u9Fvp].?zİU&FF~trNF&F~t~t>uDN&FFP>u!~tN&&ߋ]ç5&*4HT^k{ĂĉčŠfU~u(&F&D FuFP\F&>uu)6>N^Y@;8s->t7:<RQACLOSERQAOPENRQAREADRQWAITIOCHECKSUM XREADMOVETDATA RESULTDATA EXCEPCODE BUFFERPTRMEMPTR SEGINFOPTRLBUFSIZE DEànprtvx U>t,FPFP~uuFV+;vVF9F wTPFPF~uF^&F7F ;Ft,F+F F;sNv F+F%PBF뤸] , HݠUQF t PFP]^@UQF t PFP]DBUF;FwF]РXU^&^F&FFF=r%^&?uvvPSF^&?uTpP^SF^&?uuF&>rFF<wkF&| ~&D &TFV tF9Vu9FrF%3K c  ; ?FFFF&-FH &&G&]v9 #'+>BISW[AUF;PPP>uz<.;w#&S6<P>ui; u+Ju6;rs;uMg<.;v>;rt%j16;6<6PFt<>;uFsk9>;xu &?u;u&F&.&>u&>u .&&F&6&6&6PF^&wF&6 &6&6PP^&GvPF^&G &9Gv ty^&G ; ; iSBX 218A Bootstrap driver configuration ; ; b218A (io_base, ; Motor control flag) ; ; $include(:f1:b218A.inc) %b218A(80H,00H) Uv ^S^S] >tLALODPLM86 V2.304/02/84 23:58:1Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHZH T$ߘD[[ ASYNCHLOADlI RQCREATETASKRQCREATESEGMENT DELETESEGMENT CHECKHEADER LOADERSTART DEàUQQ^&w^SF^&?tF&&^&&^&O& & P^SF&"^&?u8PQvRQPWP^SF^&?tF&6"v][qss_ VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLALDJ PLM86 V2.304/03/84 00:07:5ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T:ɘD[[#ASYNCHLOADIOJOB EXITIOJOB0 RQCREATEIOJOBRQCREATEMAILBOXRQRECEIVEMESSAGERQCATALOGOBJECT RQDELE; ; iSBC 215 Bootstrap driver configuration ; ; b215( Wakeup address, ; Number of cylinders, ; Number of fixed heads, ; Number of removable heads, ; Number of sectors per track, ; Number of bytes per sector, ; Number of alternates) ; ; Unit numbering (in bs1.a86) is the same as for the I/O System driver. ; (See iconfg.a86) ; ; For iSBC 220 use b220 macro instead with the same parameters ; $include(:f1:b215.inc) %b215(100H, 256, 2, 0, 9, 1024, 5) %end t t;FsF^&G%F&P^SFF&$^&?uz^F&9GvF&^&9G tFFvv^&_S^&wPPFPʜ10 ćķ  ( , 0 >  RQPW&6^&7^SF^&ty tvPFP^SF^&?uFF;FuFF&^& uݎF&svvP^S^&?ud1v)F^&+GF;sNF)FFvvF]^&m^&`^&gvFPP!Bă φՆѠ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for iSBX 251 board bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The 251 board macro is: ; ; b251(IO_base, Dev_gran) ; ; IO_base is the I/O base port number selected on the 251 board. ; Dev_gran is the page size in byttLBEGINASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH{h INITIALIZEjYYLOADERDATATOKENRQLOADERINITTASK.Copyright 1980, 1981, 1982 Intel Corporation program_version_number=V3.1program_name=iRMX 86 Application LoaderDPUtLCHKSMASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYYCHECKSUMUREADSTARTEDFLAG LRDBUFSIZEΜ DEàU6 64PP]Ä UP6 RP64P>un64PFPPF>uOvPF>u:~u.F&>+u &%PF&vFPF ]"E #*6;BKPWāĔܠUQF.9Fw t$~t20~.)FF.>u}>.uen6 2PQ.664P>uJ02;*u,*cntȊtLDRENTASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH5ژHL LOADOVERLAYSYNCHLOADIOJOBASYNCHLOADIOJOB ASYNCHLOADLOADERDATATOKENYY LOADERENTRY RQERRORDۜD5.=}VQ.Yσ)DRRRR $PtLDRPUBPLM86 V2.304/03/84 00:00:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHkTUSERTASKPROLOG SH DtLSETDSASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH HYYSETDSREGUF]&DtLTASKPLM86 V2.304/03/84 00:15:0,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH H TrD[[ LOADERSTARTYRQCREATEMAILBOXRQCREATESEGMENT RQCREATETASK RQDELETETASKRQGETTASKTOKENSRQLOOKUPOBJECT RQSENNDINITTASKRQSETOSEXTENSION RQDELETEJOBRQLOADERINITERROR LOADERENTRY{ DEà2UQPPP>uPFP]R (tLIOUTLPLM86 V2.304/03/84 00:01:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHwH TD[[/WAITIOGETFILECONNECTION XREADMOVE茟RQRECEIVEMESSAGERQDELETESEGMENT RQGETTYPE RQAATTACHFILERQAREADRQWAITIOTDATA EXCEPCODE CURRENTOFFSETPREVIOUSOFFSETNF ^&C]DtLDELAYPLM86 V2.304/02/84 23:58:5Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHzH TD[[ DELAYUSERTASKknRQLOOKUPOBJECTRQUNCATALOGOBJECTRQRECEIVEMESSAGE DELETESEGMENT DELETEMAILBOX EXITIOJOB RSTARTMESSAGE DEàU PPPFPF~uWF&6PFPFPF~u5F&FFPPFPF&6v^vRPFP]! ;Y2d~t20~NF0).]   .2BNR X_fnq{ ĂċĒ ĘĝġĦīĮĺľԒؒtLPADDASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYY PADDCUFFs] DtLPROLGASM86.86 V2.0wCODECODE??SEGCGROUPۘhH  DELAYUSERTASKu\D[[TDATARQLOADERINITERROR RESULTDATAV EXCEPCODE@ SKIPOVLDEFRECiABSOLUTECODEFLAGj CURRENTOFFSETBPREVIOUSOFFSETDREADSTARTEDFLAGF BUFFERPTRHMEMPTRL SEGINFOPTRP LNAMESROOTT RINFOSEG RSTARTMESSAGE  DEà R?INFOSEG R?MESSAGEtLINITPLM86 V2.304/03/84 00:00:4,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH.ݘH TD[[ INITIALIZE`O RQEDMESSAGERQSETEXCEPTIONHANDLERRQACLOSERQADELETECONNECTIONRQAOPENRQAREADALLOCMEMGETINDEX READRECORDSETDSREGGETFILECONNECTIONUSERTASKPROLOG DELETESEGMENT DELETEMAILBOXWAITIO EXITIOJOBTDATA RESULTDATA EXCEPCODEREADSTARTEDFLAG SEGINFOPTRLBUFSIZE LRDBUFSIZE- DEà R?LINFOC N2 U F<+;Fv-^&F&ɱuA<w@ s i]FFPFFPF u^&FF*FH &F~u &GF~w ^&F|ĂĆčĕĘ ġĮĵĸ†ƒɖΆ Җٖކ *GOtśŮŶ̖Ӗ7F~u^&s&G>;t>uFFPF^&?uF^&^&^&?t aF^&FFָFFFu ^&FFքFu ^&FF t`vPFP^&^&?uF<H;Fv5^&?tF֍FPFHF^&&ƒF>t%FFF;wo&G sY&đėĠĤĪĮıĽ)R UQQ>u.PQPFPF~uP6>PFPFs6>] *6CFMYUH؉FFиPP>t^ r*PPF΃>tsPPF&>ugpPPF>uQvFVйpPP">uPP4>uF&FΉF6$vиPFPF t~FF PPF¡ tPFPP>u;v+*F$pF< w FPF~0uFF":uF"F:u^&FF FPFFuF~t~u~Pu F":to^. FHF&F&GF#FHFF^&^& F^&>;pu#Fs^S >u>u{l(/5>S^Ċ,fhjln}ŁŲĒݖ >;tF^&FtiWF@tF^& F^&6 64P>uF>u> u >u FډFFމF F܉F.6P*>ut.6P,2>ur6 PP64P>uF>u{6 *PQ.664P>uW>uG;u/>;t>tF^&Ft :s c^&$FFֹ&O&O~ui^&"FF^&u &G F~u^&s&GF^&&G&F1^&&&GF^&&G+1C]`ehltwF^.2F ~t &GFFFF ~uF ,F~u &G%&G FNc AT_ĄĈľŒČʒԖ !);U^&G ^&G^&G ^&G ^&GFv>uhsF&Z&FN FF>u6^S6 S66PF>tFF]vu%)3U[ctĀĊG>&; uJ&Gt= t9& u2&WRPFP&&?u&G Fu>t >&> u2F>;pu^S>uF>;pu ל'/9Lwʆ %)8DJZe őŘťůŹВߖ&>tZ;:u:u9.6P&F؃>uj>u.6P(Fԃ>uIF؉FԡP0YFti FPP>F )7<CLW\gqv}ĩıĵĿĆǒ˖цԖ!'49=CGPVafimux}ŀŇŎŖřšŨŶſ˒ޖGF>u>N> Fl>ug;>tU>>tNFFF;w&7FuFFFF;w^&7FFu>tF646*6,6&>u6(s$6 PPFP6"vF"s tPFPP66"PP>t(6"6>s6FPPP,vPPfhU4AEILQ U[bipw}ĄċĎđĔĘğĨĴĺĖ>(u<.;v;:<8:u)6>N^Y@;8s>œ\   % *05 < ?CI O SY \u | ć ČĒĘ Ģī İĶ ĽŒ ɒ ͒Ԇ     " ),4 : ?G J M P S ^iw ŃʼnōŒŚŞŢŧ Ų RQCREATESEGMENTRQDELETESEGMENTRQGETPOOLATTRIBRQCREATEMAILBOXRQACLOSERQAOPENRQAREADRQWAITIOCHECKSUM XREADMOVETDATA RESULTDATA EXCEPCODE BUFFERPTRMEMPTR SEGINFOPTRLBUFSIZE DEànprtvx U>t,FPFP~uuFV+;vVF9F wTPFPF~uF^&F7F ;Ft,F+F F;sNv F+F%PBF뤸] , HݠUQF t PFP]^@UQF t PFP]DBU֒  & - 8 @ O R X_ b e h TUFP^SF^&?uNvPPv^S^&?uvvPSF^&?uTpP^SF^&?uuF&>v4HT^k{ĂĉčŠfU~u(&&-FH &&G&]v9 #'+>BISW[AUF;PPP>u2<.;w*( u&S6<P>ui; u+Ju6;rs;uM`<.;v>;rt%j16;6<6PFtf>;uFskc>;xu &?u; GU]ho|ŅʼnŐřŠŧŭŵŽ†ц݆ؖ  ktLUTILPLM86 V2.304/03/84 00:25:2ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH3H T,טD[[aALLOCMEM  DELETESEGMENT DELETEMAILBOXMAXGETINDEX READRECORD CHECKHEADERT6RQDELETEMAILBOXŶ–ɖΖߖ ErtY:<.;wFSPP>uyPFPF+ʈN uVFtQRPP>u0v%<+HFP>u{SvP>u6;v66FN*N*<QYFFF;v&FFPPP>uNFFu2:( t&Q<^<8d :;6]À %1 5;FRlz ~Ċ ĎĚġ İķ ľ–ņ F;FwF]РXU^&^F&FFF=r%^&FFF^&Z&WF]UEU>t &u׉FV&7&Ov~FQN[ډF^&GQ[߉F^9~u9vr 9^u9Fvp].?zİU&FF~trNF&F~t~t>uDN&FFP>u!~tN&&ߋ]ç5&*FF<wkF&| ~&D &TFV tF9Vu9FrF%3K c  ; ?CFFFFF&D FuFP\F&>uu&F&&&>t &&F&>u&>u .&&F&6&6&6PF^&wF&6 &6&6PP^&GvPFON XREADMOVEPADDUSERTASKPROLOGSETDSREG LOADERSTARTALLOCMEM DELETESEGMENT DELETEMAILBOXMAXGETINDEX READRECORD CHECKHEADER LOADOVERLAY #rUv ^S^S] ̜>tLALODPLM86 V2.304/02/84 23:58:1Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHZH T$ߘD[[ ASYNCHLOADlI RQCREATETASKRQCREATESEGMENT DELETESEGMENT CHECKHEADER LOADERSTART DEàUQQ^&w^SF^&?tF&&^&&^&O& & P^SF&"^&?u8PQvRQPWP^SF^&?tF&6"v] VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLALDJ PLM86 V2.304/03/84 00:09:1ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH,ܘH T:ɘD[[#ASYNCHLOADIOJOB EXITIOJOB RQCREATEIOJOBRQCREATEMAILBOXRQRECEIVEMESSAGERQCATALOGOBJECT RQDELEP1LALDJLALODLBEGINLCHKSMLDELAYLDRENTLDRPUBLINITLIOUTLLPADDLPROLGLSETDSLTASKLUTILLOVLDYA r %g% J!/)`+,8-hUnrASYNCHLOADIOJOB EXITIOJOB ASYNCHLOADLOADERDATATOKENRQLOADERINITTASKCHECKSUM DELAYUSERTASK LOADERENTRYRQERRORTDATARQLOADERINITERROR RESULTDATA EXCEPCODE SKIPOVLDEFRECABSOLUTECODEFLAG CURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG BUFFERPTRMEMPTR SEGINFOPTR LNAMESROOTRINFOSEG RSTARTMESSAGE INITIALIZEWAITIOGETFILECONNECTI^&G &9Gv ty^&G t t;FsF^&G%F&P^SFF&$^&?uz^F&9GvF&^&9G tFFvv^b-0 ćķ ! % D H L Z +&_S^&wPPFPRQPW&6^&7^SF^&ty tvPFP^SF^&?uFF;FuFF&^& uݎF&svvP^S^&?ud1v)F^&+GF;sNF)FFvvF]^&m^&`^&gvFP|%7`ġes. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:b251.inc) %b251(80H, 64) [qtLBEGINASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH{h INITIALIZEjYYLOADERDATATOKENRQLOADERINITTASK.Copyright 1980, 1981, 1982 Intel Corporation program_version_number=V3.1program_name=iRMX 86 Application LoaderDPUtLCHKSMASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG LRDBUFSIZEΜ DEàU6 64PP]Ä UP6 RP64P>un64PFPPF>uOvPF>u:~u.F&>+u &%PF&vFPF ]"E #*6;BKPWāĔܠUQF.9Fw t$~t20~.)FF.>u}>.uen6 2PQ.664P>uJP]! ;YcntȊtLDRENTASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH5ژHL LOADOVERLAYSYNCHLOADIOJOBASYNCHLOADIOJOB ASYNCHLOADLOADERDATATOKENYY LOADERENTRY RQERRORDۜD5.=}VQ.Yσ)DRRRR $PtLDRPUBPLM86 V2.304/03/84 00:00:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPn DELAYUSERTASKu\USERTASKPROLOG SH DtLSETDSASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH HYYSETDSREGUF]&DtLTASKPLM86 V2.304/03/84 00:18:0ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHXH TxD[[ LOADERSTARTYRQCREATEMAILBOXRQCREATESEGMENT RQCREATETASKRQCATALOGOBJECT RQDELET INITIALIZE`O RQENDINITTASKRQSETOSEXTENSION RQDELETEJOBRQLOADERINITERROR LOADERENTRY{ DEà2UQPPP>uPFP]R (tLIOUTLPLM86 V2.304/03/84 00:01:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHwH TD[[/WAITIOGETFILECONNECTION XREADMOVE茟RQRECEIVEMESSAGERQDELETESEGMENT RQGETTYPE RQAATTACHFILERQAREADRQWAITIOTDATA EXCEPCODE CYCHECKSUMUNF ^&C]DtLDELAYPLM86 V2.304/02/84 23:58:5Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHzH TD[[ DELAYUSERTASKknRQLOOKUPOBJECTRQUNCATALOGOBJECTRQRECEIVEMESSAGE DELETESEGMENT DELETEMAILBOX EXITIOJOB RSTARTMESSAGE DEàU PPPFPF~uWF&6PFPFPF~u5F&FFPPFPF&6v^vRPF02;*u,*2d~t20~NF0).]   .2BNR X_fnq{ ĂċĒ ĘĝġĦīĮĺľԒؒtLPADDASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYY PADDCUFFs] DtLPROLGASM86.86 V2.0wCODECODE??SEGCGROUPۘhH hHHkTD[[TDATARQLOADERINITERROR RESULTDATAV EXCEPCODE@ SKIPOVLDEFRECiABSOLUTECODEFLAGj CURRENTOFFSETBPREVIOUSOFFSETDREADSTARTEDFLAGF BUFFERPTRHMEMPTRL SEGINFOPTRP LNAMESROOTT RINFOSEG RSTARTMESSAGE  DEà R?INFOSEG R?MESSAGEtLINITPLM86 V2.304/03/84 00:00:4,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH.ݘH TD[[ETASKRQGETTASKTOKENSRQLOOKUPOBJECTRQRECEIVEMESSAGE RQSENDMESSAGERQSETEXCEPTIONHANDLERRQACLOSERQADELETECONNECTIONRQAOPENRQAREADALLOCMEMGETINDEX READRECORDSETDSREGXSEEKGETFILECONNECTIONUSERTASKPROLOG DELETESEGMENT DELETEMAILBOXWAITIO EXITIOJOBTDATA RESULTDATA EXCEPCODE SKIPOVLDEFRECPREVIOUSOFFSETREADSTARTEDFLAG SEGINFOPTR LNAMESROOTRINFOSEGLBUFSIZE LRDBUFSIZE DEà R?LINFOC N2 U F<+;Fv-^&F&ɱuA<&G&F1^&&   '+ 7 =Oi$lqtxă$ĆĎđĕğħĪ ijʒ͒׆$ےޖ)He m Œ Ź ̖ Ԗ 6&GF^&&GF~u^&s&G>t*FFPFFPFFP&G>;t>uFFPF^&?uF^&^&^&?t aF^&FFָF^S6 S66PF>tFF]vu%)3U[ctĀĊđėĠĤĪĮıĽR UQQ>u.PQPFPF~uP6>PFPFs6>] *6 CF>YUN؉FFʸPP>t r*PPFȃ>tsPPF&>ugpPPF>uQvFVʹpPP">uPP4>u&v^&tOFFٸPP>&>t)PP>&>t FFF;wo&G sY&G>&; uJ&Gt= t9& u2&WRPFP~7 CK!W u Ėĭ ķ Ŀ   !!?CX]aivŜ#şŧŮſȒԒG>F܉F>tc >N> F FډFFމF F܉F.6P*>t .6P,2>t 6 PP64P>uF>t 6 *PQ.664P>t >tw ;t\ >;tE>tF^&Ft :s c* ^&$FFֹ&O&O~ui^&"FF^&u &G F~u^&s&GF^&w@ s i]FFPFFPF u^&FF*FH &F~u &GF~w ^&FF^.2F ~t &GFFFF ~uF ,F~u &G%&G FNc AT_Ą Ĉ ľŒČʒԖ   !)ޠ;U^&G ^&G^&G ^&G ^&GFv>uhsF&Z&FN FF>u6FFu ^&FFքFu ^&FF tfvPFP^&^&?uF<H;Fv;^&?t i=F֍FPFHF^&&뼃F>tF>u>;vtFFs* >u>t>;vuFFv& ~  > FU`ko w ĉǖ3FVe o {őśűŴźžĖʆΖؒ&^Y^&F@F^&&W^&G,&W.F0릋FFF;vFFF&FȉF6$vʸPFPF t ~FF PPF tPFPP>u;v+!PP4>t .6P&F؃>t >u.6P(Fԃ>t F؉FԡP0YFtl FPPY )7<CLW\gqv}ĩıĵĿĆǒ˖цԖ !'49=CGPVafimx#{ŃŊŔ{ŇőŘ ŤŪ źŖ ' &&?u&G Fu>t >&> u[F>;pu^S>tSFFs>t;>;pt>;ptFs >t;:ud:t,FPFP~uuFV+;vVF9F wTPFPFPFPPF>t>& ;FFF;wE&G s/&G s'&G t>&; t&7&G Fu>& H0FF͜ ! % Vhr|ċĒęġĮĻƒΖޒ" +5BG KRchovņ ŒŘ Ŵſ ņɖ Ӗ ݒ ^&G,&W. >u>u+>;pu#Fs#^S>u>u{>;tF^&FtiW.?zİU&FF~trNF&F~t~t>uDN&FFP>u!~tN&&ߋ]ç5&*4HT^k{ĂĉčfU~u(&&-FH &&G&]v9 #'+>BISW[4UF;PPP>uf>;up>ti<PPF>u?>uF FF&FF&  "( .2 JUbhorvy}ńŋŒŘŠŧ ŵÒ˖֒ݖ~|66"PP>t(6"6>s6FPPPvPPfhkhP[   #'*-5=BQX]aiq^tLUTILPLM86 V2.304/03/84 00:27:3ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHJ !~tS~PtJF":t<z}  *1APdhry}Ďėıĸľǒ܆x ^.  = W ] FHF&F&GF#FHFF^&^& F^&>u>;xt>&> t> u>u lsFP6"vF>t"P6>PP>t66"PP>tP>&> t" >&PPPP>u>&6~uF^&F7F ;Ft,F+F F;sNv F+F%PBF뤸] , HݠUQF t PFP]^@UQF t PFP]DBUF;FwF]РXU^&^F&FFF=r%^&FFF^&Z&WF]UEU>t &u׉FV&7&Ov~FQN[ډF^&GQ[߉F^9~u9vr 9^u9Fvp]F@tF^& F^&6 64P>uF>u> u >ul>ug;>t> t &> t(>tU>>tNFFF;w&7FuFFFF;w^&7FFu>tF646*6,6&>u6(s$6 PPFP6"vF"s tPFPP^9 !+DJNUqćĔĘĜğ ĨĵļÒʖЖזޖFPQ6<P>uA6<F&Do<.;w*( u&S6<P>uw>;vur; u+Ju6;rs;uM<.;v>;rt%j16;6<6PFtf>;uFskc>;xu &?u;(u<.;v;:<8:un6 P6 664P>uF>u90.,26 *QP.664P>u]͜w  $(+04: AJMQUY]d h{SvP>u6;v66FN*N*<QYFFF;v&FFPPP>uNFFu2:i( t&Q<^<8d :;6 "'/37< G KW^cty ĂĎ Ē ėĠĪ ĺ˖ז  &1 5< CGJ [ ipyʼn Ŝū Ų Ž Œ Ԓ ג ݖ ]UAGE INITIALIZEWAITIOGETFILECONNECTION XREADMOVEPADDUSERTASKPROLOGSETDSREG LOADERSTARTALLOCMEM DELETESEGMENT DELETEMAILBOXMAXGETINDEX READRECORD CHECKHEADER LOADOVERLAYXSEEKF  ; ?FFFFF&D FuFP\F^&?u&gvv]^&b^&e^&o^&d"tLDOVLYPLM86 V2.304/02/84 23:59:3і,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T(ۘD[[ LOADOVERLAYXSEEKxRQLOOKUPOBJECT RQSENDMESSAGERQRECEIVEMESSAGERQASEEKRQAREADTDATA EXCEPCODEREADSTARTEDFLAGRINFOSEG LRDBUFSIZEWAITIOJ DEà UP ʖђ זޒ   # '0 5; BJ N RY g u~ ŅŎ š Ť ŧ ŮűŹ ſ Ć̒ ϒ Ғ Ւ ؒ PP0:u)6>N^Y@;8s>tY:<.;wFSPP>uyPDFP9F+ʈN uVFtQRPP>u0v<+HFPB>ukpt{tp VERSIONV3P1LALDJLALODLBEGINLCHKSMLDELAYLDRENTLDRPUBLINITLIOUTLLPADDLPROLGLSETDSLTASKLUTILLDOVLYA r A#A4%f!K)|+-,T.c kASYNCHLOADIOJOB EXITIOJOB ASYNCHLOADLOADERDATATOKENRQLOADERINITTASKCHECKSUM DELAYUSERTASK LOADERENTRYRQERRORTDATARQLOADERINITERROR RESULTDATA EXCEPCODE SKIPOVLDEFRECABSOLUTECODEFLAG CURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG BUFFERPTRMEMPTR SEGINFOPTR LNAMESROOTRINFOSEG RSTARTMESSFP^SF^&?uNvPPv^S^&?uvvPSF^&?uTpP^SF^&?uuF&>vFF<wkF&| ~&D &TFV tF9Vu9FrFG%3K c;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for iSBC 254 board bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The 254 board macro is: ; ; b254(IO_base, Dev_gran, Num_boards, Board_size) ; ; IO_base is the I/O base port number selected on the 254 board. ; Dev_gran32h, 6, 0, 240, 0, 240, 11) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for SASI bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The SASI macro is: ; ; bsasi( a port, ; b port, ; c port, ; control port, ; init command, ; init count, ; init data) ; ; where: ; ; init command is the inir the I/O System driver. ; (See iconfg.a86) ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:bscsi.inc) %bscsi( 0C8H, 0CAH, 0CCH, 0CEH, 080H, 0 ) %*DEFINE (b251(base,dev_gran)) ( name b251 public base_251, dev_gran_251 code_bs251 segment byte public 'CODE' base_251 dw %base dev_gran_251 dw %dev_gran code_bs251 ends end)  is the page size in bytes. ; Num_boards is the maximum number of iSBC 254 boards in the system. ; Board_size is the size in pages of each board. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:b254.inc) %b254(0880H, 256, 8, 2048) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sample configuration file for SCSI bootstrap driver ; ; A configuration file for a bootstrap driver consists of ; an include of the bootstrap driver macro file followed ; by an invocation of the configuration macro for the driver. ; ; The SCSI macro is: ; ; bscsi( a port, ; b port, ; c port, ; control port, ; host id, ; arbitrate flag) ; ; ; Unit numbering (in bs1.a86) is the same as fotialization command for the SASI ; controller. ; init count is the number of initialization bytes to be sent ; to the controller. ; init data is a list of bytes, seperated by commas, that ; are the initialization data for the controller. ; ; ; ; Unit numbering (in bs1.a86) is the same as for the I/O System driver. ; (See iconfg.a86) ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $include(:f1:bsasi.inc) %bsasi( 0C8H, 0CAH, 0CCH, 0CEH, 00CH, 8, 1,  name bcsdm $title(bcsdm ci and co from iSDM 86/286) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; TITLE: bcsdm ; short path to iSDM ci and co for bootstrap ; ; DATE: 10 FEB 1983 ; ; ABSTRACT: Provides an indirect link to the large model ci ; and co procedures in the iSDM 86/286 monitor. ; The iSDM 86/286 interface routines add too much ; code which is not needed by the bootstrap. ; ; LANGUAGE DEPENDENCIES: Compatible with PL/M 86 LARGE model. ; ; ; TEJOB RQEXITIOJOB DELETESEGMENT DELETEMAILBOXMAXPADD CHECKHEADER RSTARTMESSAGELBUFSIZE LRDBUFSIZELDEFAULTMEMPOOL LOADERSTART DEàUFF^&G &;Gs tq^&w^SF^&?t@F&^&G&^&G%F&^&&^&G& .PP ʋ&&&&0.&&.&>u&>u .&&F&6&6&6PF^&wF&6 &6&6PP^&GvPF^&G &9Gv tE^&G t t;FsF^ endp ci proc far db 0eah ; code for long jump dw 8,0fffdh ; to fffd8h ci endp code ends end  23:58:1Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHZH T$ߘD[[ ASYNCHLOADlI RQCREATETASKRQCREATESEGMENT DELETESEGMENT CHECKHEADER LOADERSTART DEàUQQ^&w^SF^&?tF&&^&&^&O& & P^SF&"^&?u8PQvRQPWP^SF^&?tF&6"v][qtLBEGINASM86.86 V2.0w*DATADATACODECODE??SEGDG[R VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLALDJ PLM86 V2.304/03/84 00:05:3ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH?H T:ɘD[[#ASYNCHLOADIOJOB EXITIOJOBv RQCREATEIOJOBRQCREATEMAILBOXRQRECEIVEMESSAGERQCATALOGOBJECT RQDELE ; INTEL CORPORATION PROPRIETARY INFORMATION ; ; This software is supplied under the terms of a ; license agreement or nondisclosure agreement with ; Intel Corporation and may not be copied or disclosed ; except in accordance with the terms of that agreement. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; public ci public co code segment public 'CODE' co proc far db 0eah ; code for long jump dw 0,0fffdh ; to fffd0h co&G%F&P^SFF&$^&?unFF&^&9G tFFvv^&_S^&wPPFPRQPW&6^&7^SF,50 ćķ ֆ    , zņT^&tu uqvPFP^SF^&?uF;FuFpF&^& ugF&svvP^S^&?u@ vFvvF]^&m^&`^&gvFP<!a k|SUv ^S^S] />tLALODPLM86 V2.304/02/84BS1DATASTACKBOOTCODE??SEG CODE_ERROR CODE_BS204 CODE_BS206 CODE_BS208 CODE_BS215 CODE_BS218A CODE_BS251 CODE_BS254 CODE_BSASI CODE_BSCSI DATA_BS204 DATA_BS206 DATA_BS208 DATA_BS215 DATA_BS218A DATA_BS251 DATA_BS254 DATA_BSASI DATA_BSCSIMEMORY BTFLOP_CODE BTFLOP_DATAs >X =' R: :7 :p N= ߘ l=v* = = E =   =  = @ *>} e A> . Z>  {> : :  :ROUPCGROUPhH{h INITIALIZEjYYLOADERDATATOKENRQLOADERINITTASK.Copyright 1980, 1981, 1982 Intel Corporation program_version_number=V3.1program_name=iRMX 86 Application LoaderDPUtLCHKSMASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYYCHECKSUMUNF ^&C]DtLDELAYPLM86 V2.304/02/8P]Ä UP6 RP64P>un64PFPPF>uOvPF>u:~u.F&>+u &%PF&vFPF ]"E #*6;BKPWāĔܠUQF.9Fw t$~t20~.)FF.>u}>.uen6 2PQ.664P>uJ02;*u,*2d~t20~NF0).]   ODECODE??SEGDGROUPCGROUPhH5ژHL LOADOVERLAYSYNCHLOADIOJOBASYNCHLOADIOJOB ASYNCHLOADLOADERDATATOKENYY LOADERENTRY RQERRORDۜD5.=}VQ.Yσ)DRRRR $PtLDRPUBPLM86 V2.304/03/84 00:00:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHkTD[[TDATARQLOADERINITERRORASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH HYYSETDSREGUF]&DtLTASKPLM86 V2.304/03/84 00:10:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHUH TrD[[ LOADERSTARTY|RQCREATEMAILBOXRQCREATESEGMENT RQCREATETASK RQDELETETASKRQGETTASKTOKENSRQLOOKUPOBJECT RQSENDMESSAGERQSETEXCEPTIONHANDLERRQACLOSERQADELETECONNECTIONRQAOPETRY{ DEà2UQPPP>uPFP]R (tLIOUTLPLM86 V2.304/03/84 00:01:1,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHwH TD[[/WAITIOGETFILECONNECTION XREADMOVE茟RQRECEIVEMESSAGERQDELETESEGMENT RQGETTYPE RQAATTACHFILERQAREADRQWAITIOTDATA EXCEPCODE CURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG LRDBUFSIZEΜ DEàU6 64P4 23:58:5Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHzH TD[[ DELAYUSERTASKknRQLOOKUPOBJECTRQUNCATALOGOBJECTRQRECEIVEMESSAGE DELETESEGMENT DELETEMAILBOX EXITIOJOB RSTARTMESSAGE DEàU PPPFPF~uWF&6PFPFPF~u5F&FFPPFPF&6v^vRPFP]! ;YcntȊtLDRENTASM86.86 V2.0w*DATADATAC.2BNR X_fnq{ ĂċĒ ĘĝġĦīĮĺľԒؒtLPADDASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHHYY PADDCUFFs] DtLPROLGASM86.86 V2.0wCODECODE??SEGCGROUPۘhH  DELAYUSERTASKu\USERTASKPROLOG SH DtLSETDS RESULTDATAV EXCEPCODE@ SKIPOVLDEFRECiABSOLUTECODEFLAGj CURRENTOFFSETBPREVIOUSOFFSETDREADSTARTEDFLAGF BUFFERPTRHMEMPTRL SEGINFOPTRP LNAMESROOTT RINFOSEG RSTARTMESSAGE  DEà R?INFOSEG R?MESSAGEtLINITPLM86 V2.304/03/84 00:00:4,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH.ݘH TD[[ INITIALIZE`O RQENDINITTASKRQSETOSEXTENSION RQDELETEJOBRQLOADERINITERROR LOADERENNRQAREADGETINDEX READRECORDSETDSREGGETFILECONNECTIONUSERTASKPROLOG DELETESEGMENT DELETEMAILBOXWAITIO EXITIOJOBTDATA RESULTDATA EXCEPCODEREADSTARTEDFLAG SEGINFOPTRLBUFSIZE LRDBUFSIZE DEà R?LINFOC N2 U F<+;Fv-^&F&ɱuA<w@ s i]FFPFFPF u^&FF*FH &F~u &GF~w ^&FF^.2F ~t &GFFFF ~uF ,Ֆۆߖ%)-05 9?FMT[ahorux|ʼnŐŗŞŤŬų ϒז~6FPP66"PP>t(6"6>s6FPPP~vPPfkϜ[ #*-147?GL[bgksVtLUTILPLM86 V2.304/03/84 00:21:3,STACKMEMORYCODEDATACONSTDGROUFPF~uP6>PFPFs6>] *6CFQYUH؉FFиPP>t r*PPF΃>tsPPF&>ugpPPF>uQvFVйpPP">uPP4>uF&FΉF6$vиPFPF t2~FF PPF¡ tPFPP>u;v+PP4>uX.6P&F؃>uf&FԸF܉F.6U^&^F&?rFFF^&Z&WF]1U>t &u׉FV&7&Ov~FQN[ډF^&GQ[߉F^9~u9vr 9^u9Fvp].?zİ FU&FF~trNF&F~t~t>uDN&FFP>u!~tN&&ߋ]`5&*4H T^k {ĂĉčҠU^SG>u[F>;pu >u;;u؀>;pu#Fs^S>u>u{>;tsF^&FtiWF@tF^& F^&6 64P>uF>u> u >ul>ug;>tF646*6,6&s$6 PPFP6"v,F"s tPO  " &-26=FJP\csĂčėĝĭĴļF~u &G%&G FNc AT _ ĄĈľŒČʒԖ !)*;U^&G ^&G^&G ^&G ^&GFv>uhsF&Z&FN FF>u6^S6 S66PF>tFF]vu%)3U[ctĀĊđėĠĤĪĮıĽ=R UQQ>u.PQPPCGROUPnhHJH T,טD[[U DELETESEGMENT  DELETEMAILBOX'MAXAGETINDEXS READRECORD CHECKHEADERRQDELETEMAILBOXRQCREATESEGMENTRQDELETESEGMENTRQCREATEMAILBOXRQACLOSERQAOPENRQAREADRQWAITIOCHECKSUM XREADMOVETDATA RESULTDATA EXCEPCODE BUFFERPTRMEMPTR SEGINFOPTRLBUFSIZE DEànprtvx UQF t PFP]@'UQF t PFP]BAUF;FwF]n=SP*>ut.6P,2>un6 PP64P>uFќ0 )7<CLW\gqv}ĩıĵĿĆǒ˖цԖ!'49=CGPVafimux}ŀŇōŞšũŭŵŸÒǖΒٖ֒ކ ̠F>u~6 *PQ.664P>uo>u_>;t>uK;t >&> u/F>;pu;PPP>ua<.;w#&S6<P>uj; u+Ju>;r ;u_<.;v j6;6<6PFt>;tـ>;xu &?u;:u-8+HFPS>uB6>N^Y@;8s >u:<8d :;6]Z   ! &,1 48> D H N Qj M !: P F:  Q: Q: Q: Q: >k Q:  >+{|m{ |Uuqz{ Hun Ž tr=AUTO_DEVICE_SELECTBOOTSTRAP_BEGINBOOTSTRAP_ENTRYBS_ECHO CAN_ECHOCICO DEFAULT_FILE DEVICE_TABLE FIRSTSTAGE GET_FILE_NAME MANUAL_DEVICE_SELECTPROMPT5*:DEBUGR LINE_BUFFER POLLTIMES,N=BSERROR Ul=BASE_204 DEVICEINIT204G D;Fvvv^S^&?uvvPSF^&?uEvgFvvvPFudNPXQpF&>u APORT_SASI  BPORT_SASICONTROLPORT_SASI CPORT_SASIDEVICEINITSASIDEVICEREADSASI INIT_COMMAND INIT_COUNT{> APORT_SCSIARBITRATE_SCSI BPORT_SCSICONTROLPORT_SCSI CPORT_SCSIDEVICEINITSCSIDEVICEREADSCSIe HOSTID_SCSI>TRANSLATE_FLOPPY6 JBS1ASM86.86 V2.0w=XX[،؎..~Copyright 1980, 1981, 1982, 1983, 1984 Intel CorGSETDSREG LOADERSTART DELETESEGMENT DELETEMAILBOXMAXGETINDEX READRECORD CHECKHEADER LOADOVERLAY,q } Ą ĉďĕ ğ Ĩ ĭij ļ Ēˆ ْ        %+/4<@DJ P T` gl}ł ŋ Ŕ Ř ś š Ũ ū Ů ű UFP^SF^&?uNvPPv^S^&?uvvPSF^&?uTpP^SF^&?uBASE_251 DEVICEINIT251 DEVICEREAD251 DEV_GRAN_251=gA>BAAYLDRENTLDRPUBLINITLIOUTLLPADDLPROLGLSETDSLTASKLUTILLOVLDYA r _A!_RC i)*K+r-"G0YxުASYNCHLOADIOJOB EXITIOJOB ASYNCHLOADLOADERDATATOKENRQLOADERINITTASKCHECKSUM DELAYUSERTASK LOADERENTRYRQERRORTDATARQLOADERINITERROR RESULTDATA EXCEPCODE SKIPOVLDEFRECABSOLUTECODEFLAG CURRENTOFFSETPREVIOUSOFFSETREADSTARTEDFLAG BUFFERPTRMEMPTR SEGINFOPTR LNAMESROOTRINFOSEG RSTARTMESSAGE INITIALIZEWAITIOGETFILECONNECTION XREADMOVEPADDUSERTASKPROLOporation program_version_number=V6.0program_name=iAPX 86, 88 Bootstrap Loader..Ʉ7 =oR&?Dt&?du:& u RC& t& t& t >RuCRȎ.>Rt ?PyPPPL7PhPN=P PSPPSQPQ3PPR:RPȎ؍:^ ^C^^ (>Ru Ȏ؍Ȏ؍ ^R:< s$P=CC uÊCP=::Loading :f0:Gl=l=+=:f1:Gl=l=M=:f2:Gl=l=K=:f3:Gl=l=: =:af0:==!=:af1:M86 V2.304/03/84 00:02:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[SYNCHLOADIOJOB2 DEàU^&]|t VERSIONV3P1LAJBDYLSJBDYz rn]-ASYNCHLOADIOJOB EXITIOJOBSYNCHLOADIOJOB&P=X@P&XP=<r X3P Í=<uP=C01: I/O error11: Device not ready12: Device does not exist13: No device is ready21: File not found22: Bad checksum23: Premature end of file24: No start address in load file Bootstrap Error of unknown typeAvailable devices: B204ASM86.86 V2.0w l=B206ASM86.86 V2.0w= hBB208ASM86.86 V2.0w= B215ASM86.86 V2.0w= SB218AVASM86.Q N=] ΀BS206GASM86.86 V2.0w?=:rqS3쨏t Q N=  쨏t Q N=؀t U.. v . . YP. 쨀tB$@Xu Q N=t Q N=N VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLAJBDYPLM86 V2.304/02/84 23:57:5і,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[#ASYNCHLOADIOJOB EXITIOJOB DEàU^&]| U] MtLSJBDYPL=="=:af2:==#=:af3:==$=:d0:o== %= :w0:==>&= :wf0:==΄'= :wf1: ==˄(= :wf2: ==Ȅ)= :wf3: ==ń*= :pmf0:==&+= :bx0:*>*>,= :b0:.A>A>ބ-= :sa0:Z>Z>,.= :sc0:{>e{>/system/rmx86 # *, BSERRORQASM86.86 V2.0wN= UNN=؍tCt: t1&t(>!tR"td#t $tQibYuWUP=& F tt.`ti]Q N=FN~&= w ^N .\. ]BS204IASM86.86 V2.0wul= :5 ?55Q& F& u&BJ쨀uBJ$^YU. .2@LB254ASM86.86 V2.0w A> KBSASIASM86.86 V2.0wZ> 2 ^BSCSIASM86.86 V2.0w{>BS1GF!ASM86.86 V2.0w2=.P=S=$t[<u tKS  <uS.QCS.7=[YĈC< t < t SP=!؀? t? uȀ? uCð P= P=BS1MDSȈASM86.86 V2.0w<=U`>tu ]Q N=. F tbtb~F &%:t>t].&&>u @V:&t/)F"+ E. DH6Q Yt ⡹Q N=>t] U. . PQ:QHuYQYUS.. װ ׊װ ؇װ ׊:t3sװ װ װ쨀t3C oװUhc^ YTOװH 쨀u7u.[]U.SV^. Q. װ F װ쨀tt&C7tY⫹QQ N=Y^[] QKuYÈBtYu662HML@QP]U.SF<>F tHuAPHP8PSP6> tT6<6><H>5><0ŠL2R3ҊY8:X>2t >2tȢ; 5t Q N=>St\] _ BS218AGASM86.86 V2.0w= F:==|=Q.>. YP.쨀t.$@Xu Q N=t Q N=$< tt좊u$ְ>t P N=.U..2؟.PvPPr3..:r .uhPvPPs"$<(u 2].UPvvv ys P N=F NӋ؋ʺ. f$<(t] BSCSIASM86.86 V2.0w|>Q:@uPX%*DEFINE (b254(base,dev_gran,num_boards,board_size)) ( name b254 public base_254, dev_gran_254, num_boards_254, board_size_254 code_bs254 segment byte public 'CODE' base_254 dw %base dev_gran_254 dw %dev_gran num_boards_254 dw %num_boards board_size_254 dw %board_size code_bs254 ends end) P= u ]BS215GASM86.86 V2.0w=!:=!:!:*!:MPQ.t@YPQR.>H.<H>5ZYXU..&& &6.> ..3. t3<H>4. 22F.& <r  .& <s6 ,26>4&Y u5>2u;<S>@u>2t8>t8<5uLF&<r &&Y;uM.S254DASM86.86 V2.0wB>Q:QHuYQYU.. .2  PXQ:@uPXU.6 .>..tF>&&>u @V:&t/)F"+ E6Q P. t . 0u6.>.X#ࢄ >#K >#I > >#E>&FIt #. 2Yt Q N=}>t. t. 2] U. . t`2uX. 2. 0u u2t*$..tFȰӰ׹'uӰt@F FN FF~ytװ d.].K>ְ>t P N=.U..2؟PvPPs"$<(u g].UPvvv s P N=F NӋ؋ʺ.f$<(t] BCSDM ASM86.86 V2.0wI=BS1ADSԈASM86.86 OADIOJOBF^.ON.G$FF1^ &F1B&WF^&GtF^ &N1P&WX1&v&^ &GF&OPF*fFY;w &GFF^&Gv &D^F&)&G^&G:Fu&G:Fu:P>&G:Fu &G;Ft1F^&GF&GF&GF&GF&G F&G ]e@=0H 0313H PUB PROMPT 3A0FH 0052H PUB DEBUG 3A0FH 0002H PUB LINE_BUFFER 3A0FH 0000H PUB POLLTIMES 3D4EH 000BH PUB BSERROR 3D6CH 0006H PUB BASE_204 3D6CH 0047H PUB DEVICEINIT204 3D6CH 0116H PUB DEVICEREAD204 3D6CH 0008H PUB DEV_GRAN_204 3D6CH 000AH PUB TRACK_SIZE_204 3D83H 000CH PUB BASE_206 3D83H 006FH PUB DEVICEINIT206 3D83H 00F4H PUB DEVICEREAD206 3D97H 0009H PUB BASE_208 3D97R VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLSJBDYPLM86 V2.304/03/84 00:02:2,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[SYNCHLOADIOJOB2 DEàU^&]|t VERSIONV3P1LSJBDY= rҪSYNCHLV2.0wOJ=U>tu ]Q N=.> > >G5F 3>.4UF^&?uv&L &&GFVFF^&G F~tFFFn^&tF^&G"F.W;Vv,VVu&O":t&O ;vz+ʉNs^&G$<u1&9G v(~Ns FFFF^& uN^&GP$PN _Z ˆF^.GFFNOTSTRAP_BEGIN -CT 3D00H 0000H PUB BOOTSTRAP_ENTRY 3D00H 030BH PUB BS_ECHO 3D00H 030FH PUB CAN_ECHO 3D00H 0495H PUB CI 3D00H 0490H PUB CO 3D00H 02FDH PUB DEFAULT_FILE 3D00H 01D2H PUB DEVICE_TABLE 3D00H 001DH PUB FIRSTSTAGE 3D00H 0320H PUB GET_FILE_NAME 3D00H 03C0H PUB MANUAL_DEVICE_SE -LECT 3D0 iRMX 86 8086 LOCATER, V2.0 INPUT FILE: :F1:BS1.LNK OUTPUT FILE: :F1:BS1 CONTROLS SPECIFIED IN INVOCATION COMMAND: ADDRESSES(CLASSES(CODE(3D000H),STACK(3A000H))) ORDER(CLASSES(STACK,DATA,BOOT,CODE,CODE_ERROR)) NOINITCODE START(FIRSTSTAGE ) SEGSIZE(BOOT(1800H)) MAP PRINT(:F1:BS1.MP2) DATE: 04/03/84 TIME: 01:06:49 SYMBOL TABLE OF MODULE BS1 BASE OFFSET TYPE SYMBOL BASE OFFSET TYPE SYMBOL 3D00H 04A0H PUB AUTO_DEVICE_SELE 3D00H 0007H PUB BOH 01B7H PUB DEVICEINIT208GEN 3D97H 00A3H PUB DEVICEREAD208GEN 3DC0H 009EH PUB DEVICEINIT215GEN 3DC0H 0203H PUB DEVICEREAD215GEN 3DC0H 0009H PUB DEVICE_215 3DC0H 000AH PUB DRTAB_215 3DC0H 0007H PUB WAKEUP_215 3DECH 0007H PUB DACK_PORT_218A 3DECH 0006H PUB DATA_PORT_218A 3DECH 02E6H PUB DEVICEINIT218AGE -N 3DECH 00A7H PUB DEVICEREAD218AGE 3DECH 000BH PUB MOTOR%MATCH(a,tail)(%tail)%TRIM(%a))%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %*DEFINE(bsasi(parameters))(%DEFINE(tail)(%parameters)%' name bsasi public aport_sasi, bport_sasi, cport_sasi, controlport_sasi public init_command, init_count code_bsasi segment byte public 'CODE' aport_sasi dw %ARG bport_sasi dw %ARG cport_sasi dw %ARG controlport_sasi dw %ARG init_command db %ARG init_count db %ARG %DEFINE (init)(%ARG)%' %WHILE (%LEN (%init) ne 0)(% PUB DEVICEREAD254 3E41H 000FH PUB DEV_GRAN_254 3E41H 0011H PUB NUM_BOARDS_254 3E5AH 000CH PUB APORT_SASI 3E5AH 000EH PUB BPORT_SASI 3E5AH 0012H PUB CONTROLPORT_SASI 3E5AH 0010H PUB CPORT_SASI 3E5AH 00FBH PUB DEVICEINITSASI 3E5AH 01A0H PUB DEVICEREADSASI 3E5AH 0014H PUB INIT_COMMAND 3E5AH 0015H PUB INIT_COUNT 3E7BH 000EH PUB APORT_SCSI 3E7BH 0017H PUB ARBITRATE_SCSI 3E7BH 0010H PUB BPORT_SCSI  DATA 3A160H 3A164H 0005H W DATA_BS204 DATA 3A166H 3A170H 000BH W DATA_BS206 DATA 3A172H 3A219H 00A8H W DATA_BS208 DATA 3A21AH 3A469H 0250H W DATA_BS215 DATA 3A46AH 3A511H 00A8H W DATA_BS218A DATA 3A512H 3A512H 0000H W DATA_BS251 DATA 3A512H 3A512H 0000H W DATA_BS254 DATA 3A512H 3A515H 0004%' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' TRIM(a) - returns the input parameter trimmed of leading and %' trailing blanks. %*DEFINE(TRIM(a)) LOCAL x y (%MATCH( x y)(%a)%x)%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' ARG - gets the next comma-delimited arg from variable named TAIL, %' stripped and trimmed. Any macro that has a valid type of NONE %' uses this macro so that the other parameters are not needed. %*DEFINE(ARG) LOCAL a (_FLAG_218A -N 3DECH 0009H PUB MOTOR_PORT_218A 3DECH 0008H PUB RESET_PORT_218A 3DECH 0005H PUB STATUS_PORT_218A 3DECH 000AH PUB TC_PORT_218A 3E2AH 0000H PUB BASE_251 3E2AH 001DH PUB DEVICEINIT251 3E2AH 00E8H PUB DEVICEREAD251 3E2AH 0002H PUB DEV_GRAN_251 3E41H 000DH PUB BASE_254 3E41H 0013H PUB BOARD_SIZE_254 3E41H 002EH PUB DEVICEINIT254 3E41H 00DFH ' db %init %DEFINE (init)(%ARG)%' )%' code_bsasi ends end) 3E7BH 0014H PUB CONTROLPORT_SCSI 3E7BH 0012H PUB CPORT_SCSI 3E7BH 00F5H PUB DEVICEINITSCSI 3E7BH 0165H PUB DEVICEREADSCSI 3E7BH 0016H PUB HOSTID_SCSI 3E99H 0036H PUB TRANSLATE_FLOPPY MEMORY MAP OF MODULE BS1 MODULE START ADDRESS PARAGRAPH = 3D00H OFFSET = 001DH SEGMENT MAP START STOP LENGTH ALIGN NAME CLASS OVERLAY 3A000H 3A0E5H 00E6H G STACK STACK 3A0F0H 3A15FH 0070H G DATA H W DATA_BSASI DATA 3A516H 3A519H 0004H W DATA_BSCSI DATA 3A51AH 3A51AH 0000H W BTFLOP_DATA DATA 3A520H 3BD1FH 1800H G BOOT BOOT 3D000H 3D4EAH 04EBH G CODE CODE 3D4EBH 3D6C5H 01DBH B CODE_ERROR CODE 3D6C6H 3D83BH 0176H B CODE_BS204 CODE 3D83CH 3D978H 013DH B CODE_BS206 CODE 3D979H HLOADIOJOBT DEàU^&_S^S^&G^&?u(^S^SF^&wFP^&?tU^&7PFP^SF^&?uF&>tF&^&vFPFvF]2DiɊt VERSIONV3P1LSLDJ rҪSYNCHLOADIOJOB 3EC00H 3EC00H 0000H G ??SEG 3EC00H 3EC00H 0000H W MEMORY MEMORY q݀ VERSIONV3P18PLM86 V2.304/02/84 23:57:4Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH-ޘH TD[[ DEà1Copyright 1980, 1981, 1982 Intel Corporation XtLSLDJPLM86 V2.304/03/84 00:02:4,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH\H TD[[SYNCHLOADIOJOB2dRQRECEIVEMESSAGE RQSATTACHFILERQSDELETECONNECTION RQDELETEJOB DELETESEGMENTASYNC 3DC06H 028EH B CODE_BS208 CODE 3DC07H 3DEC4H 02BEH B CODE_BS215 CODE 3DEC5H 3E29FH 03DBH B CODE_BS218A CODE 3E2A0H 3E41CH 017DH B CODE_BS251 CODE 3E41DH 3E5ABH 018FH B CODE_BS254 CODE 3E5ACH 3E7BDH 0212H B CODE_BSASI CODE 3E7BEH 3E992H 01D5H B CODE_BSCSI CODE 3E994H 3EBFEH 026BH W BTFLOP_CODE CODE %*DEFINE (bscsi(aport,bport,cport,controlport,hostid,arbitrate)) ( name bscsi public aport_scsi, bport_scsi, cport_scsi, controlport_scsi public hostid_scsi, arbitrate_scsi code_bscsi segment byte public 'CODE' aport_scsi dw %aport bport_scsi dw %bport cport_scsi dw %cport controlport_scsi dw %controlport hostid_scsi db %hostid arbitrate_scsi db %arbitrate code_bscsi ends end) iRMX 86 System Debugger V3.0 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' TRIM(a) - returns the input parameter trimmed of leading and %' trailing blanks. %*DEFINE(TRIM(a)) LOCAL x y (%MATCH( x y)(%a)%x)%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' ARG - gets the next comma-delimited arg from variable named TAIL, %' stripped and trimmed. Any macro that has a valid type of NONE %' uses this macro so that the other parameters are not needed. %*DEFINE(ARG) LOCAL a (%MATCH(a,tail)(%taie_port DB ? value DW ? delay DW ? dev_init ends %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' TITLE: SERIAL_CHANNEL %' INPUTS: SER_TYPE - the type of Serial Device used. %' SER_BASE - the base port of the Serial Device. %' SER_PORT_DELTA - the spacing of the Serial Device ports %' %' CNTR_TYPE - the type of Timer connected to the USART %' CNTR_BASE - the numerically lowest port in the %' timer connected to the Serial Device clock input. %' CNTR_PORT_D$genonly %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' TITLE: bcico.inc %' Date: 12 Sept 1983 %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' Bootstrap Loader and Bootstrap Loader UTILITY MACROS AND LITERALS %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %DEFINE(FALSE)(0)%' %DEFINE(TRUE)(0FFH)%' %DEFINE(no_cntr_code)(0)%' %DEFINE(c8253_code)(1)%' %DEFINE(c80186_code)(2)%' %DEFINE(c82530_code)(3)%' %' *-*-*-*-*-*-*-*-l)%TRIM(%a))%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' ADD_DEV_INIT - places device initialization data into segment. %SET(dev_cnt,0)%' set to 0 when file read %*DEFINE(ADD_DEV_INIT(d1,d2,d3,d4))(%' dev_init<%d1,%d2,%d3,%d4> %SET(dev_cnt,%dev_cnt+1))%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' This is the structure that add_dev_init fills in. All non-serial %' channel init uses this data form. dev_init struc port DW ? bytELTA - the spacing of the baud rate timers ports %' CNTR_BAUD_COUNTER - the counter in the Timer used for %' USART clock input, only values 0-2 are valid. %' MAX_BAUD_RATE_COUNT - count to generate 9600 baud. %' OUTPUTS:A table of structures of the data: %' SERIAL_DATA_PORT - the I/O port of the Serial Device. %' SERIAL_STATUS_PORT - the status port of the Serial Device. %' TXRDY_MASK - the txrdy mask for the USART. %' RXRDY_MASK - the rxrdy mask for the USART. %' TXINT_RESET_MASK - mask toF F &..&&&]՜VPxvTxUPxćYčYēY ėYěYĠvģPīxİYĵY׊tSDBFPIASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhH?ИHLEVELRQEXITINTERRUPT#YY FRONT_PANEL @AϜDC USPQRVW..PS_^ZYX.&F^[]k!]Y#.t VERSIONV3P09ASM86.86 V2.0wCODECODE??SEGCGboolean indicating whether or not %' the monitor is used in a system with a serial port. %' ABSTRACT: %' This macro defines all aspects of a Serial Channel - the %' serial device, the baud rate timer and count. This macro may be %' invoked any number of times to define all the serial channels %' in the system. %' The programming words are hard-wired in the configuration %' macro since it is felt that these will not need to %' change. If they do, change those values here accordingly. %' TTY modeel Corporation*pLUPPu#;u.=tPPQPPPP]>  $ (5 < ANT Y\chltSDBCLIPLM86 V2.304/03/84 12:23:4ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH|HTD[[ RMX_DEBUGGETWORD GETBUFCHAR INCBUFCHAR SKIPBLANKISTERM SYNTAXERRORDISPLAY_OBJECT SDB_TOKEN DISPLAY_DIRDISPLAY_JOB_TREE KERNEL_LI ,SBEGINASM86.86 V2.0w8DATANEWSTACKDATADATACODECODE??SEGDGROUPCGROUP#hHOH8טh0OUTWORD RMX_DEBUG FRONT_PANEL SDB_RMX_INIT W W RQSDBINITTASKgDNEW_REGSMONITOR_SDM286  MONITOR_957 REPEAT REGS_Pn SWITCH_STACKz+RQSDBINITERROR @AϜD.Copyright 1982, 1983, 1984 Intel Corporation program_version_number=V3.0program_name=iRMX 86 System DebuggerU.F reset TX int bit. %' Only 8274 uses it, others are null. %' CNTR_CONTROL_PORT - the timer control port %' CNTR_PORT_A - the counter port connected to %' the USART. %' CNTR_PORT_B - the counter port connected to %' the USART when 80186 counters are used. %' CNTR_MODE - the control word used to program %' the Baud Rate Timer. %' BAUD_RATE_COUNT - count to generate the default baud rate. %' Additionally, the following constants are declared in the %' code segment: %' SERIAL_EXISTS - a ROUPۘhH-\1Copyright 1982, 1983, 1984 Intel Corporation QtSDBINTPLM86 V2.304/03/84 12:27:1ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHSHTD[[SIGN_ON SDB_RMX_INITL SETCOMMANDDQCFG SWITCH_STACK RQDELETEJOBRQSETINTERRUPT RQENDINITTASK FRONT_PANELLEVEL MONITOR_957MONITOR_SDM286RQSDBINITERROR DEàPiRMX 86 System Debugger, X213 Copyright 1982, 1983, 1984 Int is not supported by the iAPX 86, 88 monitor. The %' supported serial devices are the 8251A, 82530, 8274 and NONE. The %' supported baud rate timers are 8253/4, 82530, 80130 and 80186. %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %SET(first_ser_ch,%TRUE)%' set to ff when the file is read. %SET(ser_ex,%FALSE)%' set to 0 when the file is read. %*DEFINE(SERIAL_CHANNEL(parameters))(%DEFINE(tail)(%parameters)%' %DEFINE(ser_type)(%ARG)%' %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*STS DISPLAY_IORS DISPLAY_STACK DEBUG_HELPDISPLAY_SYSTEM_CALL UNWIND_STACKREPEATREGS_P MONITOR_957NEW_REGSƜ DEàUr&O&O&&O&O&O&O&O &O &O &O"&O$&O&&G(>t>Cu]àHu]À>Ku]À>Ju 6P]À>SuRP6PP]Ã>tP>Du 6]À>Ou 6]À>Ru 6]À>Tu 6]À>Uu 6   6&N:w4:u@P~u  6&@ƃ뺸P]h2 &*@ INTXfkpѠU~u &G$F~ u &GF ~ w^^&^ &<&t <.t<6t<>u ^ GF F^ &?u&G$8<t&<u ^ & Ϡ path--> ܠmessage--> &default--> 2new path--> M?logical name--> Pdevice name--> `return data--> ٠psubpath--> 0 |name--> }command line--> f'' (truncated)Xextension--> '1P$&Ps ,P>Pv MPF '-28;@INQ bdfhjlotw |Ą ĉđ ĖĞĥĪįķĺľƆ̆όԆ!2?P` p|P tK&7P2&8wAs&SPsP]V'GJRkoxz|~ĀĂĄĆĈĊČĎđĖěĠĥĪįĴĹľÌȆ˝ϝ՝ۆތ  0UF Fu&G&F&GFF^&s &G(F^&@&&G&GPPP] 6 -08QU[bimqvy~āUz;U~ti~u]]o (/7?GOW_gowĆĉČĐĔĠĦĪĵĆǝʆΆٝ߆坄  ")03 9@CIPS Y`cipsx6tSDBCALɈPLM86 V2.304/03/84 12:22:0ߖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH&H%T D[[ UDI_SMALL=GET_SYSTEM_CALL DISPLAY_CALLDISPLAY_SYSTEM_CALL GETAD^ &8u%X^ F&v&^ GF Fàs >@r^&?t^ &P' b ~| Internal Error 1ӠNot a CALL instructionNot a system CALLS/W Int: ڠ 5(Nucleus) (BIOS)Ơ (EIOS) (Loader) &(UDI),(Human Interface)!> entry code M Runknown entry codeؠe | sexcp$p|{...excep$p...|)U~uF" NF Fu&G&F&GFF^&s &G(F^&@.$).38=BGL0+&&  *7ANXehqvŅŌőřţŰźǝѝކ ~ u~ ucP^SU/~ u,~ u&sAP^S^ BP^SOPK~ u4~ u.sP^S, P^SP^S7" &p^S]  )[ĉē3JURPS#PP$Pr]6#6PRP*]ÿ  $+15tSDBCMPPLM86 V2.304/03/84 12:24:2ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH)H T number L File type I -FNODE V 6SPACEMAPϠ ?FNODEMAPƠ HACCOUNT ڠ QBADBLOCK̠ ZACCESS  cDIR m lALIAS  uDATA @ ~ ?? ՠ Fnode flags Owner f World File/Vol gran  Fnode PTR(s) Total blocks n Total size  This size ٠ Volume gran { Volume size 2 Volume name XDUPPv'PF&'*/:=@EPSXcfi}ĔktSDBIOSPLM86 V2.304/03/84 12:28:5Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHG HTD[[' EXPAND_USERDEXPAND_CONNECTIONaOUTWORDOUTCRLF OUTADDRESSOUTBYTEOUT_STR OUT_RMX_STR OUT_BLANKS OUT_DWORD LIST_WORDS6 DEà BIOS USER OBJECT:User segment "' Number of IDs ^?User ID list Ơ M ?? * SPris C U PPF&$<v P +F&$.GOTY^ %P,PF&6%@PF&6(&6&SPF&6,cP6yP6P  $(047<KNacegiknsx}ĂĊĝĵƝɝ̙#+26;>AFUXkmoqsv{ŀŅōŠŻˆΌӆםچ݌杅ƠP&sPPRUE U FALSED DUIB pointer UNum of conn Num of readers / Num of writers / File share ; File drivers > Device gran Ϡ2 Device size HDevice functs X Num dev conn nn Device name Req queued T Queued conn 8 Open conn Num of buffers 7 Fixed update TRUE FALSE Update timeout Fnode D[[ CMP_DATA_DISPwHOUTWORDOUTCRLF EXPAND_USEREXPAND_CONNECTIONOUT_STR LIST_WORDS DEàExtension type  Extension obj ۠( Deletion mbox Ѡ@Containing job P Num of entries hComponent listUwUPF&6PF&6(PF&6@PF&6PPF&6F&>u &6 -F&>uhPF PF&6]W 6?PFPF&6]&5  "-036;N FUF<v PM&^.S [ckP]%' !#%(-27<FUsPFF&&&PF&"<v P2F&".=GLQV[ PPF&6#PF&8"tA&>*tB"ʈ Ȱ-F&*t DF&*ts L RF&*t AF&*tvate% [Readers2 cWriters kAll Os T$CONNECTION OBJECT:File driver   ?? 00 ?? P Physicalh Stream Numbereda Named E Conn flags ݠ Access Open mode 9   ?? Closed Read Write %R/W , Open share 5@ File pointer SIORS cache c File node y Device desc |Dynamic DUIB R TSP&6P&6P&6P&6K P&wP&w2P&w&wHP&GPXP&6 6FnP PF&>"u>PF&60P&6P&6F&>"tP&w.P&G1sPP&w,P&6P&*<t<t <t,9 "'+038] Display system call.8) vd Display job's object directory. ] vhcDisplay help information.K} vj [] [0Display job hierarchy from specified level.>P&6<&6:P&6l&6j P&6P&6 &62P  F P]  "$&(*-27,u P&6,PP&+PPBPP&6@&6  vkV&Display ready and sleeping tasks., vo e/Display list of objects for specified job.Ƞ& vr (;Display I/O Request/Result Segment.fC_ vs [] Display stack and system call information.0 vt Display iRMX 86 object. vu 0Unwind task stack, displaying system calls./ UPP)P]PPcP}PPPhH2ؘHTD[[ DISPLAY_DIRCMOUTWORDOUTCRLF LINKED_LIST VALID_JOBOUT_STR OUT_RMX_STR OUT_BLANKS DEàDirectory size: ` Entries used: $Invalid entry2Tasks waiting: CUNvrPF&6<PF&6>F&><uF&<H;s\@&Gt`<v $POS&*P&u!2P&w PPPP &w t_STRMEM_DISP ALLOCATED LINKED_LIST VALID_LINKS DEà"*** INVALID INCREMENT ***Containing job . Pool token F Pool incr cnt ^Pool size n Allocated  Max seg incr yeshno٠Incr link for  Incr link back c Parent incr Increment size Ơ Available   Num of blocks 2%Largest block 5 Lowest bloncel ID kConnection token UFH6r&$?<t&> u & <t<tPj8PSPF&6hPF&>+u &6PPF&6PF&6 PF& <v PGF& . !  PPF&> uu& v P-fF& .Umrw|3:@5O0^+n&~! PP-:=BFNQVY^afjrux}āČĕěĤİĵņІӌ؆挄 "'258=HKP[^cnqtłktSDBIORPLM86 V2.304/03/84 12:27:4֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHNHT D[[ DISPLAY_IORSJ VALID_OBJECTOUTWORDOUTCRLF OUTADDRESSOUTBYTEOUT_STR OUT_DWORD DEàPPF&6*PF&6,](+.3>AFSVY^knsĆęĞĦļ̆φ҆ftSDBJOBPLM86 V2.304/03/84 12:30:3ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHT D[[ JOB_DATA_DISPڌ<OUTWORDOUTCRLF OUTADDRESSOUTBYTEOUT_STR ALLOCATED DEàCurrent tasks  Max tasks ^Get device char~nGet term attrib>~Set term attrib"Set signal char4Rewind tape}Read file markWrite file markRetension tape Set fontvN/ACount w  Actual JDevice location Š+ Buffer pointer {CResp mailbox [ X Aux pointer tLink forward - Link backward ͠Done  TRUE ? FALSE. Cack M Rover eBlock (size) tUvPSPP<rPvPqF&P&6.P@PFP&6 ^P&6nP6P&;FuPPF&6PF&6PF&6PF&6 PF&6 PF&6%PF&65PF&6MPF&6 F&>tePF&6PPPP] #F&6PF&6(7 '*0GJOUX]`cfkvy~ĖġĴĆdžʌφކ  %*/27ORcegikmoqsuwy{~ŃňōŒŗŜšŦūŰŵź†ŌʆՆ،݆PF&6&6+PF&SCPF&6&XPF&StPF&SPF&"SPF&>(uTOKEN is not a SEGMENT%SEGMENT wrong size - not an IORSޠ8I/O Request Result SegmentSStatus h Unit status sN/ADevice  Unit "Function Ǡ  ?? Read Write , Seek Special Att Dev Det Dev Open \  Close  Subfunction - ?? I3Format/Queryl@Stream satisfy|OStream notify * Max priority РCCurrent objects T Max objects m Parameter obj yDirectory size  Entries used  Job flags jExcept handler ڠ Except mode ` Parent job Pool min C Pool max (2 Initial size KPool size \ Allocated |u Largest seg UPF&6PF&6DEàMU؎&؎&َ&] &)-;>)IU u]`َ&]j)nU u]p َ&]jtSDBMBXPLM86 V2.304/03/84 12:32:5ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHVHTD[[ MBX_DATA_DISP2OUTWORDOUTCRLFOUTBYTEOUT_STR LINKED_LIST DEàTask queue head &).2:=@EIQTY]`chltwztSDBKERPLM86 V2.304/03/84 12:31:1ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHfHTD[[ KERNEL_LISTS<cDOUTCRLFOUT_STRREADY_LIST_TOKENDELAY_LIST_TOKEN LINKED_LISTW DEàReady tasks: UCan't locateSleeping tasks: U/Can't locateڠm<UP u P6P PPPP tPPPPPF&>t]&>tXF&:r@&0PF&;wu]m %)7U_knqvĄĉđħˌІ #>AXdisy|ńʼnşŤtSDBNAMPLM86 V2.304/03/84 12:33:3ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH; ƘH TD[[ RMX_NAMESTEMPLATEL o&>tt&>u &>tt&>u &>tbPP<uPPF &;F u] F &+5u "*.3=CNbhlpuĀĔęĥĪľÝם߆❄ #2;BttSDBLTKPLM86 V2.304/03/84 12:32:2ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHxH TD[[+READY_LIST_TOKENIDELAY_LIST_TOKENn *PF&6&CPF&6TPF&6mPF&6PF&6<PF&6>PF&6.PF&SPF&6'F&*HPF&6,P&6P&62P&6KP&6\P6uP&6] '*/:=@EPSXcfkvy|ďĢĸʆ݆͌҆댄  Object queue head ޠ/Queue discipline N DFIFO IPRI N Object cache depth shContaining job }Task queue 5Object queue  7UPF&6PF F&& u(F&>t&>t&0P/PF&>uDIPNPF&6hPF&6F&>t"}PF&6PPPPF&>t&>t&8u F&>t7PF& u /P]6P PPP]xA  $36;>AHMPVetSDBLNKPLM86 V2.304/03/84 12:31:4ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHGØHTD[[ LINKED_LIST5OUTWORDOUTCRLFOUT_STR OUT_BLANKS VALID_LINKS DEàKU~v~ uN +ȉ6v v6PtF&8tu&>t DEàabortacceptaccessaliasalterallocateasynch argument atom attach attributesbufferccatalogccchangecharclosecocommand component" composite$ connection&control(create*data+decode,default.delete0deletion2detach4device6 directory8disable:down<enable=enter>entry@eoB exceptionCexitD extensionFfileHforceJformatKfreeLgetMhybridNhandlerOinfoPinputRinspectT interruptUioVio jobW io memoryXjobYlevelZlist\load]logical^lookup`mailboxbA $p..... format|exp$cd ..default$p...prep. cc$routine$p. ..handler$p.. connection$p.numfilDtSDBOBJPLM86 V2.304/03/84 12:34:0ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHvH TD[[DISPLAY_OBJECT+OUTCRLFOUT_STR LINKED_LIST VALID_JOB DEàChild Jobs: ޠTasks: "Mailboxes: 3Semaphores: &DRegions: USegments: fExtensions:ste .task. .sema..seg..regionconn$pbuf$p..id$p.path$pnpth$pinfo$p ovrlay$name$p .log$name$p.. .new$path$p.. ...path$p.... .io$param$p.. ...info$p.... ..attrib$p... ...name$p....! .exp$info$p.." ...data$p....# ....ids$p....$ token$list$p.% .dev$name$p..& ..ip..|..cs..' .ret$data$p..( .response$p..) .extension$p.* ...time$p....+ ....id$p.....,extn$p-ovly$p.time$p/cc$r$p0hndr$p2exp$cd3.hard.4flags.6index.7select8.init.:level.<V.max..>.min..@objectBparam.D.pri..F HTD[[ RGN_DATA_DISP_) LINKED_LISTOUTWORDOUTCRLFOUT_STR2 DEàEntered task  Queue discipline à /FIFO 4PRI 9Containing job NTask queue d_UFPF&6P& u/4P9PF&6F&>tNP&7P PPP]K !$)-7~xLD*xD*"xx(#R#.,€L,,L,z 4%dz243xLUJx٠*(VCV'2rVV'2f|xf|x F(F(6.FzF LF $xR $R ^$R .$xL$xlxxxFxx] 4%]24RM24 */47:?JMR]`chsvćtSDBSTKPLM86 V2.304/03/84 12:36:1ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHTD[[ DISPLAY_STACK XCOUTWORDOUTCRLF DISPLAY_CALLGET_SYSTEM_CALLOUT_STRREGS_PB DEà:   UF F u)RPFPFP&G&F &GF ~u~u~uFFF ~t`v PL/B0LBN0+B2LL .   ( lzxx2x|x|xxxL$xD,q-L C2FOxW+.z-tSDBTKNPLM86 V2.304/03/84 12:37:2ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHLH T D[[ SDB_TOKENe6OUTCRLFOUT_STRMEM_DISP JOB_DATA_DISP TSK_DATA_DISP MBj @j ^jJ (DL.D("$ ." R"$ "f H.@T:CT:T:LY=T:8T:(Xhjl.Xh(hp.   JL7L D (`4.`bF@b(J(4<8. N JN (4.&&{z&(H.LLd>nD&Td4:<:T:LBN!BN!Bmnr/(F F.$xH TD[[ SEM_DATA_DISPь)OUTWORDOUTCRLFOUT_STR LINKED_LIST2 DEàTask queue head  Queue discipline à /FIFO 4PRI 9Current value N Maximum value XhContaining job }Task queue 5UPF&6PF&u/4P9PF&6NPF&6hPF&6F&>t"}PF&6PPPP]2]R]4T^*&\x\Vx\V\qˠSLPxȰLpxȰ2LP$Lp$Lg<tȰLrȰ L @(" ("& JBȰ($ˤ.$eHKLBLBN+B2L+L .   ( lzxx2x|x|xxxL$xD)qL C2FOxW+*zyHKv PFsH;w P6^ &0NuF F vvP^ S] ؜T $U]ilqwzċďĔĘĝĦĸƆɝ݆tSDBTBLPLM86 V2.304/03/84 12:36:4֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH#H TD[[h RTE_TABLE BIOS_TABLE EIOS_TABLE* LOADER_TABLE&HI_TABLES UDI_TABLEUDI_SMALL_TABLE DEà~L@80@<0@!X_DATA_DISP SEM_DATA_DISP RGN_DATA_DISP SEG_DATA_DISP EXT_DATA_DISP CMP_DATA_DISP VALID_OBJECTh DEàObject type = 1 Job 2 Task83 Mailbox)4 Semaphore 65 RegionB@6 SegmentǠK7 ExtensionϠX8 CompositeˠeUNvrvPPF&˷.!)6 @KXPF&˷. "*2:Bv6v.v&vvvvvPF&6H3PF&6DCPF&6E]PF&6FwPF&6BPF&6CPPF&6&PF&6$]u  '*/>ATVXZ\^afkpuz}ĀēĦļΆьֆ䌄   %*8=HKNS^afqtyŊŝŷdžʌφچ݆tSDBVLDPLM86 V2.304/03/84 12:41:0ޖ Job TreetNUQ~-v>~uR t+&H&8HFF&>,t"&>tP]F&,FFF~u!NvsF7PFPvNvsF&$ t PF@P6F&;Fu|F&FF !)-KPSzćtSDBTSKPLM86 V2.304/03/84 12:38:4Ԗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHfH T D[[ TSK_DATA_DISP=OUTW&+;tFr<t<t>uPFP)PF &4>u .PPFF &44PFF P9PF F &4>u >PPF&4DPFP] 1@Zl{ĉěġĦĴĻ͝ӆם݌+/5:CPVY^gknqpbUF&t< rF&PF&2SPF&66PF&6APF&68PF&>@?vPF&>@?v]Z !&<>@BDFHJLOTY^chmrwz}ēĕėęěĝğġģɆц ن tSDBTREPLM86 V2.304/03/84 12:38:0ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH3טHTD[[DISPLAY_JOB_TREENEOUTWORDOUTCRLFOUT_STR OUT_BLANKSDELAY_LIST_TOKEN VALID_JOB DEàError looking for root job} SDB job nest limit exceeded7 iRMX 86,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH{HTD[[/ VALID_LINKSt VALID_OBJECT VALID_JOBI(OUTWORDOUTCRLFOUT_STR OUT_BLANKSt DEàBack link ERROR: Forward link ERROR: k ) -->u .? h 4<-- l 9 -->e > ?X D<-- \I*** INVALID TOKEN ***֠aTOKEN is not a Job={tUFF &N+V ;tF &+;tF F &N+V ;tFORDOUTCRLF OUTADDRESSOUTBYTEOUT_STR OUT_BLANKS" DEàStatic pri ؠ Dynamic pri A* Task state cD ??u Hready Nasleep Ususp6Zaslp/suspM ddeletedlSuspend depth | Delay req n Last exchange vExcept handler  Except mode  Task flags ѠContaining job ܠ Interrupt task yesno C Int level !]LKNSV6IUvsF&$?<taP]|#&]tSDBUNWPLM86 V2.304/03/84 12:39:2Ֆ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHTD[[(DISPLAY_CALL_INFO_ UNWIND_STACKNdGET_SYSTEM_CALLOUT_STRMEM_DISP DISPLAY_STACK VALID_OBJECTOUTWORDOUTCRLFMONITOR_SDM286 DEàReturn cs:ip - U:TOKEN is not a TASKs$&stack not in an iRM*DATADATACODECODE??SEGDGROUPCGROUPhhXhYY DQCFGgRANGE  GETADDRESS!GETWORD3 GETDECIMALGOUTWORD[OUTCRLFm OUTADDRESSxOUTBYTE OUTDECIMALOUTDISGETLINEC STOPLINEC GETBUFCHAR INCBUFCHAR SKIPBLANKISTERMSETBYTESETWORD* SYNTAXERROR?MCOJMCI\ SETCOMMANDo SQSETCOMMAND DEàUv& ]U^]U^]UrF]UF]&LQPPPrQPPPsPP6`QPPPsPP6dQPPPsPP66 36;>KRYĄĈČĜģĮıĴķĻʝ͝ѝԝڝ '.6>EJOT[bglqxŇŌœŘŝũŰŸŽĝɝΝӆڝdd3QPPPsPP66)r FP]yP{TŎPɐTtSBEGINSDBFPI VERSIONV3P0SDBINTSDBCLISDBCALSDBCMPSDBIOSSDBDIRSDBEXTSDBHLPSDBINCSDBIORSDBJOBSDBKERSDBLNKSDBLTKSDBMBXSDBNAMSDBOBJSDBRGNSDBSEGSDBSEMSDBSTKSDBTBLSDBTKNSDBTRESDBTSKSDBVLDSDBUNWSDBUTLSMPIFCs F` I38I[#`rd1n0yqGZr4o<owbMETp<#b RQSDBINITTASKNEW_REGSMONITOR_SDM286 MONITOR_957REPEATREGS_P SWITCH_STACKRQSDBINITERROR FRONT_PANELSIGN_ON S*.&bUF;r Pu]Uvv]  /eUFH;r:P^&0<uPu>t] ( !038?JOU[IU]NU F& F& ; v=r66 PSPPu@rώ &&  붠s PF&+P]6 #(0;EMU\`el~tSMPIFCASM86.86 V2.0wX 86 segmentFno system calls on stackY_UPvPv N PQP66)]8  #047:>FJOUNvrvP&F&$<tPF&& &$ &<& ;v&A":u+2F& & H&t&&  9r 9 r u +ȉ1s>w66&%*;t >O&&D&LU]U^]UF]UF]U^]U ]U ]U ]U ]U ]UVr2]U^F]U^F]U]UF]U]ZRU^F]U^F]PT+P-T=P?TLPNTePgTrPtTĂPȄTĔPȖTĦPȨTĸPȺTPTPTPTPTPTP T"P$T7P9TDPFTTPVTaPcT4  '/3=AEKRWZ)tSDBUTLPLM86 V2.304/03/84 12:40:2ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHTD[[_OUT_STR OUT_RMX_STR, OUT_BLANKSb OUT_DWORD LIST_WORDSMEM_DISP ALLOCATED% VALID_LINKSOUTWORDOUTCRLFMCO DEà ????Z+U^&t Q]A ڠ:,U^&?t&^&Ȋ:r&pu]"DB_RMX_INIT RMX_DEBUG UDI_SMALLGET_SYSTEM_CALL DISPLAY_CALLDISPLAY_SYSTEM_CALL CMP_DATA_DISP EXPAND_USEREXPAND_CONNECTION DISPLAY_DIR EXT_DATA_DISP DEBUG_HELPDISPLAY_INCREMENT DISPLAY_IORS JOB_DATA_DISP KERNEL_LISTS LINKED_LISTREADY_LIST_TOKENDELAY_LIST_TOKEN MBX_DATA_DISP RMX_NAMESTEMPLATEDISPLAY_OBJECT RGN_DATA_DISP SEG_DATA_DISP SEM_DATA_DISP DISPLAY_STACK RTE_TABLE BIOS_TABLE EIOS_TABLE LOADER_TABLEHI_TABLE UDI_TABLEUDI_SMALL_TABLE SDB_TOKENDISPLAY_JOB_TREE TSK_DATA_DIiAPX 86, 88 Bootstrap Loader V6.0 (143108) SP VALID_LINKS VALID_OBJECT VALID_JOBDISPLAY_CALL_INFO UNWIND_STACKOUT_STR OUT_RMX_STR OUT_BLANKS OUT_DWORD LIST_WORDSMEM_DISP ALLOCATEDDQCFGRANGE GETADDRESSGETWORD GETDECIMALOUTWORDOUTCRLF OUTADDRESSOUTBYTE OUTDECIMALOUTDISGETLINEC STOPLINEC GETBUFCHAR INCBUFCHAR SKIPBLANKISTERMSETBYTESETWORD SYNTAXERRORMCOMCI SETCOMMAND SQSETCOMMAND" 'CODE' PUBLIC bser_init_table PUBLIC bsio_data_port, bsio_status_port PUBLIC bsio_txrdy, bsio_rxrdy PUBLIC bsio_tx_int_reset code ends assume cs:code, ss:stack, ds:data code segment ; %IF ((%EQS(%ser_type,none)) OR (%EQS(%ser_type,NONE))) THEN (%' $eject ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ; ; There is no Serial Channel in this configuration. ; ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' '%IF(%firel)(%ARG)%' %DEFINE(br_cntr)(%ARG)%' %DEFINE(max_cnt)(%ARG)%' %' %IF ((%EQS(%ser_type,8251A)) OR (%EQS(%ser_type,8251a))) THEN (%' %' '%IF(%first_ser_ch) THEN(%' %' '%SET(ser_ex,%TRUE)%' %' '%SET(first_ser_ch,%FALSE)%' PUBLIC bserial_exists code segment bserial_exists DB %TRUE code ends %' ')FI%' %' '%IF (%ser_p_del le 0h ) THEN (%' ERROR -- Invalid port delta for the %ser_type Serial Channel %' ')FI%' %DEFINE(sio_tx)(01h)%' %DEFINE(sio_rx)(02h)%' %DEFINE(sio_tx_res)(0)%' %DEFINE(si-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' %' The following code is assembled in-line when serial_channel %' is invoked code ends cgroup group code, boot_dev_init assume cs:cgroup, ds:data ; ; The following labels in the init segments must be the first ; items in the segments because they are used to form pointers. ; boot_dev_init segment public 'CODE' bdev_init_table label WORD PUBLIC bdev_init_table,bdev_init_len,bdev_init_struc_len boot_dev_init ends code segment publicst_ser_ch) THEN(%' %' '%SET(ser_ex,%TRUE)%' %' '%SET(first_ser_ch,%FALSE)%' PUBLIC bserial_exists code segment bserial_exists DB %FALSE code ends %' ')FI%' ) ELSE (%' $eject ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ; ; %ser_type Serial Channel Public Constants ; ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %DEFINE(ser_base)(%ARG)%' %DEFINE(ser_p_del)(%ARG)%' %DEFINE(cntr_type)(%ARG)%' %DEFINE(cntr_base)(%ARG)%' %DEFINE(cntr_p_d#o_data_p)(%ser_base)%' %DEFINE(sio_stat_p)(%ser_base + %ser_p_del)%' boot_dev_init segment %ADD_DEV_INIT(%sio_stat_p,%TRUE,0,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,80h,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,40h,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,4eh,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,37h,1) boot_dev_init ends ) ELSE (%IF (%EQS(%ser_type,8274)) THEN (%' %' '%IF(%first_ser_ch) THEN(%' %' '%Sgment public 'BOOT' second_stage label far boot ends stack segment stack 'STACK' db stacksize dup (?) stack ends data segment public 'DATA' data ends assume cs:code, ss:stack, ds:data code segment ; %SET(is_cico, 0) %*DEFINE(cico) ( %SET(is_cico, -1) ) %DEFINE(cpu_type) (8086) %*DEFINE(cpu(ctype)) ( %DEFINE(cpu_type) (%ctype) ) ; ; %' TRIM and ARG are utility macros %' %' TRIM(a) - returns the input parameter trimmed of leading and %' traili18h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,4h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,44h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,5h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0eah,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,3h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0c1h,0) boot_dev_init ends ) ELSE (%IF (%EQS(%ser_type,82530)) THEN (%' %' '%IF(%first_ser_ch) THEN(%' %' '%SET(ser_ex,%TRUE)%' %' '%SET(first_ser_ch,%FALSE)%' PUBLIC bserial_exists code segment bserial_exists DB %TRUE code ends %' ')FI%' %' '%IF (%ser_p_deblic variables for the chip select registers %' ABSTRACT: This macro sets up the public variables for programming %' the 5 iAPX_186 chip select registers. Assumes Relo Reg will %' not be moved. %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %*DEFINE(iAPX_186_INIT(parameters))(%DEFINE(tail)(%parameters)%' %' %IF ((%NES(%cpu_type,80186)) AND (%NES(%cpu_type,80188))) THEN (%' ERROR -- CPU type is not 80186 or 80188 ) ELSE (%' ; ; This procedure sets up the chip select regis$title(Bootstrap First Stage) $genonly ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; TITLE: bs1.inc ; Bootstrap first stage code and configuration macros ; ; DATE: 6-28-80 ; ; ABSTRACT: Include file to generate bootstrap first stage. ; Generates code for setup and to call options, ; and generates device table. ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; stacksize equ 192 ; code segment public 'CODE' code ends boot seET(ser_ex,%TRUE)%' %' '%SET(first_ser_ch,%FALSE)%' PUBLIC bserial_exists code segment bserial_exists DB %TRUE code ends %' ')FI%' %' '%IF (%ser_p_del le 0h) THEN (%' ERROR -- Invalid port delta for the %ser_type Serial Channel %' ')FI%' %DEFINE(sio_tx)(04h)%' %DEFINE(sio_rx)(01h)%' %DEFINE(sio_tx_res)(28h)%' %DEFINE(sio_data_p)(%ser_base)%' %DEFINE(sio_stat_p)(%ser_base + (2 * %ser_p_del))%' boot_dev_init segment %ADD_DEV_INIT(%sio_stat_p,%TRUE,18h,0) %ADD_DEV_INIT(%sio_stat_p,%TRUE,ng blanks. %*DEFINE(TRIM(a)) LOCAL x y (%MATCH( x y)(%a)%x)%' %' %' ARG - gets the next comma-delimited arg from variable named TAIL, %' stripped and trimmed. Any macro that has a valid type of NONE %' uses this macro so that the other parameters are not needed. %*DEFINE(ARG) LOCAL a (%MATCH(a,tail)(%tail)%TRIM(%a))%' %' %' TITLE: iAPX_186_init %' INPUTS: RELO - a boolean for whether to put the 186 PIC into RMX mode %' and the register values for UMCS,LMCS,MPCS,MMCS,and PACS %' OUTPUTS: pul le 0h) THEN (%' ERROR -- Invalid port delta for the %ser_type Serial Channel %' ')FI%' %DEFINE(sio_tx)(04h)%' %DEFINE(sio_rx)(01h)%' %DEFINE(sio_tx_res)(28h)%' %DEFINE(sio_data_p)(%ser_base + %ser_p_del)%' %DEFINE(sio_stat_p)(%ser_base)%' %DEFINE(ch_res)(%ARG)%' boot_dev_init segment %ADD_DEV_INIT(%sio_stat_p,%TRUE,9,1) %' select the correct channel reset %' '%IF ((%EQS(%ch_res,A)) OR (%EQS(%ch_res,a))) THEN (%' %' '%ADD_DEV_INIT(%sio_stat_p,%TRUE,080h,2) %' ') ELSE (%' %' '%IF ((%EQS(%c#ters for ; the 80186/8. It must be executed before the execution leaves ; the top 1K of memory. ; ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* NULL EQU 0 boot_186_init segment at 0fff0h assume cs:boot_186_init,ds:boot_186_init public boot_186 boot_186 proc far cli mov bx,boot_186_init mov es,bx ; the segment value is still in bx mov bx,offset init186_table ; point to the init table init_loop: mov dx,es:[bx] ; set up the port cmp dx,NULL ; arststage label far ; first stage starts here public firststage ; ; cli ; disable interrupts jmp short setup db 43H,6FH,70H,79H,72H,69H,67H,68H,74H,' 1980, 1981, 1982, 1983, 1984 Intel Corporation ' db 'program_version_number=V6.0program_name=iAPX 86, 88 Bootstrap Loader',0 setup: mov ss, cs: stackseg ; load stack segment mov sp, stacksize ; load stack pointer mov ds, cs: dataseg ; load data segment jmp startup %SET(is_loadfile, 0) %*DEFINE(loadfile) ( %SEs_v,NONE)) AND (%NES(%umcs_v,none))) THEN (%' DW 0ffa0h DW %umcs_v )FI%' %DEFINE(lmcs_v)(%ARG)%' %IF ((%NES(%lmcs_v,NONE)) AND (%NES(%lmcs_v,none))) THEN (%' DW 0ffa2h DW %lmcs_v )FI%' %DEFINE(mpcs_v)(%ARG)%' %IF ((%EQS(%mpcs_v,NONE)) OR (%EQS(%mpcs_v,none))) THEN (%' %' '%SET(mpcs_v,0)%' )FI%' %DEFINE(mmcs_v)(%ARG)%' %IF ((%NES(%mmcs_v,NONE)) AND (%NES(%mmcs_v,none))) THEN (%' %' '%IF (%EQS(%mpcs_v,0)) THEN (%' ERROR -- MPCS register must be initialized to program the MMCS register %' -1) %*DEFINE(device(name, unit, device_init, device_read)) ( $include(:f1:bs1dev.inc) ) %*DEFINE(end) ( %IF (%device_select) THEN ( db 0FFH ; terminate table ) FI default_file label byte public default_file db %default_fn %IF (%is_console) THEN ( bs_echo label byte ; Echo for Delete public bs_echo ; db bs_echo_end-bs_echo-1 ; db 08H, 020H, 08H ; bs_echo_end label byte ; ; can_echo label byte ; Echo for Cancel (CNTL/X) public can_echo ; db canlic bootstrap_entry pop ax ; return address pop ax pop bx pop es jmp setup_reg ; get ptr to cmd line bootstrap_begin label far public bootstrap_begin ; entry for SCT mov bx,ax mov ax,ds mov es,ax setup_reg: mov ss,cs:stackseg mov sp,stacksize mov ds,cs:dataseg jmp got_name fi null port will terminate the loop. je init_finished mov ax,es:[bx+2] ; get the programming value out dx,ax ; initialize the register add bx,4 ; point to the next table entry. jmp init_loop ; do the next output init_finished: jmp firststage ; enter the monitor boot_186 endp init186_table: %DEFINE(rmx_v)(%ARG)%' %IF ((%EQS(%rmx_v,Y)) OR (%EQS(%rmx_v,y)) OR (%EQS(%rmx_v,YES)) OR (%EQS(%rmx_v,yes)) ) THEN (%' DW 0fffeh DW 40ffh )FI%' %DEFINE(umcs_v)(%ARG)%' %IF ((%NES(%umcT(is_loadfile, -1) ) %SET(is_console, 0) %*DEFINE(console) ( %SET(is_console, -1) ) %SET(is_manual, 0) %*DEFINE(manual) ( %SET(is_manual, -1) %SET(is_console, -1) %SET(device_select, -1) ) %SET(is_auto, 0) %*DEFINE(auto) ( %SET(is_auto, -1) %SET(device_select, -1) ) %DEFINE(default_fn) ('/system/rmx86',0) %*DEFINE(defaultfile(fn)) ( %DEFINE(default_fn) (%fn, 0) ) %DEFINE(times) (0) %*DEFINE(retries(r)) ( %DEFINE(times) (%r+1) ) %SET(device_select, 0) %SET(first_device, ') ELSE (%' DW 0ffa8h DW %mpcs_v DW 0ffa6h DW %mmcs_v )FI )FI%' %DEFINE(pacs_v)(%ARG)%' %IF ((%NES(%pacs_v,NONE)) AND (%NES(%pacs_v,none))) THEN (%' %' '%IF (%EQS(%mpcs_v,0)) THEN (%' ERROR -- MPCS register must be initialized to program the PACS register %' ') ELSE (%' DW 0ffa8h DW %mpcs_v DW 0ffa4h DW %pacs_v )FI )FI )FI%' DW 0 DW 0 boot_186_init ends assume cs:code, ss:stack, ds:data %' )%' END OF THE iAPX_186_INIT MACRO. bootstrap_entry label far pub$_echo_end-can_echo-1 ; db '#', 0DH, 0AH ; can_echo_end label byte ; ; prompt label byte ; Prompt character public prompt ; db '*' ; ) FI code ends ; a start adress of 'firststage' for 8086s or ; 'boot_186' for 80186s must be supplied with loc86 %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %' INPUTS: NONE %' OUTPUTS: BDEV_INIT_LEN - number of device initialization outputs %' BDEV_INIT_STRUC_LEN - the length of the device init structure %' ) FI %IF (%is_console) THEN ( extrn ci: far ; need ci here also )FI %IF(%is_cico) THEN ( extrn cinit: far ; must initialize the USART )FI ; extrn bserror: far ; bootstrap error routine DEVICE_NOT_READY equ 11h ; stage one error extrn %device_init: far ; extrn %device_read: far ; data segment public polltimes ; Declare the number of times to poll devices polltimes dw ? data ends code segment ; %IF (%is_console) THEN ( code ends ; dabx], 'D' ; Debug switch? jz check_debug ; might be, check cmp es:byte ptr [bx], 'd' ; check lower case too jnz got_line ; no debug switch ; check_debug: cmp es:byte ptr [bx+1], BLANK ; next char blank? jnz check_end ; no, check for mov debug, TRUE ; yes, there is a debug switch ; parse_blanks: inc bx ; cmp es:byte ptr [bx+1], BLANK ; jz parse_blanks ; get past blanks ; check_end: cmp es:byte ptr [bx+1], CR ; if next char is a CR, jz debug_defa$NOLIST ; ; INTEL CORPORATION PROPRIETARY INFORMATION ; ; This software is supplied under the terms of a ; license agreement or nondisclosure agreement with ; Intel Corporation and may not be copied or disclosed ; except in accordance with the terms of that agreement. ; $LIST %IF (%first_device) THEN ( code ends ; ; ; Declare the cico routines if needed ; %IF (%is_console OR %is_loadfile) THEN ( extrn co: far ; will need co in either case ABSTRACT: %' This macro declares four publics needed for device and serial %' channel init. %' *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* %IF (%is_cico) THEN ( $eject boot_dev_init segment bdev_init_len DW %dev_cnt bdev_init_struc_len DW size dev_init boot_dev_init ends ) FI end) ta segment ; public line_buffer ; Declare line buffer public debug ; line_buffer db 80 DUP (?) ; debug db ? data ends ; ; code segment ; TRUE equ 0FFh ; FALSE equ 000h ; BLANK equ 020H ; CR equ 00DH ; Carriage Return LF equ 00AH ; Line Feed extrn get_file_name: near ; startup: %IF (%is_cico) THEN ( call cinit )FI call get_file_name ; call console procedure got_name: ; mov debug, FALSE ; default to no debug cmp es:byte ptr [$ult ; then debug the default file cmp es:byte ptr [bx+1], LF ; ditto for LF jz debug_default ; ; cmp debug, TRUE ; debug switch? jnz got_line ; no, boot the file inc bx ; yes, point to start of name jmp got_line ; and debug the file ; debug_default: mov debug, TRUE ; lea bx, default_file ; load up default file name mov ax, cs ; mov es, ax ; ; got_line: mov ax, cs:maxtimes ; set polltimes properly mov polltimes, ax ; ; cmp debug, FA push cx ; push unit push ax ; push dev$gran mov bp, sp ; get pointer into stack push cx ; push unit xor ax, ax ; push zero for dev$loc push ax ; push ax ; mov dx, boot ; push pointer to second stage push dx ; push ax ; %IF (%is_loadfile) THEN ( push ds ; save ds for awhile mov ax, cs mov ds, ax ; print loading message lea bx, load call print mov ds, word ptr [bp+10] ; get base to device name mov bx, word ptr [bp+8] ; get offset to devibserror ; push ax ; push es ; push file name pointer push bx ; ) ELSE ( ; (no console) got_name: ; mov ax, cs:maxtimes ; set polltimes properly mov polltimes, ax ; ; no_debug: mov ax,0 ; push ax ; push ax ; mov ax, 14156 ; push the first check word push ax ; mov ax, 26778 ; push the second check word push ax ; mov ax, seg bserror ; push the pointer to the error routine push ax ; mov ax, offset bserror ; push ax ; lea ) FI call dword ptr [bp+4] ; call device$read call second_stage ; call second stage %IF (%is_loadfile) THEN ( ; ; This routine prints the string pointed to by BX. ; print proc near mov al, byte ptr [bx] ; get a byte from the message cmp al, ' ' ; if a null then done jae continue ret Continue: and al, 7fh ; remove high bit push ax ; put the character where co wants it call co ; print it inc bx ; next character jmp print print endp ; ; This r_select) THEN ( mov ax, %unit ; push unit push ax ; call %device_init ; call device$init procedure or ax, ax ; make sure device is there jnz boot_ok ; mov cx, DEVICE_NOT_READY ; call the error routine push cx ; call bserror boot_ok: les bx, cs: dev_name_ptr ; get pointer to device name push es ; push it push bx ; les bx, cs: dev_read ; get pointer to device$read mov cx, %unit ; get unit ) FI push es ; push pointer to device$read push bx ; LSE ; debug = FALSE? jz no_debug ; debug switch off mov ax, 37695 ; first debug check word push ax ; mov ax, 49273 ; second debug word push ax ; jmp push_check ; ; no_debug: mov ax,0 ; check words are zero push ax ; push ax ; ; push_check: mov ax, 14156 ; push the first check word push ax ; mov ax, 26778 ; push the second check word push ax ; mov ax, seg bserror ; push the pointer to the error routine push ax ; mov ax, offset ce name call cprint mov ds, word ptr [bp+14] ; get base to file name mov bx, word ptr [bp+12] ; get the file name pointer call print ; print the file name pop ds ; cmp debug, TRUE ; push ds ; jnz no_print ; no debug message mov ax, cs ; mov ds, ax ; print debug message lea bx, debug_msg ; call print ; ; no_print: mov ax, cs ; mov ds, ax ; print loading message lea bx, crlflf ; call print ; pop ds ; get the stack back to normal  ax, default_file ; push default file name pointer push cs ; push ax ; ) FI %IF (%is_manual) THEN ( push ax ; reserve dev name space push ax ; extrn manual_device_select: near call manual_device_select ; call manual procedure ; it will call auto if needed ) ELSE ( %IF (%is_auto) THEN ( push ax ; reserve dev name space push ax ; extrn auto_device_select: near; call auto_device_select ; call auto procedure ) FI ) FI %IF (NOT %device%outine prints the counted string pointed to by bx ; cprint proc near mov cl, byte ptr [bx] ; get the name length in cl inc bx ; first true character mov ch, 0 or cx, cx ; check for null name jnz cloop ret cloop: mov al, byte ptr [bx] ; load character from device name inc bx push ax ; al has the character in it call co ; print it loop cloop ret cprint endp ) FI ; stackseg dw stack ; stack segment dataseg dw data ; data segment maxtimes dw %tim(TEXT) ( %SET(is_text, -1) %SET(is_console, -1) ) %SET (is_list, 0) %*DEFINE(LIST) ( %SET(is_list, -1) %SET(is_text, -1) %SET(is_console, -1) ) %SET(made_choice, 0) %SET (is_halt, 0) %*DEFINE(HALT) ( %SET(is_halt, -1) %IF (%made_choice) THEN ( %error ; More than ONE invocation of HALT, AGAIN and/or INT3 is invalid ) FI %SET(made_choice, -1) ) %SET (is_again, 0) %*DEFINE(AGAIN) ( %SET(is_again, -1) %IF (%made_choice) THEN ( %error ; More than ONE invocation of  db ':%name:' ; dev_read dd %device_read ; pointer to device$read ) FI %SET(first_device, 0) ;(end of first device macro) ) ELSE ( ;(not first device macro) code ends ; %IF (%NES(%old_dev_init,%device_init)) THEN ( extrn %device_init:far ; ) FI %IF (%NES(%old_dev_read,%device_read)) THEN ( extrn %device_read:far ; ) FI code segment ; %IF (NOT %device_select) THEN ( %error ; MORE THAN ONE DEVICE MACRO ILLEGAL ) FI ) FI %DEFINE(old_dev_init)(%devEADY equ 11h DEVICE_NEXIST equ 12h NO_DEVICE_READY equ 13h FILE_NOT_FOUND equ 21h CHECKSUM_ERROR equ 22h PREMATURE_EOF equ 23h NO_START_ADDRESS equ 24h error_code equ [bp+6] ; error code on pl/m style stack extrn co: far extrn firststage: far code segment public 'CODE' %IF (%is_list) THEN ( extrn device_table:far ) FI code ends code_error segment byte public 'CODE' assume cs: code_error, ds: code_error bserror proc far push bp mov bp, sp mov cx, wo$title(Bootstrap Error Routine) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; TITLE: bserr.inc ; Bootstrap Error Routine code and configuration macros ; ; DATE: 5-18-83 ; ; ABSTRACT: Include file to generate bootstrap Error Routine ; Optionally generates code for to display error messages. ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %SET (is_console, 0) %*DEFINE(CONSOLE) ( %SET(is_console, -1) ) %SET (is_text, 0) %*DEFINEes ; max times to poll - used to reset poll times %IF(%is_loadfile) THEN ( load db 8dh,8ah,8ah,'Loading ',0 ; the high bits are set on the cr,lfs debug_msg db ' ',0 ; printed if debug switch on crlflf db 8dh,8ah,8ah,0 ; fool the print routine ) FI %IF (%device_select) THEN ( device_table label byte ; table of devices public device_table ; ) ELSE ( dev_name_ptr dd dev_name ; pointer to device name dev_name db %LEN(%name)+2 ; fill in device name HALT, AGAIN and/or INT3 is invalid ) FI %SET(made_choice, -1) ) %SET (is_int3, 0) %*DEFINE(INT3) ( %SET(is_int3, -1) %IF (%made_choice) THEN ( %error ; More than ONE invocation of HALT, AGAIN and/or INT3 is invalid ) FI %SET(made_choice, -1) ) %*DEFINE(END) ( %IF(NOT %made_choice) THEN ( %error ; HALT, AGAIN, or INT3 MUST be specified in the configuration file ) FI name bserror public bserror ; ; Define the error messages ; IO_ERROR equ 01h DEVICE_NOT_Rice_init) %DEFINE(old_dev_read)(%device_read) %IF (%device_select) THEN ( db %LEN(%name)+2 ; Fill in name db ':%name:' ; dw %unit ; unit dd %device_init ; device$init procedure dd %device_read ; device$read procedure ) FI %rd ptr error_code ; get the error into cx %IF (%is_console) THEN ( ; console mov ax, seg mess01 mov ds, ax lea bx, ermess ; print bootstrap error call print lea bx, mess01 ; IO ERROR cmp cl, IO_ERROR je printnow lea bx, mess11 ; DEVICE NOT READY cmp cl, DEVICE_NOT_READY je printnow lea bx,mess12 ; DEVICE DOES NOT EXIST cmp cl, DEVICE_NEXIST je printnow lea bx,mess13 ; NO_DEVICE_READY cmp cl, NO_DEVICE_READY je printnow lea bx, mess byte from the message cmp al, 0 ; if a null then done jnz continue ret Continue: push ax ; put the character where co wants it call co ; print it inc bx ; next character jmp print print endp mess01 db '01' %IF (%is_text) THEN ( db ': I/O error') FI db 0 mess11 db '11' %IF (%is_text) THEN ( db ': Device not ready') FI db 0 mess12 db '12' %IF (%is_text) THEN ( db ': Device does not exist') FI db 0 mess13 db '13' %IF (%is_text)lea bx, crlflf call print pop cx %IF (%is_list) THEN ( ; ; check for device doesn't exist error ; cmp cx,DEVICE_NEXIST jne done lea bx, avail ; print the available devices title call print mov ax, 0 ; initialize the list counter push ax ; save it on the stack mov ax, seg device_table mov es, ax mov si, offset device_table ; print the list of possible devices list_loop: mov cl, es:byte ptr [si] ; get the name length in cl inc si ; first true character  db 0dh,0ah,0ah,0 %IF (%is_text) THEN ( unknown db 'of unknown type',0 ) ELSE ( unknown db '??',0 ) FI %IF (%is_list) THEN ( avail db 'Available devices:',0dh,0ah,0 spaces db ' ',0 crlf db 0dh,0ah,0 ) FI ; No console code follows ) ELSE ( %IF(%is_halt) THEN ( hlt ) FI %IF(%is_again) THEN ( jmp firststage ) FI %IF(%is_int3) THEN ( int 3 )FI bserror endp ) FI code_error ends end) ew line jb same_line lea bx, crlf call print pop ax ; clear the count xor ax,ax push ax same_line: add si,10 ; skip over other data in the table jmp list_loop end_of_table: ; all printed lea bx, crlflf call print ) FI done: %IF(%is_halt) THEN ( hlt ) FI %IF(%is_again) THEN ( jmp firststage ) FI %IF(%is_int3) THEN ( int 3 )FI bserror endp ; ; This routine prints the string pointed to by BX. ; print proc near mov al, byte ptr [bx] ; get a21 ; FILE NOT FOUND cmp cl, FILE_NOT_FOUND je printnow lea bx, mess22 ; CHECKSUM ERROR cmp cl, CHECKSUM_ERROR je printnow lea bx, mess23 ; PREMATURE END OF FILE cmp cl, PREMATURE_EOF je printnow lea bx, mess24 ; NO START ADDRESS FOUND IN FILE cmp cl, NO_START_ADDRESS je printnow ; ; Called with unknown code ; lea bx, unknown ; ; print the message and then a cr,lf,lf and go to the 957 ; printnow: push cx ; save the code for later call print  THEN ( db ': No device is ready') FI db 0 mess21 db '21' %IF (%is_text) THEN ( db ': File not found') FI db 0 mess22 db '22' %IF (%is_text) THEN ( db ': Bad checksum') FI db 0 mess23 db '23' %IF (%is_text) THEN ( db ': Premature end of file') FI db 0 mess24 db '24' %IF (%is_text) THEN ( db ': No start address in load file') FI db 0 %IF (%is_text) THEN ( ermess db 0dh,0ah,0ah,'Bootstrap Error ',0 ) ELSE ( ermess db 0dh,0ah,'E ',0 ) FI crlflf mov ch, 0 or cx, cx ; check for null name jz next_dev cmp cl, 0FFH ; end delimeter je end_of_table ploop: lods es:byte ptr [si] ; load character from device name push ax ; al has the character in it call co ; print it pop ax ; increment the line count inc ax push ax loop ploop next_dev: lea bx, spaces ; print spaces in between call print pop ax add ax, 3 push ax ; if more than 60 chars on this line cmp ax,60 ; then print a n&%*DEFINE (b204(base,dev_gran,track_size)) ( name b204 public base_204, dev_gran_204, track_size_204 code_bs204 segment byte public 'CODE' base_204 dw %base dev_gran_204 dw %dev_gran track_size_204 db %track_size code_bs204 ends end) &,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0c0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,5,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0eah,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,6,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,7,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,9,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,10,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,11,1) %ADD_DEV_INIT(%)) OR (%EQS(%cntr_type,NONE))) THEN (%' %' '%DEFINE(cntr_ctl_p)(0)%' %' '%DEFINE(cntr_p_a)(0)%' %' '%DEFINE(cntr_p_b)(0)%' %' '%DEFINE(cntr_code)(%no_cntr_code)%' %' '%DEFINE(cntr_mode)(0)%' ) ELSE (%' %IF (%LEN(%cntr_p_del) eq 0) THEN (%SET(cntr_p_del,0))FI%' %IF (%LEN(%br_cntr) eq 0) THEN (%SET(br_cntr,0))FI%' %IF (%cntr_p_del le 0h) THEN (%' ERROR -- Invalid port delta for the Baud Rate Timer )FI%' %IF ((%EQS(%cntr_type,8253)) OR (%EQS(%cntr_type,8254))) THEN (%' %' '%SET(cntr_ctl_p,(%cntr_bh_res,B)) OR (%EQS(%ch_res,b))) THEN (%' %' '%ADD_DEV_INIT(%sio_stat_p,%TRUE,040h,2) %' ') ELSE (%' ERROR -- 82530 channel must be specified as A or B only %' ')FI )FI%' %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,4,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,44h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,1,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,2,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) %' %' leave Rx disabled until the timers are initialized. %ADD_DEV_INIT(%sio_stat_p,%TRUE,3sio_stat_p,%TRUE,52h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,14,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,02h,1) %' %ADD_DEV_INIT(%sio_stat_p,%TRUE,15,1) %ADD_DEV_INIT(%sio_stat_p,%TRUE,0h,1) boot_dev_init ends ) ELSE (%' ERROR -- %ser_type is an invalid Serial Channel type %DEFINE(sio_tx)(0)%' %DEFINE(sio_rx)(0)%' %DEFINE(sio_tx_res)(0)%' %DEFINE(sio_data_p)(0)%' %DEFINE(sio_stat_p)(0)%' )FI )FI )FI%' %' %'******************** counter config. section ****************** %IF ((%EQS(%cntr_type,none'ase +(3 * %cntr_p_del)))%' %' '%DEFINE(cntr_code)(%c8253_code)%' %' '%IF (%br_cntr eq 0) THEN (%' %' '%DEFINE(cntr_p_a)(%cntr_base)%' %' '%DEFINE(cntr_p_b)(0)%' %' '%DEFINE(cntr_mode)(036h)%' %' ') ELSE (%' %' '%IF (%br_cntr eq 1) THEN (%' %' '%DEFINE(cntr_p_a)(%cntr_base + %cntr_p_del)%' %' '%DEFINE(cntr_p_b)(0)%' %' '%DEFINE(cntr_mode)(076h)%' %' ') ELSE (%' %' '%IF (%br_cntr eq 2) THEN (%' %' '%DEFINE(cntr_p_a)(%cntr_base + (2 * %cntr_p_del))%' %' '%DEFINE(cntr_p_b)(0)%' %' '%DEFIbe greater than 1 %' ')FI%' %' '%DEFINE(br_cnt)(%max_cnt)%' )FI%' %' %' Put it all together code segment bser_init_table LABEL WORD bsio_data_port DW %sio_data_p bsio_status_port DW %sio_stat_p bsio_txrdy DB %sio_tx bsio_rxrdy DB %sio_rx bsio_tx_int_reset DB %sio_tx_res cntr_control_port DW %cntr_ctl_p cntr_port_a DW %cntr_p_a cntr_port_b DW %cntr_p_b cntr_code DB %cntr_code cntr_mode DW %cntr_mode baud_rate_cnt DW %br_cnt code ends )FI%' end of the none type  2 is the only valid 80130 baud rate counter %' ')FI ) ELSE (%' %IF ((%EQS(%cntr_type,80186)) OR (%EQS(%cntr_type,80188))) THEN (%' %' '%DEFINE(cntr_mode)(0c003h) %' '%DEFINE(cntr_code)(%c80186_code)%' %' '%IF (%br_cntr eq 0) THEN (%' %' '%DEFINE(cntr_ctl_p)(%cntr_base + 56h)%' %' '%DEFINE(cntr_p_a)(%cntr_base + 52h)%' %' '%DEFINE(cntr_p_b)(%cntr_base + 54h)%' %' ') ELSE (%' %' '%IF (%br_cntr eq 1) THEN (%' %' '%DEFINE(cntr_ctl_p)(%cntr_base + 5eh)%' %' '%DEFINE(cntr_p_a)(%cntr_base + 5ah) is the only valid 82530 baud rate counter. %' ' )FI%' ) ELSE (%' ERROR -- %cntr_type is an invalid Baud Rate Timer type %DEFINE(cntr_mode)(0)%' %DEFINE(cntr_code)(0)%' %DEFINE(cntr_ctl_p)(0)%' %DEFINE(cntr_p_a)(0)%' %DEFINE(cntr_p_b)(0)%' )FI )FI )FI )FI )FI%' %' %'******************** max count section ****************** %IF ((%EQS(%cntr_type,none)) OR (%EQS(%cntr_type,NONE))) THEN (%' %' '%DEFINE(br_cnt)(0)%' ) ELSE (%' %' '%IF (%max_cnt LE 1) THEN (%' ERROR -- Max Baud Rate Count must NE(cntr_mode)(0b6h)%' %' ') ELSE (%' ERROR -- 8253/4 Baud Rate Counter number is not 0, 1 or 2. %' ')FI )FI )FI ) ELSE (%' %IF(%EQS(%cntr_type,80130))THEN (%' 80130 TIMER USED %' '%IF (%br_cntr eq 2) THEN (%' %' '%DEFINE(cntr_ctl_p)(%cntr_base + (7 * %cntr_p_del))%' %' '%DEFINE(cntr_p_a)(%cntr_base + (6 * %cntr_p_del))%' %' '%DEFINE(cntr_p_b)(0)%' %' '%DEFINE(cntr_code)(%c8253_code)%' treat 80130 as 8253 %' '%DEFINE(cntr_mode)(0b6h)%' %' ') ELSE (%' ERROR -- Counter)%' END OF THE SERIAL_CHANNEL MACRO %' %' '%DEFINE(cntr_p_b)(%cntr_base + 5ch)%' %' ') ELSE (%' ERROR -- 80186 counter %br_cntr is not a valid baud rate counter. %' ')FI )FI %' ) ELSE (%' %IF (%EQS(%cntr_type,82530)) THEN (%' %' '%DEFINE(cntr_mode)(0) %' '%DEFINE(cntr_code)(%c82530_code)%' %' '%IF (%br_cntr eq 0) THEN (%' %' SCC baud rate ports are set by the SCC port addresses %' '%DEFINE(cntr_ctl_p)(%sio_stat_p)%' only this port needed %' '%DEFINE(cntr_p_a)(0)%' %' '%DEFINE(cntr_p_b)(0)%' %' ') ELSE (%' ERROR -- Counter 0'