IMD 1.17: 23/10/2016 22:06:01 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:147114iRMX 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%S #S #S vv%(S 3S 3S 3n88 p%9S @S @S L''`N%FS KS KS B""D)FV.Sv$+FVs.6$Pv.v0VFlnp6p6n6(npr|z~]UFf؋ʋFf‹]UFf‹]UF3vFv،]UFVv] 0123456789A%S S S ~#@$%S S S ` %S S S %S S S [ XܓS ܓS ܓS P ܓS ܓS ܓS %ܓS S S %S S S xx 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$%SS \S \S 78%bS gS gS =68%oS wS wS 668%~S S S K2 4ܓS ܓS ܓS ܓS ܓS ܓS PܓS ܓS ܓS ܓS ܓS ܓS %S S S %S S S %ĔS ƔS ƔS X%ΔS ϔS ϔS pa VERSION3P0PLM86 V2.307/19/84 11:21:0ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V3.0program_name=iOSP 86 Nucleus68CopyrighJ 1981, 1982, 1983, 1984 Intel Corporation@t VERSION3P0k IVRSN%הS ؔS ؔS %۔S ܔS ܔS (%ߔS S S (%S S S R?SPACEMAPR?FNODEMAPR?BADBLOCKMAPR?VOLUMELABELnuc4.libdebug.lib osx.lib nuc3.lib ndevcf.mac mthcnf.mac ctable.macntable.macnurslv.libnuc2.libosx81.libmth.libosx.macnuc1.libcroot.libinstal.csddexcpt.libosx84.libmth.031debug.041nuclus.060iRMX 86 Terminal Handler V3.1 (142733) DU݊t RQOUTPUTڈASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(o(3 THOUTPUTINITYYRQOUTPUTsCopyright 1980, 1981 Intel Corporationprogram_version_number=V3.1program_name=iRMX 86 Terminal HandlerDU݊t THINPUTINITPLM86 V2.307/20/84 01:16:4ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH9ϘH#T&ݘD[[b RQTHNORMINRUBiRMX 86 Nucleus V6.0 (142730) CHANNELINPUTGETTHOUTPUTINITSADDRESS ISTOKENVALIDʜ DEàYBUF%N#;tA""] "/58.s@Us\F6PFP PF> u8^&F&GvFY6v6 P]  %,X_bgUHYQPQRSVW.U.t.6 P .6 P]_^[ZYX!$) 038 FU&G t&PPs66 P P!]͜!2a VERSION3P1PLM86 V2.307/20/84 01:19:4Ֆ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH%H TD[[ DEà)Copyright1980, 1981 Intel Corporationt RQINPUT=ASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(o(3 THINPUTINITYYRQINPUT#sCopyright 1980, 1981 Intel Corporationprogram_version_number=V3.1program_name=iRMX 86 Terminal HandleriRMX 86 Dynamic Debugger V4.1 (142732) MSG OUTSTANDARD MESSAGEPTRCOUNTMAXCOUNTMTHOUTPUTPRIORITY.SENDECHO@ SENDRESPONSE THINPUTINIT5sINPUT_INTERRUPT_LEVELOUTPUT_INTERRUPT_LEVELRQCATALOGOBJECT RQCREATETASKRQGETTASKTOKENS RQSENDMESSAGERQRECEIVEMESSAGERQCREATEMAILBOXRQCREATESEGMENT RQGETSIZERQSETINTERRUPTRQEXITINTERRUPTRQSIGNALINTERRUPTRQWAITINTERRUPTUSART_IN USART_STATUSRQBLANKNORM_INPUT_MAILBOXCHAR_LENGTH_MASK RQTHNORMOUTOUTPUTONAUXPREVIOUSLINELENGTHTESTFORCONTROLCHAR #'.37=5UF^.6.6PPv PP PP PFP6P PP PP P6PP PP P6PP PP P6PP P F^6SvRPPP P.  !.6 P.."FPFr!s6PP P > uhPPs\&G!&G=wP6 QY;r &G&?t&GNEXIT_POOL_REGIONNENTER_POOL_REGIONFINDLARGESTSEGMENTREMOVEĚYY ALLOCUF^&&;v&F& &F&&9 s&& Fw;F&&6F&9 u& &6QPF&&^&) & & FF&)F&;u=&3;t&&9 v& &F&F&;uvFF&]U^F -F &&9sT&;s&r&+wN &&&&& t=F &&6~F & t SPF F USART_IN USART_OUT USART_CONTROL TIMER_CONTROL BAUD_COUNTERCOUNTER_SELECTBAUD_RATE_COUNTҜ DEà(UQ. 0 . t u.. t u... t u. t u. t u. t u. t u.@ t u.N t u.7 t u.F. t u] C%*>CI`wĎĥļӆ t THOUTPUTINITPLM8EMORYCODEDATACONSTDGROUPCGROUPnhH0H T D[[{|eurg tsَߎ ts֎z{U{ Eu j  ǎ ts {|mOFFSETBASE y  INTTASKTOKENDATASEG) y  w ю ώ tsƐFINISHINITIALIZATION?KCREATEOBJECTNS SYSTEMSUICIDE RQCREATEJOB DELETIONTASKTOKENFILLCHAR READYLISTROOT EXTENSIONLISTRU* VERSION6P0PLM86 V2.307/19/84 09:06:0͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtNALLOCASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHaoINCRHEADERPARSIZE MINTRANSSIZEINITINCR&t!s &.3 :?BHMUX]binqx} ĀĄČĘ ĠĤĬĸ ĝ̝цԆ؝ܝߖ "(-25:?ELVcgkpux|ŒŚŞťŲŵ Ý͝ݝ%FrvF+ʜ 1t INT8612PLM86 V2.307/20/84 01:17:3ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH$H TD[[ INTIALcX^&&G],?DEt$(.jŠtNCHKRQASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHKAWAKENSREMOVE.YY( CHECKREQUESTSRSATISFYREQUESTERU~tEF& ÎF&)&6S(PF&&F&& &>'u]UF&t"&&&; rvF&>u]?DE%K8tNCINITPLM86 V2.307/19/84 08:13:3͖,STACKM6 V2.307/20/84 01:18:4֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T&ݘD[[ RQTHNORMOUTNOPRT .O ISTOKENVALID INTHANDLEROUTF THOUTPUTINITGETTHOUTPUTINITSADDRESS OUTPUT_INTERRUPT_LEVELRQCATALOGOBJECT RQGETTYPERQGETTASKTOKENS RQSENDMESSAGERQRECEIVEMESSAGERQCREATEMAILBOXRQDELETESEGMENTRQSETINTERRUPTRQEXITINTERRUPTRQSIGNALINTERRUPTRQWAITINTERRUPT RQENDINITTASK USART_OUT USART_STATUSNORM_OUTPUT_MAIOOTDELETION_OBJECT_BASESYSTEMPOOLTOKENINTERRUPTTASKVEC ROOTJOBTOKENSYSTEMEXCEPTIONHANDLERPTR  DEàUFF&G0&G7&G,&G6F&G2Z&W4&G:@P^&GFFP6P6Y]{; " +BMĐ Ġ ħĵĖ̖ φҖ otNCRACTASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHVvvFFtuƒROP/PbPP(,Z_ĕÂȒ:tNDLTOBPLM86 V2.307/19/84 08:29:2ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHhH TD[[ tsc{|euq{|muoێ tsՎf ts Ԏ T ts f ts Ўz{N{ >f ts֎f tsɎ R tsŐ Dݎ ts @ tsf ts7OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUEx wNENTER_INT_VEC_REGIONNENTER_DELETION_REGIONNEXIT_INT_VEC_REGIONNEXIT_DELETION_REGIONSIGNALNLOCK NLOCKNS NUNLOCKNS GETDESCRPOINTER GETOBJECTTYPE READYLISTROOTCHECKKERNELERRORKSLEEPNS` DEà|U&Fv^Fv^FvvFN:tp:ttuƒRÎ&u&u&t&>uƒRÎ& u &&Àu&>uƒRÎ&t&u&ÀE+UF-~u&&]DEtNDELUTPLM86 V2.307/19/84 08:28:0ʖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHdH TD[[ tsc{|euqf ts؎{|mf tsf ts ӎf ts юz{O{ ?f ts؎f tsߎOFFSETBASE y umR tsĎELETEOBJECTΌNENTER_JOB_REGIONNEXIT_JOB_REGIONDELETE_ACCOUNTINGKDELETEOBJECTNS REMOVE FREEGETDESCRPOINTER KDELETETASKNSNCLOSE_DELETION_OBJECT DEàUQQv^F~uvv~u^&G" tPvP^&G"=F<t<u^&w vP^&G ^&wvP^&Gvvv]- !$@e tNFATALASM86.86 V2.0wCODECODE??SEGCGROUPۘhH \ SYSTEMSUICIDEsÎ  ts  ts  tsd ts  ts! RQFORCEDELETE"fGETDESCRPOINTERNENTER_DELETION_REGION NEXIT_DELETION_REGION GETOBJECTTYPE NUNLOCKNS RQDELETEJOB RQDELETETASKRQDELETEMAILBOXRQDELETESEMAPHORERQDELETEREGIONRQDELETESEGMENTRQDELETEEXTENSIONRQDELETECOMPOSITESIGNAL < DEàU^ &7Ft<v F&>&>&6& &3&&&&&V&&&& &&&&Î&&&& &&] UF&&&&& && +&&&v&6& && &9s &&&6&S,FREEPOOLUV3& &;u F& &&&& &>& ;uF&&& t&&)6&;v&]UF& &ÎF&6SPF& &;sʎF&& &&&;v&v F&F&9s &&]UF-F&6 &PFNu]UF-&F&F/F&&; uAF&6QPF& F&&&)& &9uF]-DE3\u&tNu&E vFPP(P^&Gv^v^&wP] 3KXmotۜ% 3KXt-tNINREGPLM86 V2.307/19/84 08:38:0ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHTH TD[[z{[{ K{|euod tsd ts ԎێOFFSETBASE y  d tsώ tsc{|muc B tsȎd tsȎd tsƎd tsĐ DELETEREGIONGETEDATADATA??SEGCGROUPDGROUPhHH4ߎYY GETOBJECTTYPEqED8UF t =tH&*&I& ;Nt]tNINCOMPLM86 V2.307/19/84 08:36:3Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHkH TD[[z{[{ K{|euod ts N ts  tscd ts ю{|muf E tsd ts d ts Ҏ tsc{|muf E tsˎd tsː DELETESEGMENTtLGETDESCRPOINTER GETPOINTER NOPENNS NOPEN_DELETION_OBJECT DELETEOBJECTd DEàWU v^F&w^F&w^Fv^&Gv^&wP]؜ $03K tNINSEMPLM86 V2.307/19/84 08:39:1ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHuH TD[[[{ K{|euod tsd ts Ԏd ts Ҏ N ts d tsΎ tsc{|mub A tsǎd tsǐ DELETEMAILBOXwZGETDESCRPOINTERFREE WAKEUPTASK REMOVENOPENNSNOPEN_DELETION_OBJECT DELETEOBJECT7 DEàUv^Fv^&G&GFF t.P^F&G>FPP(P^&Gv^^&G tFPPP^&Gvv^&wP]NINSNDPLM86 V2.307/19/84 08:39:5Ö,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHAʘH T D[[z{[{ K{|eێOFFSETBASE y uo a ts up  ts ͎  E ts̐INTERNALSENDMESSAGE0 READYLISTROOTGETDESCRPOINTER RQSENDMESSAGEŜ DEàEU &7^F&G8F&O:NVVVR&7PQ]19TERRUPT &GETDESCRPOINTERRESETINTERRUPTBODY + DEà"UQQv^F&wH]^ %tNISTAKASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHEΎ FILLCHARYY INITSTACKEIUv>~ tNNj߉EuEFE؎]  D tNITRUTASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(HDECODE_LEVEL_BTER OBJDIROFFSET REGION_FLAGSNENTER_INT_VEC_REGION NENTER_DELETION_REGION NENTER_EXTENSION_REGION NENTER_JOB_REGION NENTER_SEM_REGION NENTER_MAIL_REGION NENTER_OD_REGION NENTER_POOL_REGION NEXIT_INT_VEC_REGION NEXIT_DELETION_REGION NEXIT_EXTENSION_REGION NEXIT_JOB_REGION NEXIT_SEM_REGION NEXIT_MAIL_REGION NEXIT_OD_REGION NEXIT_POOL_REGION NOPENNS NOPEN_DELETION_OBJECT KCHANGEPRIORITYNSKAWAKEKSLEEPNSREMOVENCLOSE_DELETION_OBJECT DELETIONTASKTOKEN READYLISTROOT DELETEOBJECTACKMEMORYCODEDATACONSTDGROUPCGROUPnhH>H TD[[z{[{ K{|euod ts tscd ts ӎ N ts ώ N ts͐1CREATEJOBACCOUNTING DELETEJOBACCOUNTING{VGETDESCRPOINTERNENTER_JOB_REGION NEXIT_DELETION_REGION NEXIT_JOB_REGION SIGNAL DEàUQQv^F^&Gt*NA&+G;vTPF^&G@&G^&Gt.&+G;w8P !-04@F ILOR UX [^ad gjm ps~ Ī =NSX\űſ†Նۖކ ]7tNIRSETPLM86 V2.307/19/84 08:42:3˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ K{|euod tsd ts Ԏd ts ҐINTERNALRESETINtNINTSKPLM86 V2.307/19/84 08:41:1Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ K{|euod ts tscd ts ӎ{|mu h   @ ts͎d t sݎَ tsʎ N tsގێOFFSETBASE y   G tsŽd ts DELETETASKQGETDESCRPOINODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTyYY7 EOI_ROUTINENDECODE_LEVEL_BODY  DECODE_LEVELʠUF] DEàE u33ۊr2.t3ùDE+0ANU^2 `㋗ t u ˊ `]DE % 6 tNJOBACňPLM86 V2.307/19/84 08:43:0͖,ST DEàUv^F&w8^FF&9tP&;Fu>t0^&G^&G> ts&.ueP^F&u]FFF^&<t^&G0F^&xu&p v(PPFX^&@ u^&@W^&u ^&u^&G<t<u,^&wv(P^&G&u&;Fu|^&Gt&.u&G7vv^&G7^&.u|^&>u P^&.u6^&w v(P^&G u&G^&G>1P@^&G>^&.u&P^&G>&.u&P^&G.]E"<JM m  ц ؆ tNSNDMGASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH.MT_BYTES_TO_CACHE REF_OBJ_SIZEKAWAKENSREMOVE INSERTTAILALLOCVALIDATE_PARAMSNUNLOCK_AN{W{ Gul َ ts Ҏ  Ɏ ts ߎ tsΎ 1 ts SCANMEMORYD}INIT_SYSTEM_DSINITINCR INITPOOL SYSTEMSUICIDEPOOLHEADERPARSIZEINCRHEADERPARSIZESEGHEADERPARSIZESYSTEMPOOLTOKEN DEàUFFFFFFFF FFFF~uFLF^&8u &x?rIF(FF^&@FF;FsFWFF;Fs.Fs'^&ЈF&^&:FtFFFʊFrbҒ# & LtNTOKENASM86.86 V2.0wCODECODE??SEGCGROUPۘhH1\5 GETPOINTER%GETDESCRPOINTER GETDESCRTOKEND5UFF]UF-+]UF+]tNONEXASM86.86 V2.0w*CODECODEDATADATA??SEGDGROUPCGROUPhH(#M:_NCSM:_NDSM:_NESM:_NSSM:_NSTNDP_INTERRUPT_LEVEL_VARDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVESe tscur T tsz{V{ Ff t s ݎ ts Ўf tsώf ts͎ T tsu k D tsQONNAME4 TOBJDIROFFSETNLOCK_DELETION_OBJECT INSERTHEADGETDESCRPOINTER KSLEEPNS NUNLOCK_DELETION_OBJECTNUNLOCK_AND_SIGNALSIGNALNENTER_OD_REGIONREMOVENEXIT_OD_REGION DEà&U^&w v(P^&G v^FF &G>&G.F+14;BIPF!FFF FFF tP]!#%')+^>tINIT_SYSTEM_DSASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHYYINIT_SYSTEM_DSڠUF؋] DEÊtNMEMSCPLM86 V2.307/19/84 08:45:2ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T<ǘD[[{|eurg tsَzD_SIGNALNUNLOCK_DELETION_OBJECTNLOCK_DELETION_OBJECTNEXIT_MAIL_REGIONNENTER_MAIL_REGIONYY RQSENDMESSAGExE2U^ S P uE^ &G&>tF&&:txS&66FP u P^*F&&Wv&&F&8u*&&6QPF&[&:t&:r**v &L&F&&G7&PPP(P&^ &O&& &&'u] ΜYD  JRY `oF;FvXFFPF FFFVNщV^&G&G &GV+щV&W PRRSF'F FFN;sFF^&O SHPFrBF;Fs:^&ЈF&^&:Fu FFFF%FuFFNF;v*^&PBVVF@;t&xsFrFvvX%'*RW F] tNODUTLPLM86 V2.307/19/84 08:46:1ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH"H TD[[{| OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTZXINITNDPRESTORE8087INTMASK COMMON_ERRORt ARRAYBOUNDSoOVERFLOWg DIVIDEBYZERO_GIVEEXHANDLERCONTROLGIVETASKCONTROL'U^&W&O&g]U^FN &W&w&&/&g݃FNVV~ ~v~v^ PPPSQRWVU3= t>=uY>pr 쨀t]߀u2쨀u 6ͺX7P~= t 6ͺXN[^SP3PPPQ͸ ]^_ZY[XKCREATEOBJECTNS GETDESCRTOKENGETDESCRPOINTERSIGNALSYSTEMEXCEPTIONHANDLERPTR JOBSIZE OBJDIROFFSETALLOCFREEINITPOOL INSERTHEAD RQCREATETASK! GETOBJECTTYPE# DEàWU"F tPt Pv^Fv &|u ^&G&&D^ &Gtv&D.u^ &1G^ SPF t vv^ &w&wv^ &G"PFPr F tP^ &w&wP^SF~tOv^ &wFPr!v^ &w&wvPv^ &w&w^SFF^ &Gtsc ts  tscc ts Ў{|m M ts؎ K tsc tsɎ  tsĐRQCATALOGOBJECT݌VALIDATE_PARAMS GETDESCRPOINTER NENTER_OD_REGION NEXIT_OD_REGION NLOCK_DELETION_OBJECT NUNLOCK_DELETION_OBJECT NUNLOCK_AND_SIGNAL FIND_NAMEREMOVE WAKEUPTASKT DEà4U^ &uF&G^ &w^F^ SPF t v^ &SFP^ &w.ksvFF] \<MaēĆ݆ctNCRMBXPLM86 V2.307/19/84 08:17:5ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHzH TD[[{|e tscurz{X{ Hum P ts ǎ ts RQCREATEMAILBOX ڌJMBXSIZENLOCK_DELETION_OBJECTNUNLOCK_DELETION_OBJECTNCREATE_OBJECT z DEàU^ &u@^ &$FPvFP{U{ Eu j ׎ ts  tscg tsΎ _ tsg t s܎g tsȎ{|m  O tsȎg tsÎ  ǎ ts؎ W ts׎  ǎ ts Ԏg ts"Վ  ǎ ts$А RQCREATEJOB%;CREATEJOBACCOUNTINGDELETEJOBACCOUNTINGVALIDATE_PARAMS NENTER_DELETION_REGIONNENTER_JOB_REGIONNEXIT_DELETION_REGIONNEXIT_JOB_REGIONρ>tU^6Gu]Â=DEċRĔįĸRVVRVVntNVPATHASM86.86 V2.0wCODECODE??SEGCGROUPۘhHVALIDATE_PARAMS_BODY_DUMMYW\PARAM_VALIDATION_PATHX DRtNCATOBPLM86 V2.307/19/84 08:12:3Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH0ژH T,טD[[{|ez{Z{ Juour؎ FFv^FF&G^ &G v&D^ &G&D^ &G&D^.^;u;t6&9u&9u^&^&GZ&W^&G^&G'^&GZ&W&G'^&G&G&G&G œd! ' lv| ē dž φ  %@ ~Ś Ö &G"&G$&G0&G2&G,v &D&G&F&G*v &D&G.~t*^&w$vP^&G$F^&G,F^&G&G ^ &G"^&G<&O> t4FFFN^&Gq5e^&G Fv &D&G &G^&G>F t?PP(PFv^Fv &D&G.vFFP] L"+7AG^ikmoq  "%(tNCRJOBPLM86 V2.307/19/84 08:16:2˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH*H T:ɘD[[{|eur W ts׎ W tsՎzF^&G&Gv & ^&ON&ON&OV+&W&G&G&GF] u&8ntNCRREGPLM86 V2.307/19/84 08:18:3Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHfH TD[[{|e tscurz{X{ Hum P ts {|mu i Վ ts ώ ǎ tsRQCREATEREGION ^ REGIONSIZENLOCK_DELETION_OBJECTNCREATOUPCGROUPnhH=ΘH TD[[z{[{ K{|euod tsd ts Ԏ{|mu i  H ts Ύd tsΎup  tsȐRQDELETEMAILBOXԌQGETDESCRPOINTER DELETEMAILBOX OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUE DEàAUQQ^ &7^F&GF^ &7PP^ &7v] { &/5tNDELRGPLM86 V2.3OCK_DELETION_OBJECTNCREATE_OBJECT NUNLOCK_DELETION_OBJECT DEàPU^ &&s&P^ &7FPF^&GF] 3AtNCRTSKPLM86 V2.307/19/84 08:20:2Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH2טH T8˘D[[z{[{ K{|euod tsup ֎ ts  K ts   ts tsc{ &/5tNDELSGPLM86 V2.307/19/84 08:26:2ʖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHXH T D[[z{[{ K{|euod tsd ts d ts Ҏ{|mu g F ts̎d ts̎up  tsƐRQDELETESEGMENTˌ]GETDESCRPOINTER GETPOINTER DELETESEGMENT OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILPvFPF~uFNFFFFF^S^ &_ S^ &wv^FF^&G(F&G*&G0&GC&GB&G@&G>&O.&W7^ &v&DA^ &_&\,^&\8^&\:^&F&|2[&\4^&_'&\6t[FFF^&~&G&OFF<w1^&@&@&@"- <HS kĨĺ؆űȠH&@,&@6&@@&@J&@TFu^&Gv&w,^S~uF] X / 9ΊtNDELMBPLM86 V2.307/19/84 08:25:2˖,STACKMEMORYCODEDATACONSTDGRE_OBJECT KCREATEREGIONNSNUNLOCK_DELETION_OBJECT DEàjUP6FPFF^&Gv &t ^&G^&Gv^ &%P^&GF] P[tNCRSEGPLM86 V2.307/19/84 08:19:1ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHLH TD[[ tsc{|euqz{X{ Hum P ts ǎ ts RQCREATESEGMENT ӌANL07/19/84 08:25:5Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH=ΘH TD[[z{[{ K{|euod tsd ts Ԏ{|mu i  H ts Ύd tsΎup  tsȐRQDELETEREGIONPGETDESCRPOINTER DELETEREGION OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUE DEàAUQQ^ &7^F&GF^ &7PP^ &7v] q|muc  ? tsȎd tsȎ   tsڐ RQCREATETASKGETDESCRPOINTERVALIDATE_PARAMS NCREATE_TASK_OBJECT TASKSIZENDPSAVEAREASIZE INITSTACKNLOCK_DELETION_OBJECTNUNLOCK_DELETION_OBJECT KCREATETASKNSNUNLOCK_AND_SIGNAL? DEàUv^Fv &|u ^&G&&DF^&"tF^ SPF tP^ &GF&tFF^ &GFF~u*~vF FFFN FFFFFFOGUEo DEà\U ^ &7^F&w^F&w^F&GF^ &7PP^ &7v]  'AJPՊtNDELTKPLM86 V2.307/19/84 08:27:3Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHLH TD[[z{[{ K{|euod tsd ts Ԏ{|mu i  H ts Ύd tsΎup  tsȐ RQDELETET~tP] 91: D IYfqijז߆tNENABLˆPLM86 V2.307/19/84 08:32:2͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH/ܘH TD[[ tsc{|euqf ts؎z{V{ Fu k ׎ ts ю{|mf t sގ  Ŏ tsʐRQENABLEDELETIONbNLOCK_DELETION_OBJECTNUNLOCK_AND_SIGNALVALIDATE_PARAMS_NS NUNLOC_PORT[YYRQDISABLE_BODY$6 u u3ϋDE tNDSABLPLM86 V2.307/19/84 08:30:5̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHBɘH TD[[{|murg tsَ{|eunc ts׎ ts c ts юz{O{ ?ud  tsȐRQDISABLEDELETIONG0CHECKKERNELERRORNLOCK VEXϹDEȊtNEXITBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(jŘHDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTyYYRQEXITINTERRUPT_BODYn6uY3ۊr2.t. `㋗ t u ˊ `3Ϲ+'DE.3w юwH"wH"w@*obue  tsRQENABLESIGNALNENTER_INT_VEC_REGIONNEXIT_INT_VEC_REGION KENABLELEVEL DECODE_LEVEL GETDESCRPOINTERINTERRUPTTASKVEC DISABLEMASKLEVEL_SET_TABLELEVEL_BIT_TABLE DEàU ^ &t^ &7FFF$F^^.u^㋇F u vFqv^F&Bu vFQF;Fu^&GB&:GCwvF-^^&GGuF^S^^&GG[0FASKNGETDESCRPOINTER DELETETASK OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUE| DEàPUQQ^ &?uF&^ &7^F&G8F^ &7PP^ &7v] -5>DOtNDLEVBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(HDISABLELEVEL_BODYDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOIKNUNLOCK_DELETION_OBJECT DEà3U^ SP^ &7t P] H$)tNENTRBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(5HDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTyYYRQENTERINTERRUPT_BODY96 u)拔 t &0u tRIFYOBJECT SIGNAL DEàFUQQ^ &7PF t P^ &7FFtP]  +:tNELEVLPLM86 V2.307/19/84 08:31:3͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[{|eurg tsَ tsc{|mumb ts b ts z{ P{ @g tsڎ INTTASKTOKENDATASEG) y  ? H Y tNGETEXPLM86 V2.307/19/84 08:34:5Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHEƘH TD[[z{[{ K{|euod tsup   ts АRQGETEXCEPTIONHANDLER GETDESCRPOINTERٜ DEàIU^ &FFv^F&G2^&Z&WS^&G6_[&G] +>tNGTLVBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGRjV~:tNRACTLASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHC-CHECKKERNELERROR NUNLOCKNSNLOCKKENTER{YY*RQRECEIVECONTROLRQACCEPTCONTROL2UV^ &F-F&>tFv tFF&>ub&-^&9 uM& u"F&F^&&] ^;t~tv u& twP~uvƜ!DE0ɂ̂)tNRCVMGASM8ETION_OBJECTNLOCK_DELETION_OBJECT GETOBJECTTYPENUNLOCK_AND_SIGNALlYY RQGETTYPEED=U^ &7=u^ &H& =uPPX] ݜ .2tNLKOBJPLM86 V2.307/19/84 08:44:2ʖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH(H T"D[[ tscz{Z{ Juo{|eum׎ ts ӎb ts Ҏ{|m L ^ &?u !PF&6v(P&>tF&F&N&.& F&>u!&>.t&'^ &7F&'&>uPF&>.uPF&>u#&.F&6P(PF&2F&.&& ] 0D  FP fi ӂ؂ # 9 KN s ΊtNRSETIPLM86 V2.307/19/84 08:49:5–,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHmH PR̆ц؆tNNTRYBASM86.86 V2.0w*CODECODEDATADATA??SEGDGROUPCGROUPhHHgM:_NCSM:_NDSM:_NESM:_NSSM:_NST READYLISTROOT ENTRY_VECTORSIGNALNDP_INTERRUPT_LEVEL_VARZX7RQNOTSUPPORTEDyRQNOTCONFIGUREDt NENTRY_BODYۜ DEàU캀R>t ~;FVRV&IA&.< sE*.8v4.*Q&68&6:.[Àu]^ގϸP$0 VV!AH^XOUPh(UژHDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTyYYRQGETLEVEL_BODYY tH2ۨu2t㋗ t2ۨu 23ϴ DE ( 1 4tNGTTYPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH9ڎTNUNLOCK_DEL6.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHtMT_BYTES_TO_CACHEREMOVE INSERTTAIL INSERTSORTEDFREEVALIDATE_PARAMS_NSNUNLOCK_AND_SIGNALNUNLOCK_DELETION_OBJECTNLOCK_DELETION_OBJECTKSLEEPNSNEXIT_MAIL_REGIONNENTER_MAIL_REGION*YYRQRECEIVEMESSAGEEU^ &GFS"PF&>u|&>t;&PP-FPF&^&6&6SZX(&*&7&w&&t&:t&t s܎ J ts  tsݐRQLOOKUPOBJECTNLOCK_DELETION_OBJECTVALIDATE_PARAMS_NS NENTER_OD_REGIONNEXIT_OD_REGIONNUNLOCK_AND_SIGNAL NUNLOCK_DELETION_OBJECT FIND_NAMEQONNAME DEàU ^ &uF&G^ SP^ &_SFP^ &w.LT^ &?tX^ &GFF&~^Y^&G4^&G F~u&2F1^ &?u1^Sv^ &7 P] 8'?JLNTD[[{|eurg tsَ tscg ts֎{|mu k ` t s wH w@ (olz{M{ =ub  tsƐRQRESETINTERRUPT?SIGNALNENTER_INT_VEC_REGIONNEXIT_INT_VEC_REGIONRESETINTERRUPTBODY DECODE_LEVEL CLOCK_LEVEL LEVEL_SET_TABLE LEVEL_BIT_TABLE DEàqUQQ^ &u(^ &7FFF%F;Fu P(^^.DEà}U^ &wFFNF^ S,PF t v^F^ &uFv^Fv^F^ &GPFZuV¶ƒ FFPvvF^&G,v &D&GC&GBF&GG&O@@N&OH^0FF^Fv &8FsuFF8NF^ &W.&_&x^ &uP] XB(4>DP ht   ' XnqtNSETOSPLM86 V2.307/19/84 08:53:3ɖ,ATECHECKKERNELERRORNUNLOCK_AND_SIGNALNUNLOCK_DELETION_OBJECTNLOCK_DELETION_OBJECTx DEàLUQQ^ SPF tP^ &7^ &7FFtP] w&/5@tNSETEXPLM86 V2.307/19/84 08:51:1͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|eurg tsَz{W{ Gg ts ul  ǎ ts ΐRQ.&Z&P] /)AHSY^ekďÊtNSETPRPLM86 V2.307/19/84 08:54:0˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T"D[[{|ez{Z{ Juour؎ tsc ts  tsc{|mu g = ts̎ K ts K tsc tsȎ  tsÐ RQSETPR֎ ts {|mu i   @ ts Ύ ^ tsΎb tsb tsʎ ^ t sَߎ INTTASKTOKENDATASEG) y  w ̎wH wH wH   tsRQSETINTERRUPŤNENTER_INT_VEC_REGIONNEXIT_INT_VEC_REGIONVALIDATE_PARAMS KCHANGEPRIORITYNSKENABLELEVELNSGETDESCRPOINTERSIGNAL DECODE_LEVELINTERRUPTTASKVEC DISABLEMASKLEVEL_SET_TABLEPIC_INFOcW u Pv] s%-;@ISX_ektNRSUMEPLM86 V2.307/19/84 08:50:3̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHØH TD[[{|ez{Z{ Juour؎ tsc ts ӎ{|mc t s u h[ ts͎c tsˎ tsc  tsŐ RQRESUMETASK}VALIDATE_PARAMS NCLOSENS KACTIVSTACKMEMORYCODEDATACONSTDGROUPCGROUPnhHaH TD[[{|eurg tsَ tscz{V{ Fu k  Ȏ ts ϐRQSETOSEXTENSION EESIGNALNENTER_INT_VEC_REGIONNEXIT_INT_VEC_REGION INTERRORENTRY lS DEàWUQQ^ &sP^ &G.&FF^ &.;6u.;tF;6u;tP^ &Z&W^ &G&SETEXCEPTIONHANDLER SIGNALGETDESCRPOINTER  DEàWU ^ &^F&v$Pv^F^&tS&.;6u.;t#v^Fv&F&G2Z&W4Yv^F&G^&G2Z&W4^&G^&G6] $>EMptNSETINPLM86 V2.307/19/84 08:51:5ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH}H T.՘D[[ tsc{|ez{Y{ IunuqIORITY$ VALIDATE_PARAMS GETDESCRPOINTER NENTER_INT_VEC_REGION NENTER_SEM_REGION NENTER_MAIL_REGION NEXIT_INT_VEC_REGION NEXIT_SEM_REGION NEXIT_MAIL_REGION KCHANGEPRIORITYNSREMOVE INSERTSORTEDNLOCK_DELETION_OBJECT NUNLOCK_DELETION_OBJECT NUNLOCK_AND_SIGNALc DEà"U^ &uF&G^ &w^F&w8^Fv &<u ^&G&&^ SPF tv^ &^&G,&G> tnP^F&G:tZ&8OuT<u ^&.t^&u<^&.t2^&w^ &ǎ ts ΐRQSLEEP 0SIGNALKSLEEPNS$ DEà'U^ &?uPv^ &7] C tNSNDCLASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHm.SIGNALKEXITKCHANGEPRIORITYNS NUNLOCKNS YY RQSENDCONTROL\qU^& tV& &;u;&&& t uv] &:tQQSPYQS uYθP!DE=U]k/tNSUSPDPLM86 V2.307/ASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTNDP_INTERRUPT_LEVEL_VAR-YYRQSIGNALINTERRUPT_BODYb# k faD/6u3ۊr2拔 t&0u3&2t&2:rwu.㋗ `㋗ t u ˊ `&>2uk>t'㋗&6&5 ㋗&4 >t,U캀R>t ~;F[Àu]3 㛜DE4d hnR_DELETION_REGIONNENTER_EXTENSION_REGIONNENTER_JOB_REGIONNENTER_SEM_REGIONNENTER_MAIL_REGIONNENTER_OD_REGIONNENTER_POOL_REGIONNEXIT_INT_VEC_REGIONNEXIT_DELETION_REGIONNEXIT_EXTENSION_REGIONNEXIT_JOB_REGIONNEXIT_SEM_REGIONNEXIT_MAIL_REGIONNEXIT_OD_REGIONNEXIT_POOL_REGIONVALIDATE_PARAMS KSUSPEND KSUSPENDNSGETDESCRPOINTERSIGNALNOPENNSNOPEN_DELETION_OBJECTNLOCKNS NUNLOCKNSNCLOSENSNCLOSE_DELETION_OBJECT VERIFYOBJECT DEà5U^ & t;Fu,F^ &RGIVETASKCONTROL GIVEEXHANDLERCONTROL RESTORE8087INTMASKʜ DEàU v^F&G6F&G2FF^ &u v&D<&G^&w<Ft <u ^ &r~u^ &r ^ S ^S^ S] z BqtNSLEEPPLM86 V2.307/19/84 08:55:4Ɩ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH#H TD[[{|eurg tsَߎ ts֎z{U{ Eu j  w(P^&GP^ &w(P^&GP^ &w&7] M "/MPS_ilou݆  ŠtNSGNLBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(FHBM:_NCSM:_NDSM:_NESM:_NSSM:_NSTACTIVATE_SIGNAL_QSIGNAL_Q_INDEXSIGNAL_Q KERNEL_FLAG CLOCK_OFF KACTIVATENSDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTM19/84 08:56:1Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH1٘H TD[[ tsc{|ez{Y{ Iunuq֎ ts {|mb t s b tsώb tsb tsˎb tsɎb tsǎb tsŎb tsÎՎ tsَ  ts RQSUSPENDTASK6NENTER_INT_VEC_REGIONNENTE~ćĘĥĬİĶȒΒגےߒ VV V "&ntNSIGNLPLM86 V2.307/19/84 08:55:1ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ K{|euod tsup a ts ӎ ӎ ts Ўd tsώ   tsʐRQSIGNALEXCEPTION$MGETDESCRPOINTESPF tPvvv^ SPF t v^ &7^ &7^F^ &7PF u(^&G@@tF^ &7F tF~t-^ &7P u ^ &7vv v] %6<ER`lpyƆ؆ ۆކ  #) tNTKTOKPLM86 V2.307/19/84 08:57:4Ė,STACKMEMORYCODEDATACONSTDGROUPCGROUPTACONSTDGROUPCGROUPnhHFŘH TD[[{|eurߎ tsz{W{ Gul َ ts V_RQCATALOG_OBJECT ό VERIFYOBJECTȜ DEàJUQ^&wPF t "^&G tPPF t F] /tNVONEPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHT4NEXIT_OD_REGIONNUNLOCK_AND_SIGNAL VERIFYOBJECTPARAM_VALIDATION_VECTORUYY,VALIDATE_PARAMS_NSVALIDATE_PARAMSCE&0 DtNVCRJPPLM86 V2.307/19/84 09:02:3Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHpH T"D[[{|eurߎ tsz{W{ GOFFSETBASE y  g ts ulԎ tsV_RQCREATE_JOBJ VERIFYOBJECTTASKSIZENDP&(&uU^v].˜D$DtNVRSTPPLM86 V2.307/19/84 09:07:0̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHCȘH TD[[{|eurߎ tsz{W{ Gg ts ul ׎ ts V_RQRESUME_TASK VERIFYOBJECTGETDESCRPOINTER , DEàGU^&7PF t ^&7^F&G@@t] & t:0ϖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHOH TD[[z{[{ K{|eێOFFSETBASE y uo a ts up Ў ts V_RQCREATE_TASK! READYLISTROOTGETDESCRPOINTER DEàSU&7^F&w8^Fv&D&:G&s^&sT] tNVCTOPPLM86 V2.307/19/84 09:04:4˖,STACKMEMORYCODEDAnhHQH TD[[{|eurg tsَz{W{ Gg ts ul  ǎ ts RQGETTASKTOKENS (SIGNALGETDESCRPOINTER ROOTJOBTOKENJ DEàUUQQ^ &?vP^ &.$,16HFFv^F&G] S"$&(*:ItNVALIDASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH~YYV_RQUNCATALOG_OBJECT!V_RQRECEIVE_MESSAGE*V_RQLOOKUP_OBJECT V_RQGET_SIZEV_RQGET_PRIORITY V_RQENABLE_DELETIONV_RQDISABLE_DELETION EXS(SSSSS&0P[ t PtuǜD6LOtNVPBDYASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH, VALID_TABLE READYLISTROOTYYVALIDATE_PARAMS_BODYBE0&SAVEAREASIZE READYLISTROOTGETDESCRPOINTER  DEàtU^&"vM^&G tPPF t&.^&GFF t&v ^&s}^&tFF^&G& Gu*&vF^&GFFNF^&G&9Gv u ^&G;Fs4 ^&u2w^&uDh^&uTY^&udJ&7^F&w8^Fv&D&:G&st^&Gt &:Gs]'pĨij"(57tNVCRTPPLM86 V2.307/19/84 09:04NVSNMPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHHq VERIFYOBJECT̚YYV_RQSEND_MESSAGE^uU^&?t6&7P&7P t=u 0 t 04YY t,^&wP t ^&wP t ]!ED,KbtNVSTIPPLM86 V2.307/19/84 09:07:4Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH H TD[[z{[{ _PORTEOI_PORTNDP_INTERRUPT_LEVEL_VARYYRQWAITINTERRUPT_BODY U캀R>t ~;FFP6&7&.,u=3ۊr2;uX&0uNJ&2&2:s&&7u ㋗"&2 uV3[Àu]ϹQEDE VV"_ ČĔĚĵV(tKENTRY CODEDATA??SEGCGROUPDGROUPhHHAM:_WCSM:_WDSM:_WESM:_WSSM:_WSTM:_NCSM:_NDSM:_NEV¶ƒ FF^&G&:Fv]+:O^y+tNVSTPPPLM86 V2.307/19/84 09:08:4ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHrH TD[[{|eurߎ tsz{W{ GOFFSETBASE y  g ts ulԎ tsV_RQSET_PRIORITY/ VERIFYOBJECT READYLISTROOTGETDESCRPOINTER  IALIZE݀KENTRYASM86.86 V2.0wUu&. t't &ʎ&>t)2㋗&6&5 ㋗&4 &1t7‹;t- u &7&&&'&&'&&&&t][Àu]Y[_^ZXϋ"t&&&tZXVWSQU캀R>t ~;F*3&>u &&&&t X&֋&&&ڎҋ&&ERIFYOBJECT READYLISTROOTGETDESCRPOINTER  DEàQU^&6&9tPPF t ^&7^F&G@@t] 0tNWAITBASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(mHM:_NCSM:_NDSM:_NESM:_NSSM:_NST READYLISTROOT KSUSPENDNSSIGNALDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMRK{|eێOFFSETBASE y uo a ts {|mu h ] t sߎwH wH up ʎ tsV_RQSET_INTERRUPTJ READYLISTROOTGETDESCRPOINTER DECODE_LEVELPIC_INFOLEVEL_SET_TABLEٜ DEàU^&GuB^&wFFNNVu~u^t^FtK^&u&7^F&w8^Fv&|u^&u ^&G@@tN^&GPFZuSM:_NSSM:_NSTCLOCK_SPEC_EOI CLOCK_OFFCLOCK_ONTT_NDP_AREA_OFFSET LAST_NDP_TASKSIGNAL_Q_INDEXSIGNAL_QACTIVATE_SIGNAL_Q KERNEL_FLAG KSTACK_ENDDELAYLISTROOTTOKENKREADYLISTROOTTOKENNDP_INTERRUPT_LEVEL_VARDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORT IDLETASKTOKENKCREATEOBJECTNSKSLEEPNS ISTACK_END ISTACK_START[[$CLOCKENTRY_BODY INITDEàvU ^&G6&9tPPF t B^&w^F&G@@t&^&w8^Fv&&:G&s$]2N'tNVSUTPPLM86 V2.307/19/84 09:09:2Ȗ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHMH TD[[{|eurߎ tsz{W{ GOFFSETBASE y  g ts ulԎ tsV_RQSUSPEND_TASK+/ V  t!ƃ &5I&uI &uI&uPΜb  &7z!/PE4<CKOXclsy#ĉđė#ĠĤ#ĩĸV VVVV " ! %$*QVV ]V Dky|ŇŜŢ#ŧ ŭȒsKMTASKASM86.86 V2.0wUF 3F &]F^&&] UF&<uɎ&&W]ϜX3!$3 OES%Z6bf%i&u KIDLETASM86.86 V2.0w]6&1ڡŽ+Î&;t 3P㎜1% )(,Pr7)>%GQ'6KPDATAASM86.86 V2.0w٠3@2u&u& &u&A 3E25JzkzĀzˀ=@W\hkŜz€̀ҀzZz_ƘqƩqKREGONASM86.86 V2.0wUFV& u&Î]&>vPQ&6vv]UF&>u&R&;u&F&:u$1&\AN' ,m34"7M= @XJO{SUU:ZV`1f!jjo}t_x~O7i0\+$}i :|L41fRjV} +9Z $$'l/ 4H9]>GSLRU] atdgcs'wyX=[/?Je$lqVRSNALLOC CHECKREQUESTSSATISFYREQUESTERFINISHINITIALIZATIONCREATE_ACCOUNTINGNCREATE_OBJECTNCREATE_TASK_OBJECTDELETE_ACCOUNTINGOBJECTDELETIONPROLOGUEOBJECTDELETIONEPIL&u ;v+&&t&)&&=u&&>t&&&>uÊ=W6 :hWtzzĒģ ħKCNVRTASM86.86 V2.0w2&&Ì&&&&&&&&&&&&Î&&Î&&.:w;u~KINITLASM86.86 V2.0wU363Í6&&&&F &1v T6PSv 63tu&&`uWF&;u]UF&>r&>uF6&>u&&&`tXF&&>t&&]F&]UF&$th&u]&>tH&&&`uBPF&F&<t<t &]F&]UF&tF&&u]UFF& &V]UFFF=t& &]UF&;tÊ^&v_]UFF&:r t*&>u"&8&REENFRJOBNGOTYPNINCOMNINMBXNINREGNINSEGNINSEMNINSNDNINTSKNIRSETNISTAKNITRUTNJOBACNKERORINIT_SYSTEM_DSNMEMSCNODUTLNSNDMGNTOKENNONEXNVPATHNCATOBNCRJOBNCRMBXNCRREGNCRSEGNCRTSKNDELMBNDELRGNDELSGNDELTKNDLEVBNDSABLNELEVLNENABLNENTRBNEXITBNGETEXNGTLVBNGTTYPNLKOBJNNTRYBNRACTLNRCVMGNRSETINRSUMENSETEXNSETINNSETOSNSETPRNSGNLBNSIGNLNSLEEPNSNDCLNSUSPDNTKTOKNVALIDNVCRJPNVCRTPNVCTOPNVONEPNVPBDYNVRSTPNVSNMPNVSTIPNVSTPPNVSUTPNWAITBKENTRYU a_ J&ÎPvF&:tP&6v]+27!@]A2z!+KMDLTEASM86.86 V2.0w    UF-&2.u F&w.w&2=t&&2=u F&?&s& <u&..v<u 3Pv]7Pm@Pvi~ҀـKDLYLSASM86.86 V2.0w& =u&&>r& OGUENUNLOCK_DELETION_OBJECTNLOCK_DELETION_OBJECTNCLOSE_DELETION_OBJECTNOPEN_DELETION_OBJECT NUNLOCKNSNUNLOCKNLOCKNSNLOCKNCLOSENSNCLOSENOPENNSNOPEN DELETEOBJECT SYSTEMSUICIDEFINDFINDLARGESTSEGMENTINITINCRINITPOOL FIND_NAME RQFORCEDELETEFREEFREEPOOLFREEJOB GETOBJECTTYPEDELETECOMPOSITE DELETEMAILBOX DELETEREGION DELETESEGMENTDELETESEMAPHOREINTERNALSENDMESSAGE DELETETASKINTERNALRESETINTERRUPT INITSTACK EOI_ROUTINEDECODE_LEVEL_BODY DECODE_LEVELCREATEJOBACCOUNTINGDELEPFPPPPs&?u &%u:&G&O&O s s$&t.6P &G vPsv6PP 6P<Ϝ $) 058>CKNSX]`c gmy~āđĜġľȝН܆ߝ $U U]æ t CNTRLCHARMODPLM86 V2.307/20/84 01:18:0ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH~TD[ITINTERRUPT_BODYRQGETEXCEPTIONHANDLERRQGETLEVEL_BODY RQGETTYPERQLOOKUPOBJECTRQNOTSUPPORTEDRQNOTCONFIGURED NENTRY_BODYRQRECEIVECONTROLRQACCEPTCONTROLRQRECEIVEMESSAGERQRESETINTERRUPT RQRESUMETASKRQSETEXCEPTIONHANDLERRQSETINTERRUPTRQSETOSEXTENSION RQSETPRIORITYRQSIGNALINTERRUPT_BODYRQSIGNALEXCEPTIONRQSLEEP RQSENDCONTROL RQSUSPENDTASKRQGETTASKTOKENSVALIDATE_PARAMS_NSVALIDATE_PARAMSV_RQCREATE_JOBV_RQCREATE_TASKV_RQCATALOG_OBJECTV_RQUNCATALOG_OBJECTV_RQRECEIVE_MESSAGP r.6P]˜P "$&(*-5 9> ENQVZ`ilqu|Ā~6U;sF&@FPP] ) , Uv PP..@v>uu.>u P`6@PP=>u&G;sP@CxB P6;s"F&@FPP PP] "LBOXOUTPUTONINTIAL DEàY!UvP;Fu]r ۠+U s s .F.] FYQPQRSVW.U.tgs` s P +6&x u P 6&pu&G;w.6P .6P]_^[ZYXP@&4;?PW[fjry| Ĉċ O-UF^.6PJPvPPPPPFP6PP 6TEJOBACCOUNTINGCHECKKERNELERRORINIT_SYSTEM_DS SCANMEMORYQONNAME RQSENDMESSAGE GETPOINTERGETDESCRPOINTER GETDESCRTOKENINITNDPRESTORE8087INTMASK COMMON_ERROR ARRAYBOUNDSOVERFLOW DIVIDEBYZEROGIVEEXHANDLERCONTROLGIVETASKCONTROLPARAM_VALIDATION_PATHRQCATALOGOBJECT RQCREATEJOBRQCREATEMAILBOXRQCREATEREGIONRQCREATESEGMENT RQCREATETASKRQDELETEMAILBOXRQDELETEREGIONRQDELETESEGMENT RQDELETETASKRQDISABLE_BODYRQDISABLEDELETIONRQENABLERQENABLEDELETIONRQENTERINTERRUPT_BODYRQEX[,PREVIOUSLINELENGTHOUTPUTONAUX22INDEXTESTFORCONTROLCHARX CHANNELINPUT2OUTPUT_INTERRUPT_LEVELRQENABLE RQDISABLERQRUBOUTNOPRTCOUNTMAXCOUNT MESSAGEPTRRUBMSG RQABORTAP SENDRESPONSESENDECHO6 DEà^O NP# (   Q6UQ~F Nu+JVuFFF]۠DU]  XUQvPP.zPPB>s4.6EV_RQLOOKUP_OBJECT V_RQGET_SIZEV_RQGET_PRIORITYV_RQENABLE_DELETIONV_RQDISABLE_DELETIONVALIDATE_PARAMS_BODYV_RQRESUME_TASKV_RQSEND_MESSAGEV_RQSET_INTERRUPTV_RQSET_PRIORITYV_RQSUSPEND_TASKRQWAITINTERRUPT_BODYCLOCKENTRY_BODY INITIALIZE $&(*,0:@GM W[em pswąĈČĔęĜĠħĭIJɖ͖ؖ  tDUMMYABORTAPMODPLM86 V2.307/20/84 01:19:3֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[ RQABORTAP DEà U]jt[ VERSION3P1RQINPUTRQOUTPUT THINPUTINITINT8612 THOUTPUTINIT CNTRLCHARMODDUMMYABORTAPMOD9! iHOf&f1 /RQINPUTRQOUTPUT RQTHNFcommand too complex [invalid token jduplicate symbol d|item not found idebugger pool too small no breakpoint task (attempt to modify non-ram location y!task not on breakpoint list undefined symbol ݠ% breakpoint task not an NPX task ؠ-invalid task state *Aexecution breakpoint already defined ՠ+ginterrupt task not on breakpoint list i<8F[j| -Ag+  $HANDLEEVENT; PUTSTRINGPUTCHARPUTHEXDELETE REMOVEOBJECTGETITEMRQDENABLEDELETIONRQDDELETESEGMENTEXCHANGEBREAKLISTPEXECUTIONBREAKLISTPPUTNL PUTTOKENPAIR SIGNONBANNER SIGNOFFBANNERRQWAKEADDTASKSINJOBTOBL ADDTASKTOBLRQRECEIVEMESSAGE DEà: E, TASK=  , CS=+ , IP="UNKNOWN BREAKPOINT Ѡ+ iSBC861 NOT CONFIGURED D: H, EXCH=Z P, TASK=G X, ITEM=C` EXCEPTION: ۠ m, CS=ɠ s, IP= y, TYPE= , PARAM='_ VERSION4P1PLM86 V2.307/20/84 01:21:1ߖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH+H TD[[ DEà/Copyright1980, 1981, 1982 Intel Corporationt ERRORHANDLERވPLM86 V2.307/20/84 01:43:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[PUTERROR CHECKDEFTYPEȌ$ RESETPARSE PUTSTRINGINPTOKEN DEà8syntax error ORMINRUBMSG OUTSTANDARD MESSAGEPTRCOUNTMAXCOUNTMTHOUTPUTPRIORITYSENDECHO SENDRESPONSE THINPUTINITINTIAL RQTHNORMOUTNOPRT ISTOKENVALID INTHANDLEROUT THOUTPUTINITGETTHOUTPUTINITSADDRESSPREVIOUSLINELENGTHOUTPUTONAUXINDEXTESTFORCONTROLCHAR CHANNELINPUT RQABORTAP(,04# _UQ&GFȴ&x uFF&@GPP^.ĿW] (58=KPSU>Bu> tP]-  tDEVENTPLM86 V2.307/20/84 01:28:2ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH?ƘH TFD[[ CONTROLDHIT  WAITFORWAKEUPHANDLEBREAKPOINTDESCRIPTOR@EXECUTIONEVENT EXCHANGEEVENTEXCEPTIONEVENTTASKREGIONBPEVENTH  נ , NES=[*TASK IN REGION INCURRED BREAKPOINT: ѠEXCEPTION , TASK=֠2 FULL BREAKPOINT INFORMATION NOT AVAILABLE+ TASK NOT PLACED ON BREAKPOINT LIST&UP PRPP]à  J@U FFF^&GFF^&G s^SF^S^S^F^&G r^ S^&Gs ^ &w^&G s v FP^] -=Vk?@U^ SPv PvPv] ɜ*   Ð UFu+JuFu+J;u.< u+J;u`u+Jt6T륰PFPPs &G].]]Μ= &)D\sy|ĊďĜģĩıbUFu+J;u< u+Jt6뽰P%tt+Ju]ÿut+Ju]_1"9?BMQVYw~āğU8ORWa dis v{ ĭ Ķ ĺ ̆'UQQ`P^&wmP^&_^F&wsP^&wyP^&w P^&G%P^& uP^&w ^S]K  149CFKUX]ky~ HU^&GFFPF u&GFFPFFFFr!F t9~u9FuF^&ҊFs^S^SSp%^S^SSSPP^&w[N KEYPOINTERSEMANTICSTACKPTRCURRENTSEMANTICSTACKNODE NAMESPACE PUSHSEMSTACK POPSEMSTACKPPUSHKEYrPUSHNAMEPUSHNULL PUSHCONST  PUSHNUMVARPUSHBREAKPTVARINITIALIZESEMSTK PUSHUNDEFINEDPUTERRORBREAKPOINTTASKPFINDNODE HEXCONVERTGETBREAKPOINTTASKPFINDREGISTERINDEX GETREGVALUERQLOOKUPOBJECTTOKEN ROOTJOBTOKENG DEàTU졨s;N&ON &NF&OZ&W@؍YP]/:=AJSCANNERfPLM86 V2.307/20/84 01:43:4ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH!TD[[ TOKENِ RESETSCANGETTOKEN$GETCHARFINDNODEINP PUTBACKTH_ DEà"BDGILMNQRSVXZ1/ M<0123456789FABCDEFGHIJKLMNOPQRSTUVWXYZ`$?b ,.()@/\+-*& !=:;̠&!&*,)'-"$# +8tMuTOA wU s ؊F]ܜ  U&G]%(-36 U^&GFF^&GFF^ tu&GFFP^&w^&w&wz^&G FF^&O& ^&G F^S^SSFs:vFP-P^&w^&w&w +P^S]B%{ Ą Ĉ ğĹ ɆjU ^&_^F&GFFPDP^& uSP^&G tuRPHP^&w PP^&wXP^&_S^&wP^&G F^S^SSFs vFP]O #(< t< t< uscFu+JtGP#P" u+J t./~>.umFu+J;u< u+Jt4bu+Jt.]W "'.1TWlząċĒėĢĥیޝ t SEMANTICSTACKPLM86 V2.307/20/84 01:44:2ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHUH-TD[PPvFP]$\6> ā Ċ Ď Ğ ħ ī İĸdž ʆ ͌҆Ն ،݆ ;U 6PPP>u%~u 6PPP r &8u8Ft ~u   &?uSB&?uS&?uS&?uSU&?u"F tF&Z&WY &?u rU:]\ !$(5<CHMPS^ty~čĜīĺНt  &PU졨+F؍] arUGPPRPk;wȴ؊&uܠ&]3( %)/ ; AHMU'UPPP]ô  UPPRP] Ut*PDH SX[[ RESETPARSEPARSE[lGETTOKEN RESETSCANPUTERRORINITIALIZESEMSTK SETJOBNUM SETOBJECTSTACKADDSTACKSUB STACKMULT PUSHCONST PUSHNUMVAR PUSHUNDEFINEDPUSHNULLPUSHKEYASSIGNBTDISPLAYBREAKPOINTINFO LISTBTREGS ASSIGNREG DISPLAYREG LISTNDPREGS ASSIGNNDPREG DISPLAYNDPREG LISTVARIABLESVIEWINSPECTRMXOBJECTPUSHBREAKPTVARNUMERICVARIABLESETUPBREAKPTMODIFY REPORTBREAKPTPUSHNAMEDEFINENUMERICVAR CHECKDEFTYPEEXECBREAKPOINTEXCHBREAKPOINT REMOVEVAR/20/84 01:45:2ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH8HOTD[[ROOTPTRUMAXMINFINDNODE(ENTER%DELETEINITIALIZESYMTAB LISTVARIABLES0LPUTCHARPUTHEXPUTERROR PRINTBREAKPTRQCREATESEGMENTRQDELETESEGMENT DEàWUF;FwF]UF;FrF](U "HI~u+J* &G uHrIs$&u+J,R6*f-#E$7 %.</A0 ,1N@R3@2@+^ @R g4@R@3}+w @k  @@56Š^    "$&(*,.0246 8!:"<#>$@%B&D'F(H)J*L+N,P-R.T/V0X12/J  @(%&(.#$,"#$%&(,. U98]K Π U]Gx!U6>:PMMM]Y ,/48?C$U.] JN7UN^N&t QN>Ns PN^&w P]  %.2>DTUDF&GDFD.9>u.9t&(uPy DSD] # $+AFJtDPARSEPLM86 V2.307/20/84 01:46:1ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH=̘TD ]bnzĀĆؠ3UPPsP&wS9]ðP]ù +6UQQPFPsPP^S P]Í ,U]ɜ  UtÈ6PPP>tC t2&GH&w8QPP>t P]øP6RPN]ÞR  "( +49<@FPX^biotw{Ďt SYMBOLTABLE*PLM86 V2.307REMOVEBREAKPTVAR RESUMETASKҌRESUMEBT WAITFORWAKEUPDISPLAYPREVIOUS SETVIEWSIZEINDIRECT DISPLAYDOWN DISPLAYUPASSIGNIMMEDIATECOPY SETSOURCEBASE DISPLAYRANGEDISPLAYLOCATIONJ DEàZ  "/0   )#'@ 6 %@;p,T)KT B'pT B_-p_V%d(i&q@ * .#@1@% %#@%#%z z#!@ @&'" (u .# #@$ %% .# #@%p(( )1@*+1$i1i2p-2+-. 6$~^t+J(YuHz$6(&^&:vI$ "֠Hs$ ^&Z&WH]][ *.?GQUlqw{ăĉĢĬĴĸǝΝѝ՝ڝ%U^S4PsK'0 P8P2>8t PK^4&G0&GZ&W64&\Z&TF&GF&DJJ< w^&0&JuKK] 9 &+.2;?FO]|ĀĒęğģ=MU^S<PJs)<&G&GZ&W .Z<.<:wH.0.+..&22:3s.:9u]2ް]à9:<t@]#: #'-48>AEPT^gkXU>9u9]Ï  n$U;$.Z]5 +U8<sA؉8]ðP]Ϝ #]U8Ȣ8؋]n  &U^.Z .44]c 5*Ues:s 9VFsU]w[UĭƆrxŁΠU F&O"NFQ~tlFre~u & tFt&"G :FuFFF&GFP&G";Ft &G ;FtF뎋F uPFP~tFFv~t|Fru~u & tFt&"G :FuvF&FFF&GFP&G";Ft &G ;FtF~F t$HFFF9Fr&0Fu6FPP] ! % < N d os w L PUTSTRINGPARSE ROOTJOBTOKENDUMMYROOTJOBTOKENINITMEMINITTHIOINITBREAKPOINTS SIGNONBANNERz DEà|U@PPPP&G$&G&G&G"&G @ PRPP]؜O %*.5 LP SV Yfilqt tDBEGINɈASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(u(3 DEBUGGERINITߚYY RQDBUGINITWyCoUvv&G$FFF tm>tfNr_PFFP&GFv&G$FvF;Ft &G ;FtF]G  .FJ N [_ c g tx | Ĉ ětDV2PLM86 V2.307/20/84 01:33:0ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHTD[[IPUTCOMPOSITESINEXTENSIONPUTOBJECTQUEUESPUTTASKOBJECTQUEUES LISTCOUNTPUTNLPUTERRORJDPTRRCHTYPEDUMMYROOTJOBTOKENPUTOBJECTQUEUESPUTTASKOBJECTQUEUES@ DEàUF^&NFQ^FF tgNr`PvsFFFF1^&FP^F^&;FtF1^&@;FtF뒋F uPFP~tFFv^FF tNrxPvsvF&FFFF1^&FP^F^&;Ft"F1^&@;FuF;FuFzF t$HFFF;Fw&0Fu6FPP]86^.Z;$::.d6E66^HPF룰P\Fs9끰PǂM"+-/13579;=?ACFIP`ĆHtDBINITPLM86 V2.307/20/84 01:21:3ݖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHxHT D[[ DEBUGGERINITՌINITIALIZESEMSTKINITIALIZESYMTABRQGETTASKTOKENSRQCREATESEGMENT RESETSCAN HANDLEEVENTPUTN{ Ĉ ĥĵΆҖ ֒ $ /3 7 ; H x~Ň8UF;t PP>uv.x /G$PP>GPPPEGPPP2GPPJG"PP9@;G PPG PPGPPPPd>tvPP][~ +/ 3 7 >@BDFHJLNPRTX r ą Ę ĩ Ė Ֆ  Spyright 1980, 1981, 1982 Intel Corporationprogram_version_number=V4.1program_name=iRMX 86 Dynamic DebuggerpDU݊tDV1PLM86 V2.307/20/84 01:31:5ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHHT6͘D[[E PUTOBJECTLISTPUTTASKOBJECTLISTVIEWLIST8 TRAVERSETREESRQDDISABLEDELETIONRQDENABLEDELETIONRQDCREATESEGMENTRQDDELETESEGMENTGETDESCRPOINTERPUTTOKENTOKENPAIR VERIFYOBJECTPUTERRORJDPTRTDPTR SEA MDPTRODPTR ENTRYCOUNT OBJECTTOKENRQDDISABLEDELETIONRQDENABLEDELETIONRQDCREATESEGMENTRQDDELETESEGMENTPUTTOKENTOKENPAIR PUTTOKENPAIR PUTOBJECTLIST PUTSTRING, DEà = ڠXL ML  WL AUPvPFH   GPPP]  "(78ZMUFHGPP&OFuPFP~tF&O tKIN&O N&O&F;Ft&GFHF@F\ lqxĊ ēĖİķ–ɝ՝띄   "% ( Mt INSPECT1'PLM86 V2.307/20/84 01:36:1ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH8H TD[[INSPECTRMXOBJECT|PUTERROR POPSEMSTACKSEMANTICSTACKPTRINSPECTEXCHANGEINSPECTSEGMENT INSPECTJOB INSPECTTASKINSPECTEXTENSIONINSPECTCOMPOSITE DEà TJEGXCUFFF~u*P&?u&G&?ut&G ;t6]  '*5@EI[^c gmrvy|ąďĖę ĩĬİķĻĿƖіٝߖ흦U t &u&G uMsBHУ&u&tG(&u&tG(&u&t&tG tX6P>t? P6PS6P>t6PP&GH>t UTERRORMDPTREDPTRSEMDPTRRDPTRODPTRGETDESCRPOINTER LISTCOUNT PUTSTRSTR PUTSTRHEXPUTNLPUTNAMES PUTTOKENPAIRPUTREPORTHEADERGETVERIFIEDTYPE DEàCONTAINING JOBg INVALID= FIFO PRIORITY %MAILBOX"-MAILBOX TOKENs;# TASKS WAITINGK# OBJECTS WAITING~]FIRST WAITING5 k Jq NONEΠ } ՠQUEUE DISCIPLINE;CACHE SIZE SEMAPHORE SEMAPHORE TOKENZCURRENT VALUEѠMAXIMUM VAROOTJOBTOKEN OBJECTTOKENPUTNLSEMANTICSTACKPTRVIEWLIST TRAVERSETREEPUTCOMPOSITESINEXTENSION@ DEàJSRETMWXCGA  JSRETCGXA L = y0UP&?u&GHP&G u+Jt &t>Xu>t&ul6  u+Jt>t &u4>t5&G<t)>Wu<r<w>Mu&tP]àSG &GFF&Gȴ;Fr:F@Fv&&F@&O1VFuFF9Fr&0Fu6FPP]r !%9F I\iosĆĕĠĭijĹĽӖ/5 >F NfU t &u&G usH&uV&tO6P>t6P6P6 >t6PP&GH>t &u&G;&GFиP&?u&GFF u+JVuPG^.v)vvvvvv]I"2HL\~ĊČĎĐĒĔĖdž t INSPECT2&PLM86 V2.307/20/84 01:36:4֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHJH T D[[i CONTAININGJOBINVALIDINSPECTEXCHANGEINSPECTMAILBOXINSPECTSEMAPHOREK INSPECTREGIONL PUTSTRINGP&u#&G;t&G ;u>u]Ú #&1>BHPTXlptzĎĒĖĜķĻĿĝȝΝѝֆ ڝ靄  "%(,37;AHS[aiov>tDV3PLM86 V2.307/20/84 01:34:1ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHEŘHTD[[ VIEW PUTSTRINGPUTCHARPUTERROR POPSEMSTACK SEARCHTYPE ENTRYCOUNTDUMMY LUEȠ# TASKS WAITINGwQUEUE DISCIPLINE٠FIRST WAITING    NONE1 REGIONv REGION TOKENȠ-# TASKS WAITING!=QUEUE DISCIPLINENTASK IN REGION a NONEݠ m vFIRST WAITING v NONEUUvv<uv0*v<uvv<uvrP]S '9K@iUv&GFFFF&GF&G tFGP(PF[&G t(PEGMENT OFFSET ???? &STACK SEGMENT SIZE*9STACK SEGMENT LEFT ???? +*_CODE SEGMENT BASE ???? P*DATA SEGMENT BASE ???? +*INSTRUCTION POINTER ???? *TASK STATESTATIC PRIORITYDYNAMIC PRIORITYSUSPENSION DEPTHSLEEP UNITS REQUESTED7$EXCEPTION MODE23EXCEPTION MODE#BEXCEPTION HANDLER8 TNDP TASKǠ]YESaNOXdU.vvPr&(PF&u&uFNPPvPvPvPvPvP^SPPF tP Pvv] G NX^hmv{~ ĉ ė Ģ İ Ļņ Ȇ ˌІӌ؆茄 DLU v&GFFF&GF t&GFGP(PF& u&uFNP PvPv-Pv=P^SNPFŰ 9S+JV&GF&GF&G!F&GF&G6F&G2F֌FظDPIPvPvFr^TPvgPv|PFHPPvPvPvPvJPP&PFHP9P_PPPFsF ~vFP^.ĿWPvPvPvPvFڃw $QP 3PPBPP^STPP&GAs]aPvv]7  BGERIFYOBJECTTDPTRSEGDPTRGETDESCRPOINTER CONTAININGJOBINVALIDBREAKPOINTLISTP[ DEà READYƠ  ASLEEPz'SUSPENDED1ASLEEP/SUSP =BROKENV '1=t dz DTASKߠITASK TOKEN3TSTACK SEGMENT BASEgSTACK SEGMENT OFFSETO|STACK SEGMENT SIZEȠSTACK SEGMENT LEFTŠCODE SEGMENT BASEDATA SEGMENT BASE INSTRUCTION POINTERޠ*STACK SEGMENT BASE ???? *STACK S&GFGPPF&t_ ^F&F&GF&u&uFN%P-PvPv;PvKPv]PkPF tPqP}PP^SPFPvv]e C LX\`kw ĀĚħıķƌόԆ׌߆ ⌄   !&+.36@ C FQ T ] KUv&GF&GF&GFFF&G tFGPG8F&G F^FF t &G;Fu %FFF t Nr&G;FuF^&ѰFӈFҊFs1^&G FF^&GF&F&GF&GF&G4&#u+&G&F&O$NFN^&GF&GF&G_&#uF&G#<r<v&G#<r3<w/&G&F&OADLOWZ]ehps~ʼnŎŖŭź Ōʌφ҆ۆ t INSPECT4$PLM86 V2.307/20/84 01:39:0ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[=INSPECTEXTENSIONINSPECTCOMPOSITE9INSPECTSEGMENTL PUTSTRINGPUTHEXPUTERROCURRENT # CHILDREN JOBSDELETION PENDINGNOYESEXCEPTION MODEEXCEPTION MODEwEXCEPTION HANDLERMAXIMUM PRIORITY !(-----OBJECT DIRECTORY----- EMAXIMUM SIZERVALID ENTRIESP `NAMEԠeTOKEN o EuU(vvPr P&G,F&w*FP&GF&GFG"PPF&GFG$PPF&GF&G'F&GFF&G&FPPvPPPrP\&GF&GF&GFP PvPvPv$Pvvv]ڜK  %+CHKSV^adlowz 9UvvPr P&GF&GF&GFPFPFF~u%FFHN;r&@ ^&Fu޸5P?PvPvOPv_PvmP~u2FFHN;r^& tPFuvFPvv]j    %, Lo  Ũ Ȓ˝ϝ՝۝ߝ⌅x*cEP&7RP&wF~w`PPePFuF&?uF&HN;s&xu~FF&ʶ~;rNj&pFuԋF&F~w PFuFًF&p ~t oPFFtK~t] \   # 1:=BJ RdėÝن  tDINSUPPLM86 V2.307/20/84 01:34:5ז,STAC˘D[[ INSPECTJOBu댿PUTPTR PUTSTRINGPUTCHARPUTHEXPUTERROR LISTCOUNT PUTSTRLEN PUTSTRSTR PUTSTRHEXPUTNLGETDESCRPOINTERPUTNAMESPUTREPORTHEADERGETPOOLATTRIBUTES VERIFYOBJECTJDPTRINVALIDQ DEàJOB|JOB TOKENѠPARENT JOB} ROOTPOOL MAXIMUM+POOL MINIMUM8CURRENT ALLOCATEDEJCURRENT UNALLOCATED^CURRENT # OBJECTS[pMAXIMUM # OBJECTSNCURRENT # TASKSMAXIMUM # TASKSR PUTSTRLEN PUTSTRHEXPUTNLPUTNAMESPUTREPORTHEADERPUTTOKENTOKENPAIR VERIFYOBJECTCDPTRSEGDPTR ENTRYCOUNTXDPTRGETDESCRPOINTERRQDCREATESEGMENTRQDDELETESEGMENT CONTAININGJOB DEàEXTENSION EXTENSION TOKENTYPE CODE$DELETION MAILBOX5COMPOSITEi?COMPOSITE TOKENOEXTENSION TOKEN_# TOKEN SLOTSumTOKEN(S) ] ySEGMENTǠSEGMENT TOKENSEGMENT BASEqSEGMENT LENGTH0 sUvv~u PvPv+Pv8PvJPv^PvpPvPvPvPvPP~uPFw QP PPPP^SPvvv~OtG<GP(P %,?C]dw~ĜĨ İ ĻĆ͌҆چ݆ 댄     % ( +3 6> A DL OXafkn y ńʼnőăċĖĤįĽ†ǖ  LUvvPr P&G6&L&G&G yPPvP6PvPP HPPv6]w   ") 06:BEIPT [^cfnqwz}Āċėğī&t INSPECT5#PLM86 V2.307/20/84 01:39:5Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH~HT8 KMEMORYCODEDATACONSTDGROUPCGROUPnhHHT$ߘD[[ LISTCOUNTz PUTSTRLEN PUTSTRSTR* PUTSTRHEXIPUTNLjPUTREPORTHEADERu PUTTOKENPAIRPUTTOKENTOKENPAIRGETPOOLATTRIBUTESPUTNAMES GETVERIFIEDTYPEL VERIFYOBJECTVERIFYEXCHANGES PUTSTRINGPUTCHARPUTHEX ROOTJOBTOKEN LINECOUNT ENTRYCOUNTGETDESCRPOINTER3 DEà  I( ----- iRMX 86 v6 REPORT ----- #JTMSRGXCPUTSTRINGPUTCHARPUTHEXPUTERRORMIN POPSEMSTACK PUTHEXBYTE HANDLEEVENTPUTNLSEMANTICSTACKPTRTOKEN CONTROLDHIT DEà ABPW)ABPW% ABPW!ABPW,U  B]A  $<UP]6F$HUP&G] g%hUv:PvP] sU u+Jtcu+J.^&< r<}v.+^&7FvFu.N˷. 'MV^&G,w^&G8F&G&FF^&?tZF*T^&GH^&G?^&G6^&GFF^&ONF^&G^&G^&GF~uF vMPvv]#5)79;=?ACEGӌۆތ3U>uPPv P] %)ŠU FHFF^&Ov& ^&O&L^&O&L^&O&LF^&NFF^&G ;Fr^&GF&FFuߋF^ !%)1=Jo6U> uY u+Jt=u+J.v~~     ]ðP]û8 '>@BDFJQX\ _gU&6PPX]8  #U 6PP>]~ )&U +ȉ6QQ]  U>u]]àUQPF)F;rB .GqQbqb&G&&G& 뵠 #Uv:Ft@]Ơ8UvPrvPr vPs]tMEMORYCOMMANDS7PLM86 V2.307/20/84 01:40:5ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH3HT&ݘD[[INITMEM SETJOBNUM< SETOBJECTH PUTADDRESSh PUTMEMLOC DISPLAYMEMDISPLAYLOCATION DISPLAYRANGE SETVIEWSIZE6INDIRECT DISPLAYUP DISPLAYDOWNDISPLAYPREVIOUSASSIGNIMMEDIATE SETSOURCEBASECOPY"PUTPTR  FROOT /{MJ/ P Z W 2 _ wdNAME(S) ǠoNONE FOUNDszU ^&FFFF tFNr?FFHFFF^&NINF^&;Ft ^&;FtF볋F]9EU^S~Nu+JBF;r Pu] !&-59ɠ#*U^SP^S P]Š%IU^SPv P]} jU P]L#uUP^S6P], EUFHF$^&7^&S ^&7 P]*) 79;=?bozUUQQFFNQPBFSTF+F 1FN~tZrSF% ;s PRPr vvrFS FN렡+F];.> H V_ l o  ĉčĕĢĨ ۠*UP6&OQQ)]8 lRUPP&G6&L;r 6QP]ðP]C* &G v&L+^&O]VUFH  < G &?t &H;rl&@ ;FuP&ʶ>;rNj&puҡ@uWP_Pu]>O "&/3;JY^gtćČĐĘĠĩĮF UQQdPvv6F9Ft vP$F~uoP$] 27pLU F tWtRv^F&w^F&G ;Fu0^&GF$FFF<t<tu F<r<v]2 +ȉ6+Q6t]hT  !(.79;=?AEMV^djou{ăĈ=kU FFFFFFF FF tDJQX\dhkUPtP]d tDDATAPLM86 V2.307/20/84 01:22:1ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHsH_TD[[gEXCHANGEBREAKLISTPEXECUTIONBREAKLISTPBREAKPOINTLISTPOLDINSTRUCTIONP  NUCLEUSNDLEEVENT RQTHINPUTNORM_OUTPUT_MAILBOXPUTNL RQTHNORMIN RQTHPRIIN RQTHPRIOUT= DEàUwLJuPPWWW WPQPaSQ6RQWPPPPPPPP]ëC " %)EN Tchkqvy} ĆĎNUQPPFPP PP&&G&G&GPP&&G&GPP]'@ &+.48RWZHKPT\fltĂąĉĒĝĠĤĩۊtDSIOGPLM86 V2.307/20/84 01:42:5ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHZHTD[[[HEXCHARS HEXCONVERT PUTSTRING0 PUTHEXDIGITUPUTHEXl PUTHEXBYTEPUTPTR] PUTCHARK DEà0123456789ABCDEF$UFu+J] )0U^6&t P]]ߠUU^.]!lUhH\GETDESCRPOINTER՜DUF-+]tNUMERICVARIABLESPLM86 V2.307/20/84 01:47:3Ֆ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHDHT D[[7DEFINENUMERICVARNUMERICVARIABLE= REMOVEVARh\ PUTSTRINGPUTCHARPUTHEXPUTERROR POPSEMSTACKENTERDELETESEMANTICSTACKPTRTOKENœ DEàAUP&GP&_S(P6<uP]X 358ODPTRB LINECOUNT] ENTRYCOUNT^DUMMYROOTJOBTOKENF OBJECTTOKENHXDPTRJ2 SIGNOFFBANNER SIGNONBANNER% INTVECTPTR DEà%Exit iRMX 86 Dynamic Debugger -R%iRMX 86 Dynamic Debugger, V4.1 Copyright1980, 1981, 1982 Intel Corporation WtDBRK1 PLM86 V2.307/20/84 01:2P]؜5 / 9 < AScu}tDBRK2PLM86 V2.307/20/84 01:23:5ٖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH'H TDD[[YINITBREAKPOINTSNOTIFYDEBUGGEROFBRKPTNUCBREAK EXECBREAK EXCEPTHANDLER\FINDEXECBREAKPOINTRQDDISABLEDELETIONRQDENABLEDELETIONRQDGETTASKTOKENSRQDCREATESEGMENTRQDDELETESEGMENTRQDSENDMESSAGEGETDESCRPOINTEREXCHANGEBREAKLISTPEXECUTIONBREAKLISTPF&G FFF ;Fu F;FuF^&뺊Fs^Ë]q~UPFPFF~t ^&G &G &GP&Gu+JV&?uSFtK.^&G ^&G ^&G^&GP&G&?u~u &?uM&GFP&GF^&?tPvS tvFP F^&G Z&W&&OPF&_SFPs ^S&_SPPuFFr&_SFPFF^&GZ&W&GZ&WFF&GZ&W F&G PFP^&G~YuiP^F&u7vFP~uG6vPFP~t.vFP!^&6vPFP~t vFP] )]ođĿΆ߆/<UF<s"<v~r ~t F*V؋uFFVF F^*ٷ.  LL^&G<^&G3PFPFHFF~u ^&G F ^&FFFFFr>F t5FF&O ;Nu^.&OtF^&FF뻊Fu~u &?u\FrFrFF&G^&G HFFv&D,F^&w r FPF&_SFPs ^S&_SPPuFFr&_SFPFF^&GZ&W&\_&|&G NF$ &E&Y&Oh8GNf}āăąćĉ†Ɩ͌Ԗ1 EM[g m~ŔãFs FFsF~u.&&PF FPFsvFP2:3ܖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH*ܘH T.՘D[[=FINDEXECBREAKPOINTEXECBREAKPOINT~EXCHBREAKPOINTUPUTERROR POPSEMSTACKFINDNODEENTERDELETERQDCREATESEGMENTRQDDELETESEGMENTEXCHANGEBREAKLISTPEXECUTIONBREAKLISTPEXCHANGEBREAKCOUNTNUCENTRYREMOVEBREAKPOINTVERIFYEXCHANGE INTVECTPTRSEMANTICSTACKPTR DEàCDJT2CDJT. CDJTSR CDJTSR}nUFFFFFr9F Ft1FFBREAKPOINTLISTPOLDINSTRUCTIONPBREAKPOINTTASKPEXCHANGEBREAKCOUNT EXECENTRY EXCEPTENTRYSTEPPASTBREAKPT NUCLEUSENTRY INTVECTPTRRQWAKE ISBC861ENTRY DEà QUF~w)FFwF؋vƀFuFuѸУ.&ć%=t.&G .&G &O&&]Y[-@ D G K N R U Y ^fjmzāąĈčĘOU FPFPF~tF^&F F&\_&|&G ^&^&?t!vFP&_Sv8<C[rtvxzīIJĸȖՖ ?GUa gxŎ}MnF8^&Z&W"vFPvFPP]   ,9C UPFPFF~tE^&G &G &GPFFF&Gu+JV&?udFt\.6BLV`jp^&G (^&G ^&G^&G FFP&G~&?sPFP^SFP] (=ikmoqsuwÖ UFF^&w&GHPS^F ðu@Fsrv&LPV^SPFF^&w&wS t/^&G %&G&G&G.&G&OF4ЉFVNFNtW^SRPPF]_/  $W l qď Ė ęĞĻ .UQQFFVWPRQ6w ]ʊtDBRK4PLM86 V2.307/20/84 01:24:5ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnn r B{UPFPFF^&G^&G Z&Wv&D&GS^&_^&D F&DZ&T&Z&T6]2\ k o ˠUF^^;u;u&]F  & tӊrˌ9~u9Fu& &Z&W  &벩: $(26>BFKUo{ĀăćďēU FFF&ON&_.FPv^&_.ciq^&AF<^&_.F^&GUSPENDTASKk DEà SXZENNo J T۠ S٠ Rנ D CBT=lBL=p UQQ^&GFF^S=P^& u &_ S ^&w ^&Gs P^& u!&Gt P^&GtP^&G sP^&G sP]N;1=KPUin{ĎġSUP&_S8]  ͠BUQ t(&wPr6FPУ]!  (0 4 s^S^SF]Ó %'0U^&_^F& u1&G FF^&O& S^SS^S^&G HFFv&D,F^&Ot9Nu^&GtFFF~w/FFwF؋vtFFuFuˊFs.&Z&vFP]OG4>BFMW[_ēĞĶ [ SU]+ FtDBRK8PLM86 V2.307/20/84 01:27:1ٖ,STACKMEMORYCODEDA <t<u^&wP^&G6PvP]@7  " 0 4 MR ^bfin typvUP&GF^F t&G;Fu+FF^&G t ;Ft&^&G;FuSP]þ 2 8 l #RU uP]S]̜  qUv^F&w8^F&G"FFP^FFFr\F9Ft.P^F uF^&Z&W^&GFP^FF t9FuF띋]%# +H^ hHHHTD[[ PRINTBREAKPT  REPORTBREAKPTGETBREAKPOINTTASKP DISPLAYBTY DISPLAYBL{DISPLAYBREAKPOINTINFO RESUMETASKRESUMEBTRADDTASKSINJOBTOBLq ADDTASKTOBL REMOVEOBJECTGETITEMPUTPTR PUTSTRINGPUTCHARPUTHEX POPSEMSTACKPUTERRORPUTNL PUTTOKENPAIR VERIFYOBJECTBREAKPOINTLISTPBREAKPOINTTASKPRQDENABLEDELETION RQDRESUMETASKRQDCREATESEGMENTRQDDELETESEGMENTGETDESCRPOINTERSEMANTICSTACKPTRROOTPTR S^&7^F&GFF]ל/%')+-/BDFHhjlnxtDBRK6PLM86 V2.307/20/84 01:26:3ؖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH[H T&ݘD[[AREMOVEBREAKPTVARREMOVEBREAKPOINT0SETUPBREAKPTMODIFYSFINDNODEDELETEEXCHANGEBREAKLISTPEXECUTIONBREAKLISTPEXCHANGEBREAKCOUNT REMOVEOBJECT NUCLEUSENTRY INTVECTPTRRQDDELETESEGMENTTOKENPUSHNAMEn DEà4UPFP8 $5(U^&w(P^&_ .)P] "%+9&YUP t S]   Ag{UFFFPF Ft7~t,P^St^&FFF@F1 u]J /X]@UQQP&?u8_FF&GFFF tD&(tP^&u &Lu6&TuP]î P[k}GaU;vu;^uУS^S^&GTACONSTDGROUPCGROUPnhH7ИH&T6͘D[[)SUSPEND SUSPENDTASKASSIGNBTx RQCREATETASK RQDELETETASKRQSLEEPRQDSUSPENDTASKRQDCREATESEGMENTPUTNL VERIFYOBJECT PUTSTRINGPUTHEX POPSEMSTACKPUTERRORGETDESCRPOINTER REMOVEOBJECTGETBREAKPOINTTASKPBREAKPOINTLISTPBREAKPOINTTASKPSEMANTICSTACKPTR DEà:task not suspendable, will be broken when suspendable7 6task L*< suspended as requested by BT commandxzb6;AEZbrw|YBUQ t>FF w7P2 P PFtt t uFuP]Ü"(B O_UQFF.t$~t+JtFˊFذ.8uFF]O KFUQ u)PFGP}Fu:,&F&GvFY66.6P]+ #*PTX[`jHYQPQRSVW.U.t.6P .6P]_^[ZYX!$) 038 Ϡ7U&G ZY[XX]_^ZY[PXP]5k4DPSQRVWUP^FF]_^ZY[XT]'tPSQRVWUP]_^ZY[X ])UVP؋fN6&X^] ]tDINTF0͈ASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHcH NUCLEUSENTRYYYRQDDELETESEGMENT0RQDCREATESEGMENT* RQDRESUMETASK$RQDSUSPENDTASKRQDRECEIVEMESSAGERQDSENDMESSAGERQDGE@Jfry~.EUQQFFF8Fv~u؋FF~u]Z%ڠM*UQQF.FFFwv؋ &NFu܋] 26Ϡ[sUQQPks<=s4F.F &NNN&P]t#.AOkUQQPsLwDF.F &&HNN VV&PP]#.4I_4D1UPs)&PF.X &P]DEDGDTHINPUTPRIORITY DTHOUTPUTPRIORITYRUBMSGH OUTSTANDARD WAKEMSGPNTR MESSAGEPTRCOUNTMAXCOUNTREQUESTOUTSTANDINGKq6SENDECHO@ SENDRESPONSESTDINP RQTHINPUTRQCATALOGOBJECT RQCREATETASKRQGETTASKTOKENS RQSENDMESSAGERQRECEIVEMESSAGERQCREATEMAILBOXRQCREATESEGMENTRQDELETESEGMENT RQGETSIZERQSETINTERRUPTRQEXITINTERRUPTRQSIGNALINTERRUPTRQWAITINTERRUPTINPUT_INTERRUPT_LEVELOUTPUT_INTERRUPT_LEVELUSART_IN USART_STATUSRQBLANKNORM_INPUT_MAIUQpsjP?UPP1ZPP#P_PP cPPFF< w PFuP]- %. 7<EJS e s tDBENTRASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(sHROLDINSTRUCTIONP ISBC861ENTRY NUCLEUSENTRY EXCEPTHANDLERNUCBREAK EXECBREAKYY>STEPPASTBREAKPT EXCEPTENTRYtNUCENTRYD EXECENTRY DEFqHPSQRVWUP؋Pt X]_^tP6PPK]$(.ɠnU6P2P6P06P6 6P6 P4P6P02 tQPP6P60PB "%*.5:?BFSX^afU8:.6PP6:P.6I.6< PPPPPP PP>P6PPPPPP 6PPPPP"6PPPPP$6PPPRUPTOUTPUT_INTERRUPT_LEVEL USART_OUT USART_STATUSNORM_OUTPUT_MAILBOX5 DEàY+U%s&s .F.]q )YQPQRSVW.U.t`$s P$+6 &x u P$6 &p| &G; w.6P .6P]_^[ZYX <-48IPT_ckr uz ā Ą 5nU6PPP6P6P6PPP tQPPP6P뙤B  ūűŴŻϝӝםܝu; u=6PBPP@t 666 P@BK&G6P<&O;r&G &G&?t&G&tKsNr6MN'h (,038;>ADHMSZ^af imĄĎĞīIJĺȊt INT8612PLM86 V2.307/20/84 01:50:0ޖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHGØHTD[[%* /5:=DILSX[afinqv{ĂčēĥĭıķľÝȆ˝Νҝ؝ߝ䝄  %BELT` ch ny}ņŌŗŚ$t CNTRLCHARMODPLM86 V2.307/20/84 01:50:4ږ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH[HyTD[[ AUX f) CHANNELINPUTYTESTFORCONTROLCHAR9 RQSUSPENDTASK RQRESUMETASK RQSENDMESSAGE WAKEMSGPNTRSTDTASK_včĤĻ҆چ(,1ъt RQOUTPUTڈPLM86 V2.307/20/84 01:48:1֖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH=H'T&ݘD[[4 RQTHNORMOUT RQTHPRIOUTSTDTASK NOPRT%( INTHANDLEROUT)STDOUTRQTHDO(RQCATALOGOBJECT RQCREATETASKRQGETTASKTOKENS RQGETPRIORITY RQSENDMESSAGERQRECEIVEMESSAGERQCREATEMAILBOXRQDELETESEGMENTRQSETINTERRUPTRQEXITINTERRUPTRQSIGNALINTERRUPTRQWAITINTERPP8:6P6:RPPPP8: @PP6:RPPPPDH.IJFG K.6P.."MPNrKs6PPPu?  #( -5:BINQX]`glouz}ĂąĊĖĞĥĭıĹŝʆ͝ѝٝކ坄 !$*nu . t u.5.N t u.7 t u.. t u]ӜR$)=BHRQWAKENOPRTCOUNTMAXCOUNTRQRUBOUT RQTHPRIINRESPONSEEXCHANGEREQUESTOUTSTANDINGSTDOUTSUSPENDED MESSAGEPTRRUBMSG RQABORTAP SENDRESPONSESENDECHO- DEà^o NP# (  U 6U;sF&@FPP] ),EU] NYUFu+Ju.XX]]a>u)u.>u P6@PP>uGJOBINVALIDINSPECTEXCHANGEINSPECTMAILBOXINSPECTSEMAPHORE INSPECTREGION INSPECTTASKINSPECTEXTENSIONINSPECTCOMPOSITEINSPECTSEGMENT INSPECTJOB LISTCOUNT PUTSTRLEN PUTSTRSTR PUTSTRHEXPUTNLPUTREPORTHEADER PUTTOKENPAIRPUTTOKENTOKENPAIRGETPOOLATTRIBUTESPUTNAMESGETVERIFIEDTYPE VERIFYOBJECTVERIFYEXCHANGEINITMEM SETJOBNUM SETOBJECT PUTADDRESS PUTMEMLOC DISPLAYMEMDISPLAYLOCATION DISPLAYRANGE SETVIEWSIZEINDIRECT DISPLAYUP DISPLAYDOWNDISPLAYPREVIOUSASSIGNIMMEDIATE SETSOURCEBASECOPYHEXCHARS HEX>4r26Ps6P]jp !/13579<DPUY^ckotyāĄčēěĞħĮIJ>t RQABORTUPLM86 V2.307/20/84 01:50:3ۖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[ RQABORTAP DEà U]jtV VERSION4P1 ERRORHANDLERDEVENTSCANNER SEMANTICSTACK SYMBOLTABLEDPARSEDBINITDBEGINDV1DV2DV3INSPECTFBANNER SIGNONBANNER INTVECTPTRFINDEXECBREAKPOINTEXECBREAKPOINTEXCHBREAKPOINTINITBREAKPOINTSNOTIFYDEBUGGEROFBRKPTNUCBREAK EXECBREAK EXCEPTHANDLER PRINTBREAKPT REPORTBREAKPTGETBREAKPOINTTASKP DISPLAYBT DISPLAYBLDISPLAYBREAKPOINTINFO RESUMETASKRESUMEBTADDTASKSINJOBTOBL ADDTASKTOBL REMOVEOBJECTGETITEMREMOVEBREAKPTVARREMOVEBREAKPOINTSETUPBREAKPTMODIFYSUSPEND SUSPENDTASKASSIGNBT LISTBTREGSFINDREGISTERINDEX DISPLAYREG ASSIGNREG GETREGVALUE DISPLAYNDPREG STUFFNDPCW ASSIGNNDPREG LISTNDPREGSIONEVENTTASKREGIONBPEVENT HANDLEEVENTTOKEN RESETSCANGETTOKEN KEYPOINTERSEMANTICSTACKPTRCURRENTSEMANTICSTACKNODE NAMESPACE PUSHSEMSTACK POPSEMSTACKPUSHKEYPUSHNAMEPUSHNULL PUSHCONST PUSHNUMVARPUSHBREAKPTVARINITIALIZESEMSTK PUSHUNDEFINEDROOTPTRMAXMINFINDNODEENTERDELETEINITIALIZESYMTAB LISTVARIABLES RESETPARSEPARSE DEBUGGERINIT RQDBUGINIT PUTOBJECTLISTPUTTASKOBJECTLISTVIEWLIST TRAVERSETREEPUTCOMPOSITESINEXTENSIONPUTOBJECTQUEUESPUTTASKOBJECTQUEUESVIEWINSPECTRMXOBJECT CONTAININr 2PPs666P=>u&G;s  P@CB P6;s"F&@ FPP PP]-/13579;=AGNT[ akoz~Ą čĘěğĤ Ĭ İĴ ķ ǖ͝ЖԖܖ (37^i}2sj;`D| PUTERROR CHECKDEFTYPE CONTROLDHIT WAITFORWAKEUPHANDLEBREAKPOINTDESCRIPTOREXECUTIONEVENT EXCHANGEEVENTEXCEPTSTEPPASTBREAKPT EXCEPTENTRYNUCENTRY EXECENTRYRQDDELETESEGMENTRQDCREATESEGMENT RQDRESUMETASKRQDSUSPENDTASKRQDRECEIVEMESSAGERQDSENDMESSAGERQDGETTASKTOKENSRQDENABLEDELETIONRQDDISABLEDELETION RQTHNORMIN RQTHPRIINOUTPUTONRESPONSEEXCHANGESTDOUTSUSPENDEDDTHINPUTPRIORITYDTHOUTPUTPRIORITYRUBMSG OUTSTANDARD WAKEMSGPNTR MESSAGEPTRCOUNTMAXCOUNTREQUESTOUTSTANDINGSENDECHO SENDRESPONSESTDINP RQTHINPUTINTIAL RQTHNORMOUT RQTHPRIOUTSTDTASKNOPRT INTHANDLEROUTSTDOUTRQTHDOAUX CHANNELINPUTTESTFOR local x y (%match( x y)(%a)%x) %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' hex_it(hex_what) - forces argument to hex, adds leading zero and %' trailing H if necessary. hex_it does not %' clean up (trim) the input parameter. %*define(hex_it(hex_what)) local last_char (%' %define(last_char)(%substr(%hex_what,%len(%hex_what),1))%' %if( %nes(%substr(%hex_what,1,1),%(0)) )then(%(0))fi%' %hex_what%' %if( %nes(%last_char,%(h)) and%' %' '%nes(%last_char,%(H)) )the> ; ; use this value for the code_base_addr in the locate sequence ; ; this module is suitable for positioning any iosp 86 support ; code which resides exactly %eval(%offset - 06000h) bytes away from ; the beginning of the 80130 component ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $nolist ; ; this module is the first to be linked in with the support ; code so the org statement determines where the iosp 86 ; support code will be in relation to the code_base_addr. ; t$genonly $nolist %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' define the utility macros used by system configuration macros %' in this module: %' trim -- cleans up blanks from the input parameter. %' hex_it -- adds a leading 0 and an ending h to the input %' parameter if not already present. %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%' %' trim(a) - returns the input parameter trimmed of leading and %' trailing blanks. %*define(trim(a))CONTROLCHAR RQABORTAPen(%(h))fi%' )%' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(osx(onchip_par,offchip_par,ext_par)) (%' %' %set(onchip_base,%hex_it(%trim(%onchip_par)))%' %set(offchip_base,%hex_it(%trim(%offchip_par)))%' %set(nucleus_base,%eval(%onchip_base - 0600h))%' %set(offset,%eval((%offchip_base - %nucleus_base) * 10h))%' ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; code_base_addr = %substr(%nucleus_base,1,(%len(%nucleus_base) - 1)) ; tOXX046وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KCHANGEPRIORITYNS/ .& DX<tOXX047؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KCLOSE .& DX:tOXX048׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KCLOSENS .& DX8tOXX049ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh\ KENABLELEVEL .& DX8tOXX064وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KENABLELEVELNS> .& DX:tOXX065؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KENTER .& DX<tOXX066׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KENTERNS .& DX>tOXX067ֈASM86.8tOXX053ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KCREATETASK .& DX$.tOXX054ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KCREATETASKNSx .& DX&,tOXX055وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KDELETEOBJECT .& DX(*tOXX056؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(ODE??SEGCGROUPۘh(.\ KAWAKEALLƠ .& DXDtOXX043܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KAWAKEALLNS! .& DXBtOXX044ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KAWAKENS .& DX@tOXX045ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KCHANGEPRIORITYԠ .&OXX060݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KDELETETASKNSy .& DX2 tOXX061܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KDISABLELEVEL .& DX4tOXX062ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KDISABLELEVELNS .& DX6tOXX063ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.(.\ KCREATEOBJECT .& DX6tOXX050ވASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KCREATEOBJECTNS .& DX4tOXX051݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KCREATEREGION .& DX 2tOXX052܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KCREATEREGIONNS .& DX"06 V2.0wCODECODE??SEGCGROUPۘh(.\ KEXIT֠ .& DX@tOXX068ՈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KEXITNS1 .& DXBtOXX069ԈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KINITIALIZE .& DXDtOXX070܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KLOCK .&OUPۘh(.\NCREATE_OBJECT1 .& DXdtOXX086ՈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NCREATE_TASK_OBJECT .& DXftOXX087ԈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_DELETION_REGION .& DXhtOXX088ӈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_EXTENSION_.\ KSLEEP .& DXNtOXX075׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KSLEEPLISTQ .& DXPtOXX076ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KSLEEPLISTNS .& DXRtOXX077ՈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KSLEEPNS .& DXTtOXX078ԈASM86.866.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_OD_REGIONd .& DXrtOXX093׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_POOL_REGION .& DXtފtOXX094ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_SEM_REGION .& DXv܊tOXX096ԈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(..& DX\tOXX082وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ NCLOSE .& DX^tOXX083؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NCLOSENS .& DX`tOXX084׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NCLOSE_DELETION_OBJECT .& DXbtOXX085ֈASM86.86 V2.0wCODECODE??SEGCGR DXF tOXX071ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KLOCKNSB .& DXH tOXX072ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KOPENޠ .& DXJtOXX073وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KOPENNS9 .& DXLtOXX074؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(REGION, .& DXjtOXX089҈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_INT_VEC_REGIONŠ .& DXltOXX090ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_JOB_REGION .& DXntOXX091وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NENTER_MAIL_REGIONР .& DXptOXX092؈ASM8 V2.0wCODECODE??SEGCGROUPۘh(.\KSUSPEND .& DXVtOXX079ӈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KSUSPENDNSC .& DXXtOXX080ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\KUNLOCK@ .& DXZtOXX081ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ KUNLOCKNS \NEXIT_DELETION_REGIONݠ .& DXz؊tOXX097ӈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_EXTENSION_REGIONr .& DX|֊tOXX098҈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_INT_VEC_REGION .& DX~ԊtOXX099шASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_JOB_REGION` .& DOXX114݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\OBJECTDELETIONEPILOGUEԠ .& DXtOXX115܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\OBJECTDELETIONPROLOGUE .& DXtOXX116ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\OVERFLOW .& DXtOXX117ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘhۘh(.\NEXIT_SEM_REGIONV .& DXʊtOXX104ވASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ NLOCK .& DXȊtOXX105݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NLOCKNS? .& DXƊtOXX106܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NLOCK_DELETION_OBJECT .& DXtOXX121߈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQCREATEJOB .& DXtOXX122ވASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQCREATEMAILBOX .& DXtOXX123݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQCREATEREGION. .& DXtOXX124܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh.\NUNLOCK= .& DXtOXX111ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ NUNLOCKNS .& DXtOXX112߈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NUNLOCK_AND_SIGNALؠ .& DXtOXX113ވASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NUNLOCK_DELETION_OBJECTT .& DXtXҊtOXX100ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_MAIL_REGION .& DXЊtOXX101ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_OD_REGION .& DXΊtOXX102ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NEXIT_POOL_REGION .& DX̊tOXX103߈ASM86.86 V2.0wCODECODE??SEGCGROUP(.\ REMOVE .& DXtOXX118وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RESETINTERRUPTBODYà .& DXtOXX119؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RESTORE8087INTMASK/ .& DXtOXX120ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQACCEPTCONTROLӠ .& DXĊtOXX107ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ NOPEN۠ .& DXŠtOXX108ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NOPENNS6 .& DXtOXX109وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\NOPEN_DELETION_OBJECT .& DXtOXX110ASM86.86 V2.0wCODECODE??SEGCGROUPۘh((.\RQCREATESEGMENTݠ .& DXtOXX125ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQCREATETASKà .& DXtOXX126ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQDELETEMAILBOX .& DXtOXX127وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQDELETEREGION/ .& DX DXԟ~tOXX142܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQRESETINTERRUPTR .& DX֟|tOXX143ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQRESUMETASK .& DX؟ztOXX144ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQSENDCONTROL] .& DXڟxtOXX145وASM86.86 V2.0wCODECODE??SEGCGROUP(.\RQDISABLE_BODY% .& DXtOXX132݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQENABLE .& DXŸtOXX133܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQENABLEDELETION .& DXğtOXX134ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQENTERINTERRUPT_BODY .& DXƟ& DXptOXX149ՈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQSETPRIORITY: .& DXntOXX150݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQSIGNALEXCEPTION3 .& DXltOXX151܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQSIGNALINTERRUPT_BODY~ .& DXjtOXX152ۈASM86.86 V2.0wCODECOUPۘh(.\RQGETTASKTOKENS .& DXΟtOXX139ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQGETTYPE .& DXПtOXX140ވASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQRECEIVECONTROL~ .& DXҟtOXX141݈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQRECEIVEMESSAGE .&tOXX128؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQDELETESEGMENTޠ .& DXtOXX129׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQDELETETASKĠ .& DXtOXX130߈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQDISABLEDELETIONX .& DXtOXX131ވASM86.86 V2.0wCODECODE??SEGCGROUPۘhۘh(.\ RQSENDMESSAGEy .& DXܟvtOXX146؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQSETEXCEPTIONHANDLER .& DXޟttOXX147׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQSETINTERRUPT .& DXrtOXX148ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQSETOSEXTENSIONW .tOXX135ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQEXITINTERRUPT_BODY .& DXȟtOXX136وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQGETEXCEPTIONHANDLER .& DXʟtOXX137؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQGETLEVEL_BODY .& DX̟tOXX138׈ASM86.86 V2.0wCODECODE??SEGCGRODE??SEGCGROUPۘh(.\RQSLEEP; .& DXhtOXX153ڈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ RQSUSPENDTASKS .& DXftOXX154وASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\RQWAITINTERRUPT_BODY .& DXdtOXX155؈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ SCANMEMORYS a$-<Pc s  /D[l| !2@Ujz 7?J V!g"$% &,'7(C)P*i+{-./#011>2M3W4d5s689':1;=<N=a>r@AB%C6DIEZFmG|I JK1LAMSN]OiPrQ}S TU V)W4X>YLZ\[h\t^_ `a$b0cJd\esg h(iAjVkllno+pDq^rvt uv2wGx[ydzo|}~5@Mc~2>H^t);N^qۘh(.\VALIDATE_PARAMS_NSԠ .& DXZtOXX160܈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ VERIFYOBJECT .& DXXtOXX161ۈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ WAKEUPTASKQ .& DXVtz VERSION3P0OLDCHPOXX000OXX001OXX002OXX003OXX004OXX005OXX006OXX007OXX008OXX009OXX010OXX011OXX012OXX013OXX014OXX015IONFREEFREEJOBFREEPOOL GETOBJECTTYPEGIVEEXHANDLERCONTROLGIVETASKCONTROL INITIALIZEINITINCRINITNDPINITPOOL INITSTACKINIT_INTERNAL_REGIONSINIT_SYSTEM_DSINSERT INSERTHEAD INSERTSORTED INSERTTAIL KACTIVATE KACTIVATENSKAWAKE KAWAKEALL KAWAKEALLNSKAWAKENSKCHANGEPRIORITYKCHANGEPRIORITYNSKCLOSEKCLOSENS KCREATEOBJECTKCREATEOBJECTNS KCREATEREGIONKCREATEREGIONNS KCREATETASK KCREATETASKNS KDELETEOBJECTKDELETEOBJECTNS KDELETEREGIONKDELETEREGIONNS KDELETETASK KDOXX089OXX090OXX091OXX092OXX093OXX094OXX096OXX097OXX098OXX099OXX100OXX101OXX102OXX103OXX104OXX105OXX106OXX107OXX108OXX109OXX110OXX111OXX112OXX113OXX114OXX115OXX116OXX117OXX118OXX119OXX120OXX121OXX122OXX123OXX124OXX125OXX126OXX127OXX128OXX129OXX130OXX131OXX132OXX133OXX134OXX135OXX136OXX137OXX138OXX139OXX140OXX141OXX142OXX143OXX144OXX145OXX146OXX147OXX148OXX149OXX150OXX151OXX152OXX153OXX154OXX155OXX156OXX157OXX158OXX159OXX160OXX161 .& DXbtOXX156׈ASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ SIGNAL .& DX`tOXX157ֈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\ SYSTEMSUICIDE` .& DX^tOXX158ՈASM86.86 V2.0wCODECODE??SEGCGROUPۘh(.\VALIDATE_PARAMSڠ .& DX\tOXX159ԈASM86.86 V2.0wCODECODE??SEGCGROUP&;MYm7J]j~&6GXq(=Wbs #4G]mV VRSN E_OLD_CHIPALLOC ARRAYBOUNDSCHECKKERNELERRORCLOCKENTRY_BODY COMMON_ERRORCREATEJOBACCOUNTINGCREATE_ACCOUNTING DECODE_LEVELDECODE_LEVEL_BODYDELETEJOBACCOUNTING DELETEMAILBOX DELETEOBJECT DELETEREGIONDELETERUNNINGTASK DELETESEGMENT DELETETASKDELETE_ACCOUNTINGDISABLELEVEL_BODY DIVIDEBYZERO EOI_ROUTINEFINDLARGESTSEGMENTFINISHINITIALIZATOXX016OXX017OXX018OXX019OXX020OXX021OXX022OXX023OXX024OXX025OXX026OXX027OXX028OXX029OXX030OXX031OXX032OXX033OXX034OXX035OXX036OXX037OXX038OXX039OXX040OXX041OXX042OXX043OXX044OXX045OXX046OXX047OXX048OXX049OXX050OXX051OXX052OXX053OXX054OXX055OXX056OXX057OXX058OXX059OXX060OXX061OXX062OXX063OXX064OXX065OXX066OXX067OXX068OXX069OXX070OXX071OXX072OXX073OXX074OXX075OXX076OXX077OXX078OXX079OXX080OXX081OXX082OXX083OXX084OXX085OXX086OXX087OXX088ELETETASKNS KDISABLELEVELKDISABLELEVELNS KENABLELEVELKENABLELEVELNSKENTERKENTERNSKEXITKEXITNS KINITIALIZEKLOCKKLOCKNSKOPENKOPENNSKSLEEP KSLEEPLIST KSLEEPLISTNSKSLEEPNSKSUSPEND KSUSPENDNSKUNLOCK KUNLOCKNSNCLOSENCLOSENSNCLOSE_DELETION_OBJECTNCREATE_OBJECTNCREATE_TASK_OBJECTNENTER_DELETION_REGIONNENTER_EXTENSION_REGIONNENTER_INT_VEC_REGIONNENTER_JOB_REGIONNENTER_MAIL_REGIONNENTER_OD_REGIONNENTER_POOL_REGIONNENTER_SEM_REGIONNEXIT_DELETION_REGIONNEa( 0144H,READYLISTROOT) %_80130_data( 0186H,REF_OBJ_SIZE) %_80130_data( 0184H,REGIONSIZE) %_80130_data( 0162H,REGION_FLAGS) %_80130_data( 0166H,REGION_TOKEN_TABLE) %_80130_data( 0158H,ROOTJOBTOKEN) %_80130_data( 018CH,SEGHEADERPARSIZE) %_80130_data( 0182H,SEMAPHORESIZE) %_80130_data( 01A6H,SIGNAL_Q) %_80130_data( 01A4H,SIGNAL_Q_INDEX) %_80130_data( 014CH,SYSTEMEXCEPTIONHANDLERPTR) %_80130_data( 0156H,SYSTEMPOOLTOKEN) %_80130_data( 0176H,TASKSIZE) %_80130_data( 0164H,TASK_WAITING_FLAGS) %_80130QDELETESEGMENT RQDELETETASKRQDISABLEDELETIONRQDISABLE_BODYRQENABLERQENABLEDELETIONRQENTERINTERRUPT_BODYRQEXITINTERRUPT_BODYRQGETEXCEPTIONHANDLERRQGETLEVEL_BODYRQGETTASKTOKENS RQGETTYPERQRECEIVECONTROLRQRECEIVEMESSAGERQRESETINTERRUPT RQRESUMETASK RQSENDCONTROL RQSENDMESSAGERQSETEXCEPTIONHANDLERRQSETINTERRUPTRQSETOSEXTENSION RQSETPRIORITYRQSIGNALEXCEPTIONRQSIGNALINTERRUPT_BODYRQSLEEP RQSUSPENDTASKRQWAITINTERRUPT_BODY SCANMEMORYSIGNAL SYSTEMSUICIDEVALIDATE_PAR,LAST_NDP_TASK) %_80130_data( 022DH,LEVEL_SET_TABLE) %_80130_data( 0279H,MASTER_VECTOR) %_80130_data( 0180H,MBXSIZE) %_80130_data( 015AH,MINTRANSSIZE) %_80130_data( 018EH,MT_BYTES_TO_CACHE) %_80130_data( 0178H,NDPSAVEAREASIZE) %_80130_data( 015EH,NDP_INTERRUPT_LEVEL_VAR) %_80130_data( 0219H,NUM_SLAVES) %_80130_data( 0192H,OBJDIROFFSET) %_80130_data( 021AH,OLD_SLAVE_NUM) %_80130_data( 0160H,PARAM_VALIDATION_VECTOR) %_80130_data( 026CH,PIC_INFO) %_80130_data( 0188H,POOLHEADERPARSIZE) %_80130_datXIT_EXTENSION_REGIONNEXIT_INT_VEC_REGIONNEXIT_JOB_REGIONNEXIT_MAIL_REGIONNEXIT_OD_REGIONNEXIT_POOL_REGIONNEXIT_SEM_REGIONNLOCKNLOCKNSNLOCK_DELETION_OBJECTNOPENNOPENNSNOPEN_DELETION_OBJECTNUNLOCK NUNLOCKNSNUNLOCK_AND_SIGNALNUNLOCK_DELETION_OBJECTOBJECTDELETIONEPILOGUEOBJECTDELETIONPROLOGUEOVERFLOWREMOVERESETINTERRUPTBODYRESTORE8087INTMASKRQACCEPTCONTROL RQCREATEJOBRQCREATEMAILBOXRQCREATEREGIONRQCREATESEGMENT RQCREATETASKRQDELETEMAILBOXRQDELETEREGIONR_data( 0194H,TOBJDIROFFSET) %_80130_data( 0190H,TT_NDP_AREA_OFFSET) data ends $list AMSVALIDATE_PARAMS_NS VERIFYOBJECT WAKEUPTASK9{|ez{Z{ Juour؎ tsc ts  tscc ts Ў  tsːRQALTERCOMPOSITEiCOMPOSITECOMPONENTSOFFSETVALIDATE_PARAMS GETDESCRPOINTER NLOCK_DELETION_OBJECT NUNLOCK_DELETION_OBJECT NENTER_EXTENSION_REGION NEXIT_EXTENSION_REGION NUNLOCK_AND_SIGNAL DEà\U^ SPF tP^ &w^FF^ &wN&^&] !(17MP^&G ;Fr^&GF&7^FFuًF^&Gv&L+^&O] T{jtNCRCOMPLM86 V2.307/19/84 08:14:1Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T&ݘD[[ tsc{|ez{Y{ Iunuq֎ ts I ts b ts H tsb ts̎  tsRQCREATECOMPOSITE' VERSION6P0PLM86 V2.307/19/84 09:06:0͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtNALTERPLM86 V2.307/19/84 08:11:0Җ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHXH TD[[tNATRIBPLM86 V2.307/19/84 08:11:5͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH`H T D[[z{[{ K{|euod tsd ts  tscup   ts ͐RQGETPOOLATTRIBEGETDESCRPOINTER GETPOINTER NENTER_POOL_REGION NEXIT_POOL_REGION DEàU^ &FFv^F^&Gv&D^&G&^&G&DF^&7^FFNLOCK_DELETION_OBJECTVALIDATE_PARAMS COMPOSITESIZECOMPOSITECOMPONENTSOFFSETNCREATE_OBJECT GETDESCRPOINTERNENTER_EXTENSION_REGION INSERTHEADNEXIT_EXTENSION_REGIONNUNLOCK_DELETION_OBJECTNUNLOCK_AND_SIGNALќ DEàU^ S PF tP^ &^FP&GHPFPF^ &w^F^&Gv&D^ &G&D^&G&DF&D&D^&O&LNF^&GHN;r'&9v&@^& v^&FuF^&wvP^&G^&GF.stNDELCOPLM86 V2.307/19/84 08:21:3Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH!H T&ݘD[[z{[{ K{|euod tsd ts Ԏ{|mu i  H ts Ύd tsΎd ts̎d tsʎd tsȎd tsƎd tsێup  tsRQDELETECOMPOSITEGETDESC܎ T ts؎f ts܎ ts!  Ď ts#ѐRQCREATEEXTENSION$ N EXTENSIONSIZECREATE_ACCOUNTINGALLOC KCREATEOBJECTNSVALIDATE_PARAMS INSERTSORTEDSIGNAL GETDESCRTOKENGETDESCRPOINTERNENTER_DELETION_REGIONNENTER_EXTENSION_REGIONNENTER_JOB_REGIONNEXIT_DELETION_REGIONNEXIT_EXTENSION_REGIONNEXIT_JOB_REGION GETOBJECTTYPEEXTENSIONLISTROOT INSERTHEADFREE DELETE_ACCOUNTING" DEàUvt LM86 V2.307/19/84 08:22:3͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T$ߘD[[z{[{ K{|euod ts tscd ts ӎَ ts Ў N ts͎d ts͎{|mub A tsǎ N ts܎d tsŎ A tsup  tsRQDELETEEXTENSIONGETDESCRPOINTD[[ tsc{|ez{Y{ Iunuq֎ ts I ts b ts Ў  tsRQCREATESEMAPHORE:uNLOCK_DELETION_OBJECTVALIDATE_PARAMS SEMAPHORESIZENCREATE_OBJECT NUNLOCK_DELETION_OBJECTNUNLOCK_AND_SIGNAL| DEàU^ S$PF tPP6FPFF^&Gv &D&Gv &D&G&G^ &%^&G&GF] &] - ;DQZġ  tNCREXTPLM86 V2.307/19/84 08:15:1͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T$ߘD[[{|e{|muruq܎ tsz{U{ Eu j  M ts f tsώ ֎ ts T tsf tsɎ _ tsf t s׎ tscf tsRPOINTERDELETECOMPOSITE OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUEKAWAKENSSIGNALNLOCKNS NUNLOCKNS GETOBJECTTYPEe DEà%U^ &7^F^ &w^F^&w^F^ &G^&;Gt2^ &7u5^ &^&;G0t&&u^&u &P ^&G^&GF^ &v&;Dt ^ &w^&GF^ &7PP^ &7vF t#P^F&7uv^&G7^ &v&;Dt ^ &w] k1 -R ~džІֆWtNDELEXPPvPu Pv6FPuvPP^SFPv^F^ S PF tvPvv^ &Gv&D&DN&L^ &&L&D6vP^&w vP^&G ^&GF] ʜy  %, 3:BOR Yahn w  Ֆ߆  tNCRSEMPLM86 V2.307/19/84 08:19:4Ɩ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH~H TERNENTER_EXTENSION_REGION NEXIT_EXTENSION_REGION NOPENNS NOPEN_DELETION_OBJECT NCLOSE_DELETION_OBJECT KSLEEPNS INTERNALSENDMESSAGEDELETECOMPOSITEOBJECTDELETIONPROLOGUEREMOVEEXTENSIONLISTROOTOBJECTDELETIONEPILOGUE DELETEOBJECTۜ DEàU^ &7^Fv &4^&wP^ &7^&G6^ &7Pv^F^&GF tk^&G tqFP^FF^&GN^&OvPP^&7t&G7vP^&G7^&G^&G tP^&GFφ߆!O:v^F^&G FF tuP^F&uv֋F^&G0N^&O&wPP^&7t&G7vP^&G7^&G0zvvvv^&GFF tP^F&_.r^&tBv^FP6&w6F؂~t vP6 ^ &7v] 8d2Tn ĄĆĈĊӌ    (. tNDELSMPLM86 V2.307/19/84 08:26:5ǖ,STACKMEMORYCODEDATd tsĎd tsŽd ts N tsd ts!d ts#d ts%d ts' N ts)Ɏ N ts+d ts-{|md t/s0u/E 22 ts3d ts5   ts7 RQDELETEJOB8GETDESCRPOINTERNENTER_INT_VEC_REGION NEXIT_INT_VEC_REGION NENTER_DELETION_REGION NEXIT_DELETION_REGION NENTER_PLM86 V2.307/19/84 08:35:2ʖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHQH TD[[ tscz{Z{ J{|eunc tsuo Ԏ ts ю{|m   t sې RQGETPRIORITY9VNLOCK_DELETION_OBJECTGETDESCRPOINTER VALIDATE_PARAMS_NS NUNLOCK_DELETION_OBJECT DEàUU^ & t;Fu F^ & ^ SP^ &7^F&GFF] "FtFPP(PPFڹX^&@ vFڹ^Fu^&G"FދF t*P^F^&G@@tvvŖm "+9k   džֆ 0<l^ &7PPv] I & /2=A N Q TZ†׆  tNDELJBÈPLM86 V2.307/19/84 08:23:3̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH$H T<ǘD[[z{[{ K{|euod ts tscup Վ ts َ ts ώd tsΎd ts̎d tsʎd tsȎd tsݎACONSTDGROUPCGROUPnhH=ΘH TD[[z{[{ K{|euod tsd ts Ԏ{|mu i  H ts Ύd tsΎup  tsȐRQDELETESEMAPHORE8SGETDESCRPOINTERDELETESEMAPHORE OBJECTDELETIONPROLOGUEOBJECTDELETIONEPILOGUE DEàAUQQ^ &7^F&GF^ &7PP^ &7v] x &/5tNGETPROD_REGION NEXIT_OD_REGION NENTER_JOB_REGION NEXIT_JOB_REGION VALIDATE_PARAMS KSLEEPNSNLOCKNS NUNLOCKNSNOPENNSNOPEN_DELETION_OBJECT FREEJOB GETOBJECTTYPE OBJDIROFFSETSIGNAL DELETETASK DELETESEGMENTINTERNALSENDMESSAGE DELETECOMPOSITE" DELETEMAILBOX$DELETESEMAPHORE& DELETEREGION(REMOVE*DELETEJOBACCOUNTING, WAKEUPTASK.KAWAKE1KCHANGEPRIORITYNS4,DELETIONTASKTOKENINTERNALRESETINTERRUPT61 DEàU(v^ &?uF&^ &7^FF^ &7F<t t&>u'&&F&;r;r+ЎF& uFP&6v(P&>tF&F& &.&F&>u*&>.t?&'^ &7F&'&>t F&F&>.u PF&>t&.&OF3&9uCS&6P(P[ tF&F&> tvF&.1PPX] uDE    Ro tNSETMNPLMts  a ts {|m a ts܎ a ts̎ a tsʎufU tsǎ a tsߎ tsc ǎ ts ǎ ts͎  H tsʎ a ts!  E ts#Ҏ  ts%ϐ RQOFFSPRING&ڌ GETDESCRTOKENGETDESCRPOINTER GETPOINTER NLOCK NUNLOCKNSSIGNALCHECKKERNELERROR GETOBJECTTYPENENTER_DELETION_REGIONNEXIT_DELETION_REGIONDELETE_ANASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH_NUNLOCK_AND_SIGNAL CHECKREQUESTSSATISFYREQUESTERNUNLOCK_DELETION_OBJECTNEXIT_SEM_REGIONNENTER_SEM_REGIONVALIDATE_PARAMSNLOCK_DELETION_OBJECTmYY RQSENDUNITScU^ S&P tP^ &&G&&& tIu&; r ] ?DELQTWtNUNCATPLM86 V2.307/19/84 08:59:5JECTFINDEXTENSIONLISTROOT3 DEàUUQ^&r4^& tPPF t 6^&wP t]y /=XtNVCRSPPLM86 V2.307/19/84 09:03:3͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH+H TD[[{|ez{Z{ Juour؎ tsV_RQCREATE_SEMAPHORE ' DEà/U^&G&;Gv^&u$]ߊtNVDLJPPLM86 V2U ^ &uF&G^ &w^F^ SP^ &SFP^ &w<u^&G^&O> %P] %"+7Nfmps,tNVALCPPLM86 V2.307/19/84 09:00:3Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHmH TD[[z{[{ K{|euod tsَ ts up Ԏ ts V_RQALTER_COMPOSITE R GETDESCRPOINTER VERIFYOB 6W%tNVINCPPLM86 V2.307/19/84 09:06:2˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHgH TD[[{|eurߎ tsz{W{ Gg ts ul ׎ ts V_RQINSPECT_COMPOSITE VERIFYOBJECTGETDESCRPOINTER , DEàkU^&wPF t A^&wPF t '^&w^Fv&D&;Gt] ,JECTȜ DEàU ^&wPF t e^&^F&u$M^&G&9s^&FFF9Fv(^&H tQPF t FЋF]b oĊtNVCREPPLM86 V2.307/19/84 09:01:5͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHQH TD[[{|eurߎ ts W tsz{U{ Eu j ׎ ts V_RQCREATE_EXTENSION ( VERIFYOB,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH{H T"D[[ tscz{Z{ Juo{|eum׎ ts ӎb ts {|m L t s܎b ts͎  tsȐRQUNCATALOGOBJECT:NLOCK_DELETION_OBJECTVALIDATE_PARAMS_NS GETDESCRPOINTER NENTER_OD_REGION FIND_NAMENEXIT_OD_REGIONNUNLOCK_AND_SIGNALNUNLOCK_DELETION_OBJECT DEà.307/19/84 09:05:2̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHpH TD[[z{[{ K{|euod tsێOFFSETBASE y  up ӎ ts V_RQDELETE_JOB!GETDESCRPOINTER READYLISTROOTĜ DEàU^&7^F6&F^&$uX^&G tP^F&t<^&G tBFP^F^&u)v&D;Ft^&G;Fu^&GFø]JECT ) DEàU^& tPPF t @t^&wPF t Z^&wPF t @^&w^Fv&D&;Gt^&G t v&;Dv4F]0J`4tNVCRCPPLM86 V2.307/19/84 09:01:1і,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[{|eurߎ tsz{W{ Gul َ ts V_RQCREATE_COMPOSITE  VERIFYOBBtNVRCUPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH5ގ VERIFYOBJECT̚YYV_RQRECEIVE_UNITS9U^&wP t ^&O&G&9s$]EDtNVSNUPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH=֎ VERIFYOBJECT̚YYV_RQSEND_UNITSԠAU^&wP t ^&&G&&+;s$]EDENUCLEUSVRSN R W"INIT_NUCLEUS_JUMPNBEGIN1 DEà I ]'tNDLEVIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH RQDISABLE_BODY0YY RQDISABLEEَyD] ӊtNEXITIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH RQEXITINTERRUPT_BODYYYRQEXITINTERRUPTEPECTCOMPOSITE RQOFFSPRINGRQRECEIVEUNITS RQSETPOOLMIN RQSENDUNITSRQUNCATALOGOBJECTV_RQALTER_COMPOSITEV_RQCREATE_COMPOSITEV_RQCREATE_EXTENSIONV_RQCREATE_SEMAPHOREV_RQDELETE_JOBV_RQINSPECT_COMPOSITEV_RQRECEIVE_UNITSV_RQSEND_UNITSw*CODECODEDATADATA??SEGCGROUPDGROUPh(/H RQSIGNALINTERRUPT_BODYYYRQSIGNALINTERRUPTَyDU ؊tNWAITIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH RQWAITINTERRUPT_BODYYYRQWAITINTERRUPTEَyD] ӊtNDRNNGPLM86 V2.307/19/84 08:30:0і,STACKMEMORYCODEDATACONSTDGROUPCGROUPn 4 VERSION6P0PLM86 V2.307/19/84 09:06:0͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtNBEGINASM86.86 V2.0wBDATADATADATASYSTEM_DATA_SEG_IDCODECODE??SEGDGROUPCGROUPhHhHINITIALIZt VERSION6P0NALTERNATRIBNCRCOMNCREXTNCRSEMNDELCONDELEXNDELJBNDELSMNGETPRNGTSIZNINSPTNOFFSPNRCVUNNSETMNNSNDUNNUNCATNVALCPNVCRCPNVCREPNVCRSPNVDLJPNVINCPNVRCUPNVSNUPi a k:$+o4kG<KuPTZ dkmowsVy+}R7h VRSNRQALTERCOMPOSITERQGETPOOLATTRIBRQCREATECOMPOSITERQCREATEEXTENSIONRQCREATESEMAPHORERQDELETECOMPOSITERQDELETEEXTENSION RQDELETEJOBRQDELETESEMAPHORE RQGETPRIORITY RQGETSIZERQINSَyD] ӊtNENTRIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPh(/H RQENTERINTERRUPT_BODY˚YYRQENTERINTERRUPTVَyDU ؊tNGTLVIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH RQGETLEVEL_BODYʚYY RQGETLEVELUEَyD] ӊtNSGNLIASM86.86 V2.0hH|H TD[[{|eurg tsَg ts׎ߎ tsԎg ts ӎz{ Q{ Ag ts܎g ts̎{|mua F tsƎ tscDELETERUNNINGTASK'cDELETIONTASKTOKENNLOCKNS NUNLOCKNSKSLEEPNS NOPENNS GETDESCRPOINTERFREEJOB DELETEOBJECT+ DEàU66^F6PH^&;tNQ^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' UTILITY MACROS USED BY MASTER_PIC, SLAVE_PIC AND TIMER MACROS %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Define strings for strip. %' %define(cr) ( ) %define(lf) ( ) %define(tab) ( ) %define(space) ( ) %' %' Strip: %' strip all occurances of "char" string from "arg" string. %' %*define(strip(char,arg)) local strX) arI, c C&VRSNINIT_NUCLEUS_JUMPNBEGIN RQDISABLERQEXITINTERRUPTRQENTERINTERRUPT RQGETLEVELRQSIGNALINTERRUPTRQWAITINTERRUPTDELETERUNNINGTASKSYSTEMEXCEPTIONHANDLER9 ends ) %' %' %*define(define_info(seg,info,entry))( %seg segment byte public 'CODE' org %entry db %info org 9 ; force seg to be 9 bytes in length %seg ends ) %' %' %*define(define_public_byte(name,info))( %' 'public %name %name db %info ) %' %' %*define(slave_bit(level))(%' %%level) %set(level00H,1) %set(level0,1) %set(level01H,2) %set(level1,2) %set(level02H,4) %set(level2,4) %set(level03H,8) %set(level3,8) %set(level04H,16) %set(level4,16) %set(level05H,32) %set(level5%';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: NUCLEUS DEVICE CONFIGURATION MACROS %' %' DATE: APRIL 24, 1981 %' %' ABSTRACT: This module contains the definitions of the %' MASTER_PIC, SLAVE_PIC, TIMER, CPU_TYPE and NDP_SUPPORT %' macros. These macros allow the device characteristics %' and device ports to be selectively configured. If any %' parameter which has a default value is not specified, %' that parameter assumes its default value. %' %';;;;;Fvv^&w8^Fv^&w8P^&u ^&w8^&w8뗲9  $'9EKUktNSYSEXASM86.86 V2.0w*CODECODEDATADATA??SEGDGROUPCGROUPhHH5ގ READYLISTROOT RQDELETETASKZXSYSTEMEXCEPTIONHANDLER9.&7X-&8&:PRPSQԜDE3 .3]AtK VERSION6P0NBEGINNDLEVINEXITINENTRINGTLVINSGNLINWAITINDRNNGNSYSE head tail (%' %' '%define(str) (%0)%' %' '%define(tail) (%arg)%' %' '%while(%nes(%tail,%0)) (%' %' '%match(head%(%char)tail) (%tail)%' %' '%define(str) (%str%head)%' %' ')%' %' '%str%' )%' %' %' Cleanup: %' strip spaces, tabs and CRLFs from string. %' %*define(cleanup(str)) (%strip(%space,%strip(%tab,%strip(%cr,%strip(%lf,%str))))) %' %' %*define(define_port(seg,port,entry))( %seg segment word public 'CODE' org 2*(%entry) dw %port org 18 ; force seg to 9 words in length %seg,32) %set(level06H,64) %set(level6,64) %set(level07H,128) %set(level7,128) %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' NAME: TIMER %' %' INPUT: type, base, level, count, selction, delta %' where: %' type is the type of timer (80130 or 8253). %' base is the base address of the device. %' level is the encoded level the interrupt %' occurs on . %' count is the programmed count (T*C). %' selection is timer to be used for the system clock. %' %eval(%level OR 060H) ; c_clock_spec_eoi db NOT %slave_bit(level%level) ; c_clock_on timer_cnf_seg ends )%' end of the TIMER macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' NAME: MASTER_PIC %' %' INPUT: type, master_base_port, edge_vs_level, local_vs_non, delta %' where: %' type is the type of the PIC (8259A or 80130) %' master_base_port is the numerically lowest %' valued port of the PIC. %' edge_vs_level is 0 if edge mode is required %'  ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %define(type)(%cleanup(%type_p)) %define(base)(%cleanup(%base_p)) %define(level)(%cleanup(%level_p)) %define(count)(%cleanup(%count_p)) %define(selection)(%cleanup(%selection_p)) %define(timer_port_delta)(%cleanup(%timer_port_delta_p)) %' %IF (%EQS(%timer_port_delta,%0)) THEN (%' %define(timer_port_delta)(2))FI%' %' %IF (%EQS(%type,%0)) THEN (%' %define(type)(8253))FI%' %' %IF (%EQS(%base,%0)) THEN (%' %define(base)(0D0H)CMD5_MASTER %' and INIT_CMD6_MASTER are initialization command %' words required for the Master PIC. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(master_pic(type_p,master_base_port_p,edge_vs_level_p,local_vs_non_p,master_port_delta_p))( ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Definition of the Master PIC ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' cleanup the params: strip them ofselection )FI%' %set(counter_x_port_sel,(%selection * %timer_port_delta))%' %set(control_word_sel,(%selection * 040h))%' %' %' The order of the definitions in the segment is critical. %' Do not arbitrarily reorder them. %' timer_cnf_seg segment byte public 'CODE' org 0 dw %base + (3 * %timer_port_delta) ; clock_control_port dw %base + %counter_x_port_sel ; clock_x_port dw %count ; clock_count db %level ; c_clock_level db 34H + %control_word_sel ; counter x, mode 2, binary count db  delta is the spacing (in bytes) between ports on the timer. %' %' OUTPUT: Definitions for clock_control_port, clock_x_port, %' clock_count, c_clock_level, clock_mode_word, %' c_clock_spec_eoi and c_clock_on used in initializing %' the iRMX 86 system clock. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(timer(type_p,base_p,level_p,count_p,selection_p,timer_port_delta_p))( ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Timer Definition  1 if level mode is required %' local_vs_non is 0 if master is local %' 1 if master is non-local %' delta is the spacing (in bytes) between ports on the Master %' PIC. %' %' OUTPUT: IMR_port, EOI_port and ISR_port are arrays %' of 9 words which define the functional port %' addresses of the interrupt controllers. %' PIC_info is an array of 9 bytes that indicates %' which Master PIC levels have slaves attached. %' INIT_CMD1_MASTER, INIT_CMD3_MASTER, INIT_)FI%' %' %IF(%EQS(%type,80130)) THEN(%' %DEFINE(base)(%EVAL(%base + (4 * %timer_port_delta))))FI%' %' %IF (%EQS(%level,%0)) THEN (%' %define(level)(02H)) ELSE (%set(level,((%level / 16) AND 07h)))FI%' %' %IF (%EQS(%count,%0)) THEN (%' %define(count)(12288))FI%' %' %IF (%EQS(%selection,%0)) THEN (%' %define(selection)(0))FI%' %' %IF ((%EQS(%type,80130) AND (%selection NE 0)) OR (%selection GT 2)) THEN (%OUT( ERROR ___ BAD COUNTER SELECTION %selection )%' ; ERROR ___ BAD COUNTER SELECTION % blanks, tabs, crs and lfs %' %define(type)(%cleanup(%type_p)) %define(master_base_port)(%cleanup(%master_base_port_p)) %define(edge_vs_level)(%cleanup(%edge_vs_level_p)) %define(local_vs_non)(%cleanup(%local_vs_non_p)) %define(master_port_delta)(%cleanup(%master_port_delta_p)) %' %IF (%EQS(%type,%0)) THEN (%' %define(type)(8259A))FI%' %' %IF (%EQS(%master_base_port,%0)) THEN (%' %define(master_base_port)(0C0H))FI%' %' %IF (%EQS(%edge_vs_level,%0)) THEN (%' %define(edge_vs_level)(0))FI%' %'  is connected to. %' delta is the spacing (in bytes) between ports on this Slave %' PIC. %' %' OUTPUT: SLAVE_TABLE is a variable length array %' (null terminated) of pointers to Slave_data %' structures for every slave that is configured. %' Slave_data contains the port addresses for the %' ICWs, the first ICW, the type of PIC and the %' Master PIC level to which the Slave PIC is %' connected. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%' Define initialization data for the master. This will be %' redefined by user invocations of the MASTER_PIC macro. %' The order of the definitions in the segment is critical. %' Do not arbitrarily reorder them. %' pic_cnf_seg segment word public 'CODE' %' org 1H db %icw1 db %edge_vs_level db %local_vs_non %' pic_cnf_seg ends %' %' Define masters run-time ports. %' %'define_port(_imr_port,%master_base_port+%master_port_delta,0) _imr_port segment word public 'CODE' org 0 dw port,%0)) THEN (%' ERROR --base port must be specified for slave PIC)FI%' %' %IF (%EQS(%edge_vs_level,%0)) THEN (%' %define(edge_vs_level)(0))FI%' %' %IF (%EQS(%master_level,%0)) THEN (%' ERROR -- a master level must be specified for the slave PIC)FI%' %' %IF (%EQS(%slave_port_delta,%0)) THEN (%' %define(slave_port_delta)(2))FI%' $eject ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Master Level %master_level%() Slave PIC Definition ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;' )%' end of the MASTER_PIC macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' NAME: SLAVE_PIC %' %' INPUT: type, slave_base_port, edge_vs_level, master_level, delta %' where: %' type is the type of the PIC (8259A or 80186) %' slave_base_port is the numerically lowest %' valued port of the slave PIC. %' edge_vs_level is 0 if edge mode is required %' 1 if level mode is required %' master_level is the master PIC encoded level %' the slave %IF (%EQS(%local_vs_non,%0)) THEN (%' %define(local_vs_non)(0))FI%' %' %IF (%EQS(%master_port_delta,%0)) THEN (%' %define(master_port_delta)(2))FI%' %' Define the master PIC icw1 which is dependent on the PIC type. %' %IF (%EQS(%type,8259A) OR %EQS(%type,8259a))%' %' 'THEN(%define(icw1)(015H))%' this must be expanded to support level triggered mode %' 'ELSE(%' %' '%IF(%EQS(%type,80130))%' %' 'THEN(%define(icw1)(035H))%' %' 'ELSE(ERROR -- %type improper pic type )%' %' 'FI)%' FI%' %' ;;;;;;;; %*define(slave_pic(type_p,slave_base_port_p,edge_vs_level_p,master_level_p,slave_port_delta_p))( %' %' %' cleanup params: strip cr, lf, esc, tab and spaces %' %define(type)(%cleanup(%type_p)) %define(slave_base_port)(%cleanup(%slave_base_port_p)) %define(edge_vs_level)(%cleanup(%edge_vs_level_p)) %define(master_level)(%cleanup(%master_level_p)) %define(slave_port_delta)(%cleanup(%slave_port_delta_p)) %' %IF (%EQS(%type,%0)) THEN (%' %define(type)(8259A))FI%' %' %IF (%EQS(%slave_base_9 dup( %master_base_port + %master_port_delta ) _imr_port ends %' %'define_port(_eoi_port,%master_base_port,0) _eoi_port segment word public 'CODE' org 0 dw 9 dup( %master_base_port ) _eoi_port ends %' %'define_port(_isr_read_port,%master_base_port,0) _isr_read_port segment word public 'CODE' org 0 dw 9 dup( %master_base_port ) _isr_read_port ends %' _pic_info segment byte public 'CODE' org 0 db 80H ; 80 --> master is here db 8 dup (0) ; 0 --> slave is not _pic_info ends %;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' test for supported type %' %IF (%EQS(%type,8259A) OR %EQS(%type,8259a) OR %EQS(%type,80186))%' THEN (%' process SLAVE_PIC invocation %' %' define this slaves run time ports %' %IF (%EQS(%type,80186)) THEN(%' %' '%define_port(_imr_port,0FF28H,%master_level+1) %' '%define_port(_eoi_port,0FF22H,%master_level+1) %' '%define_port(_isr_read_port,0FF2CH,%master_level+1) ) ELSE (%' %' '%define_port(_imr_port,%slave_base_port+%slave_port_delta,%master_evel_p))(%' %define(ndp_level)(%cleanup(%ndp_level_p)) %' %IF (%EQS(%ndp_level,%0)) THEN (%' %define(ndp_level)(58H))FI%' %' code segment word public 'CODE' NDP_interrupt_level dw %ndp_level code ends public NDP_interrupt_level )%' end NDP_SUPPORT macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' CPU TYPE MACRO %' %' INPUT - CPU TYPE %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(cpu_type(cpu_class_p) org 0 %set(icw3,%icw3 OR %slave_bit(level%master_level)) db %icw3 pic_cnf_seg ends %' %' define slave initialization information %' cseg segment word public 'CODE' %' slave%master_level%()_data_struc struc slave%master_level%()_icw1_port dw %slave_base_port ; icw1_port dw %eval(%slave_base_port+%slave_port_delta) ; icw2,3,4_port db %IF(%EQS(%type,80186)) THEN (1)%' %' 'ELSE (0) FI ; type db %icw1 ; icw1 for slave db %master_level ; slave's level on master s' 'THEN (%define(cpu_value)(1))%' %' 'ELSE (ERROR -- % type improper cpu type )%' %' 'FI)%' %' 'FI)%' %' 'FI)%' FI %' %' %' code segment word public 'CODE' cpu_type dw %cpu_value ; 0 -> 8086 and 1 -> 80286 code ends public cpu_type )%' end CPU_SUPPORT macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' -- NOTE -- %' The code that follows is assembled in-line to provide %' defininot process ERROR -- %type is an incorrect slave pic type )FI%' end of test for correct slave PIC type %' )%' end of the SLAVE_PIC macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' NAME: NDP_SUPPORT %' %' INPUTS: level %' where: %' level is the encoded interrupt level used by %' the 8087 for error interrupts. %' %' OUTPUT: The ndp_interrupt_level %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(ndp_support(ndp_llevel+1) %' '%define_port(_eoi_port,%slave_base_port,%master_level+1) %' '%define_port(_isr_read_port,%slave_base_port,%master_level+1) ) FI%' %' %' define slaves icw1 %' %IF(%edge_vs_level EQ 0)%' %' 'THEN(%set(icw1,15H))%' edge triggered mode %' 'ELSE(%set(icw1,1DH))FI%' level triggered mode %' %' declare the slave to be present %' %define_info(_pic_info,80H,%master_level+1)%' 80H --> present %' %' set the slave present bit in the masters icw3 %' pic_cnf_seg segment word public 'CODE' )(%' %define(cpu_class)(%cleanup(%cpu_class_p)) %' %IF (%EQS(%cpu_class,%0)) THEN (%' %define(cpu_class)(8086))FI%' %' %IF (%EQS (%cpu_class,8086)) %' %' 'THEN (%define(cpu_value)(0))%' %' 'ELSE (%' %' '%IF (%EQS (%cpu_class,8088)) %' %' 'THEN (%define(cpu_value)(0))%' %' 'ELSE (%' %' '%IF (%EQS (%cpu_class,80186)) %' %' 'THEN (%define(cpu_value)(0))%' %' 'ELSE (%' %' '%IF (%EQS (%cpu_class,80286)) %' %lave%master_level%()_data_struc ends %' %' Declare a variable of the structure type to make %' another entry in the slave table. %' slave%master_level%()_data slave%master_level%()_data_struc <> cseg ends %' %' add an entry to the slave table %' slave_seg segment word public 'CODE' org %slave_index dw cgroup:slave%master_level%()_data.slave%master_level%()_icw1_port dw 0 ; 0 indicates end of data slave_seg ends %set(slave_index,%slave_index+2) %' ) ELSE (%' slave is wrong type - do tions for the configuration variables. The default %' configuration variable values are provided by invoking the %' configuration macros with the appropriate parameters in NDEVCF.A86 %' Further user invocations of the configuration macros redefine the %' variables as per user supplied parameters. The order of the %' data definitions in the segments is critical. %' --- Do not arbitrarily reorder them. --- %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CGROUP GRcmd4_master,1DH) pic_cnf_seg ends %' %' Put a label in the beginning of the first port segment. %' It will be referenced by initialization. %' _imr_port segment word public 'CODE' public imr_start imr_start label word _imr_port ends r of the %' variables in this segment and the order of assignment of these %' variables in the TIMER macro has to be the same. %' timer_cnf_seg segment byte public 'CODE' org 0 clock_control_port dw ? clock_x_port dw ? clock_count dw ? c_clock_level db ? clock_mode_word db ? c_clock_spec_eoi db ? c_clock_on db ? timer_cnf_seg ends %' %' Define macro time variables for icw3. This will be modified %' by any invocations of the SLAVE_PIC macro. %' %set(icw3,0) %' %' Open CSEG iocations of the slave %' macro may redefine it properly. Init_cmd1_master, %' init_cmd5_master and init_cmd6_master are given values %' by invocations of the MASTER_PIC macro. %' The order of the definitions in the segment is critical. %' Do not arbitrarily reorder them. %' pic_cnf_seg segment word public 'CODE' %define_public_byte(init_cmd3_master,0) %define_public_byte(init_cmd1,?) %define_public_byte(init_cmd5_master,0FFH) %define_public_byte(init_cmd6_master,0FFH) %define_public_byte(init_OUP pic_cnf_seg,_imr_port,_eoi_port,_isr_read_port,_pic_info, & timer_cnf_seg,cseg,slave_seg,code ; ; _imr_port,_eoi_port_isr_read_port,_pic_info must be in this ; order in the GROUP definition for proper PIC initializaion. ; ASSUME cs:cgroup %' %' Declare the Timer initialization and ndp_support variables PUBLIC %' public clock_control_port,clock_x_port,clock_count,clock_mode_word public c_clock_spec_eoi,c_clock_on,c_clock_level %' %' Set up the variables in the timer_cnf_seg. The orden case no SLAVE_PIC macros are invoked %' cseg segment word public 'CODE' cseg ends %' %' Open the CODE segment in case no NDP_support macro is invoked %' code segment word public 'CODE' code ends %' %' Define the list of slave initialization blocks. %' slave_seg segment word public 'CODE' public slave_table slave_table dw 0 %set(slave_index,0) slave_seg ends %' %' NOTE NOTE NOTE !!!! %' The definition of init_cmd3_master MUST be the first in %' this segment so that subsequent invow{|ez{ GEQzFILLCHARUJNUMBERUJLISTPINTERRINCRSIZE NUMBEROFSABSSABTABLE TASKFLAGS STACKSIZESTACKPTRDGRPBASE ROOTTASKCODEROOTTASKPRIORITY EMPTYBYTEJOBFLAGSEXCEPTIONSTRUCTPTR MAXPRIORITY EMPTYBYTE1MAXTASKS MAXOBJECTSPOOLMAXPOOLMINPARAMOBJ DIRECTORYSIZENUCLEUS_PUB_DAT_SIZ DEL_OBJ_SIZDLR_SIZRLR_SIZ KSTACK_SIZ ISTACK_SIZNUM_INTERNAL_REGS y Mo p HuЋ͋4uߊ 2APS..֜>TP,DJ]EPUalPsR{~}!C  |9CPBOOTPLM86 V2.307/19/84 10:54:4Πv011 RQBOOTEDSUPPFs8 PPFQ_PvPP.FF.;s!^&P VF^&PV&0v&p&p&p&p&p VR&p&p&XS^&p&XS^&p&pPF>tPP' VERSION6P0PLM86 V2.307/19/84 10:55:2ϖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtRBEGIN8STACK INIT_STACKDATACODE??SEGDGROUPCGROUPMEMORYyhHIØHT,ژT<̘D  {|mw O tsc(NUC_INIT_ENTRYCODEDATA INITENVLIST0YYCRASH}INTERRORROOTTASK RQCATALOGOBJECT RQCREATEJOBRQCREATESEGMENTRQERROR0RQGETTASKTOKENSRQROOTJOBVERSION RQSUSPENDTASKRQ_N_C_RETURN_12RQ_N_C_RETURN_40RQ_N_C_RETURN_6 SYSTEMSUICIDE;RQSTARTADDRESS" BOOTED_FLAG BOOT_MESSAGEc" JOBNUMBERROOTTASKSTATUS CABOOTASM86.86 V2.0wX <м;t3ɋ..G.O.Gu.Gut`PP]  %08GLQV`flۙ} NFATALASM86.86 V2.0wF^RQCCJBASM86.86 V2.0w =RQCCOBASM86.86 V2.0w ZRQCCSGASM86.86 V2.0w vRQCGTTASM86.86 V2.0w ڜvRQCSTKASM86.86 V2.0w ؜vRQCR06ԈASM86.86 V2.0we input and output mailbox names %' used and the length in bits of the character received %' from the terminal. Including this module in an assembly %' module will generate the default configuration which %' identifies the iSBC-86/12A as the hardware the %' Terminal Handler will run on. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' First define some utility macros to cleanup the %' parametersQCREATESEGMENTRQERRORRQGETTASKTOKENSRQROOTJOBVERSION RQSUSPENDTASKRQ_N_C_RETURN_12RQ_N_C_RETURN_40RQ_N_C_RETURN_6 SYSTEMSUICIDERQSTARTADDRESS BOOTED_FLAG BOOT_MESSAGE JOBNUMBERROOTTASKSTATUS RQDEBUGGEREX)%' %' '%define(str) (%str%head)%' %' ')%' %' '%str%' )%' %' %' Cleanup: %' strip $s, spaces, tabs, CRLFs from string. %' %*define(cleanup(str)) (%strip(%dol,%strip(%space,%strip(%tab,%strip(%cr,%strip(%lf,%str)))))) %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_19200_BAUD_COUNT %' %' INPUTS: 19200_COUNT - a value which will generate a baud rate %' of 19200 baud at the input clock freguency used. %' %' OUTPUTS: none directly, it sets up 19200_$save nolist %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: DTHCNF.MAC %' %' DATE: 5-19-82 %' %' ABSTRACT: This module contains definitions for the Terminal %' Handler configuration macros: MTH, TH_TIMER, TH_USART, %' TH_INT_LEVELS, TH_MAILBOX_NAMES, TH_19200_BAUD_COUNT, %' AND TH_CHAR_LENGTH. These macros allow the user to %' specify the terminal response characteristics, the %' baud rate, the USART and Timer components, the %' interrupt levels, thU͸t^&]0RQCR12׈ASM86.86 V2.0wU͸t^&] h0RQCR40ֈASM86.86 V2.0wU͸t^&](/0RQCERRASM86.86 V2.0w0QR3PPP͸ZYKptCDBUGXASM86.86 V2.0wCODECODE??SEGCGROUPۘh($\ RQDEBUGGEREXɠ6L 6TͿ:t VERSION6P0RBEGINCDBUGXڨ aVRSNCRASHINTERRORROOTTASKRQCATALOGOBJECT RQCREATEJOBR passed to the configuration macros. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Define strings for strip. %' %define(crlf) ( ) %define(cr) ( ) %define(lf) ( ) %define(tab) ( ) %define(space) ( ) %define(dol) ($) %' %' Strip: %' strip all occurances of "char" string from "arg" string. %' %*define(strip(char,arg)) local str head tail (%' %' '%define(str) (%0)%' %' '%define(tail) (%arg)%' %' '%while(%nes(%tail,%0)) (%' %' '%match(head%(%char)tail) (%tailcount for use by MTH. %' %' ABSTRACT: %' The value _19200_count is used in the MTH macro to set the %' timers count to generate the baud rate. This macro only %' inputs the value and does not alter any parameters itself. %' If the Timer clock frequency is changed this macro must be %' invoked before the MTH macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_19200_baud_count(_19200_count_p))(%' %' %set(_19200_count,%cleanup(%_19200_count_p)) %IF (%_19200_TIMER_BASE_PORT - the numerically lowest port in the %' timer connected to the USART clock input. %' BAUD_COUNTER - the counter in the Timer used for USART %' clock input, only values 0-2 are valid. %' %' OUTPUTS: TIMER_CONTROL - the timer control port %' BAUD_COUNTER - the counter port connected to the USART %' COUNTER_SELECT - the code to select the desired counter %' when programming the Timer. %' TIMER_PORT_DELTA - the spacing between ports on the timer. %' %' ABSTRACT: TH_TIMER orgs _cnf_seg1 and defines values for %' RQRATE, RQRUBOUT and RQBLANK. MTH uses the value %' 19200_count set up by the TH_19200_BAUD_COUNT macro %' to compute the value necessary to generate the baud %' rate specified in the MTH macro. If the USART input %' clock frequency is changed, the TH_19200_BAUD_COUNT %' and the MTH macros must be reinvoked. The %' TH_19200_BAUD_COUNT macro must always be invoked %' prior to invoking MTH macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' Set up the timer select code for the control word %' %IF (%baud_counter eq 0) THEN (%set(baud_counter_code,0)) ELSE (%' %IF (%baud_counter eq 1) THEN (%set(baud_counter_code,40h)) ELSE (%' %IF (%baud_counter eq 2) THEN (%set(baud_counter_code,80h)) ELSE (%' ERROR -- BAUD COUNTER NUMBER NOT 0, 1 OR 2 %set(baud_counter_code,0) )FI )FI )FI %' th_cnf_seg2 segment byte public 'CODE' org 0 dw %eval(%timer_base_port + (3 * %timer_port_delta)) dw %eval(%timer_base_port + (%baud_counter * %N (%set(mult,64)) ELSE (%' %IF (%rate eq 150) THEN (%set(mult,128)) ELSE (%' %IF (%rate eq 110) THEN (%set(mult,175)) ELSE (%' ERROR -- INVALID BAUD RATE %set(mult,0))FI%' )FI )FI )FI )FI )FI )FI )FI )FI%' th_cnf_seg1 segment byte public 'CODE' org 0 dw %rate db %rubout db %blank dw (%_19200_count * %mult) th_cnf_seg1 ends )%' end of MTH macro %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_TIMER %' %' INPUTS: count le 1) THEN ( ERROR -- 19200_COUNT MUST BE GREATER THAN 1)FI%' )%' end TH_19200_BAUD_COUNT macro %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: MTH %' %' INPUTS: RATE - the baud rate the terminal is to run at. %' RUBOUT - the sytle of rubout to be used. %' BLANK - the character to be used as the rubout char. %' %' OUTPUTS: RQRATE - the baud rate %' RQRUBOUT - the rubout style %' RQBLANK - the rubout character. %' %' ABSTRACT: MTH orgs into thto 0 in the th_cnf_seg2 to define %' values for its outputs. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_timer(timer_base_port_p,baud_counter_p,timer_port_delta_p))(%' %' %set(timer_base_port,%cleanup(%timer_base_port_p)) %' timer_base_port is the lowest valued port on the Timer. %' %set(baud_counter,%cleanup(%baud_counter_p)) %set(timer_port_delta,%cleanup(%timer_port_delta_p))%' %if(%eqs(%timer_port_delta,%0))%' then (%set(timer_port_delta,2))fi%' %';;;;;;;;;;;;;;;;; %*define( mth(rate_p,rubout_p,blank_p))(%' %' %set(rate,%cleanup(%rate_p)) %set(rubout,%cleanup(%rubout_p)) %set(blank,%cleanup(%blank_p)) %' %IF (%rate eq 19200) THEN (%set(mult,1)) ELSE (%' %IF (%rate eq 9600) THEN (%set(mult,2)) ELSE (%' %IF (%rate eq 4800) THEN (%set(mult,4)) ELSE (%' %IF (%rate eq 2400) THEN (%set(mult,8)) ELSE (%' %IF (%rate eq 1200) THEN (%set(mult,16)) ELSE (%' %IF (%rate eq 600) THEN (%set(mult,32)) ELSE (%' %IF (%rate eq 300) THEtimer_port_delta)) dw %baud_counter_code th_cnf_seg2 ends )%' end of TH_TIMER macro %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_USART %' %' INPUTS: USART_BASE_PORT - the numerically lowest valued port %' in the USART used. %' USART_PORT_DELTA - the spacing between ports on the usart. %' %' OUTPUTS: USART_STATUS - the USART status port %' USART_CONRTOL - the USART control port %' USART_IN - the USART input port %' USART_OUT - the USART outpuetermines how many valid bits the character is. %' %' ABSTRACT: TH_CHAR_LENGTH orgs to 0 in the th_cnf_seg5 to %' define values for its output. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_char_length(length_p))(%' %' %set(length,%cleanup(%length_p)) %' %IF (%length eq 7) THEN (%set(length_mask,07fh)) ELSE (%' %IF (%length eq 8) THEN (%set(length_mask,0ffh)) ELSE (%' ERROR -- INVALID CHARACTER LENGTH, NOT 7 OR 8 %set(length_mask,0) )FI )FI %' th_cnfe_port dw %eval(%usart_base_port + %usart_port_delta) dw %eval(%usart_base_port + %usart_port_delta) th_cnf_seg3 ends )%' end of the TH_USART macro %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_INT_LEVELS %' %' INPUTS: INPUT_LEVEL - the interrupt level used for character %' input. Connected to the RXRDY line of the USART. %' OUTPUT_LEVEL - the interrupt level used for character %' output. Connected to the TXRDY line of the USART. %' %' OUTPUTSox. %' %' ABSTRACT: TH_MAILBOX_NAMES orgs to 0 in the norm_in_mbx_seg %' and the norm_out_mbx_seg to define the first byte as %' length of the mailbox name and subsequent bytes up to %' 12 as the name of the mailbox to be used for input and %' output respectively. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_mailbox_names(input_mbx_p,output_mbx_p))(%' %' %define(input_mbx)(%cleanup(%input_mbx_p)) %IF (%len(%input_mbx) gt 12) THEN ( ERROR -- INPUT MAIut_level_p)) %set(output_level,%cleanup(%output_level_p)) %' th_cnf_seg4 segment byte public 'CODE' org 0 dw %input_level dw %output_level th_cnf_seg4 ends )%' TH_INT_LEVELS macro ends %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_CHAR_LENGTH %' %' INPUTS: LENGTH - the length in bits of the character %' received from the terminal. This value can be only %' 7 or 8. %' %' OUTPUTS: CHAR_LENGTH_MASK - the mask for the input character %' which dt port %' %' ABSTRACT: TH_USART orgs to 0 in the th_cnf_seg3 to define %' values for its outputs. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_usart(usart_base_port_p,usart_port_delta_p))(%' %' %set(usart_base_port,%cleanup(%usart_base_port_p)) %set(usart_port_delta,%cleanup(%usart_port_delta_p)) %if(%eqs(%usart_port_delta,%0))%' then (%set(usart_port_delta,2))fi%' %' th_cnf_seg3 segment byte public 'CODE' org 0h dw %usart_base_port dw %usart_bas_seg5 segment byte public 'CODE' org 0 dw %length_mask th_cnf_seg5 ends )%' end TH_CHAR_LENGTH macro %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: TH_MAILBOX_NAMES %' %' INPUTS: INPUT_MBX - the name of the input mailbox %' OUTPUT_MBX - the name of the output mailbox. %' %' OUTPUTS: NORM_INPUT_MAILBOX - an RMX/86 string containing %' the name of the input mailbox. %' NORM_OUTPUT_MAILBOX - an RMA/86 string containing %' the name of the output mailb: INPUT_INTERRUPT_LEVEL - the input interrupt level. %' OUTPUT_INERRUPT_LEVEL - the output interrupt level. %' %' ABSTRACT: TH_INT_LEVELS orgs to 0 in the th_cnf_seg4 to define %' values for its outputs. %' %' -- NOTE -- %' The interrupt levels specified are RMX/86 encoded levels. %' They must be represented as hex numbers -- 036H %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(th_int_levels(input_level_p,output_level_p))(%' %' %set(input_level,%cleanup(%inpLBOX NAME LONGER THAN 12 CHARACTERS ) ELSE (%' norm_in_mbx_seg segment byte public 'CODE' org 0 db %len(%input_mbx),'%input_mbx' norm_in_mbx_seg ends )FI%' %' %define(output_mbx)(%cleanup(%output_mbx_p)) %IF (%len(%output_mbx) gt 12) THEN ( ERROR -- OUTPUT MAILBOX NAME LONGER THAN 12 CHARACTERS ) ELSE (%' norm_out_mbx_seg segment byte public 'CODE' org 0 db %len(%output_mbx),'%output_mbx' norm_out_mbx_seg ends )FI%' )%' TH_MAILBOX_NAMES macro ends %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' the values of the variables in th_cnf_seg2 are set by TH_TIMER th_cnf_seg2 segment byte public 'CODE' org 0 timer_control dw ? baud_counter dw ? counter_select dw ? th_cnf_seg2 ends %' %' the values of the variables in th_cnf_seg3 are set by TH_USART th_cnf_seg3 segment byte public 'CODE' org 0 usart_in dw ? usart_out dw ? usart_status dw ? usart_control dw ? th_cnf_seg3 ends %' %' the values of the variables in th_cnf_seg4 are set by TH_INT_LEVELS th_cnf_seg4 se the Baud Rate Timer uses a clock frequency different %' than the iSBC-86/12A, 1.2288 MHz. At that time, the %' TH_19200_BAUD_COUNT macro must be invoked with a new count value %' which will generate 19200 Baud at the new frequency. It must %' be invoked before the MTH macro specifying the Baud Rate. If %' the clock frequency is changed, the Baud Rate must be specified %' again. Other than this case, the macros may be invoked in any %' order desired. %' cgroup group th_cnf_seg1, th_cnf_seg2,c 'CODE' norm_output_mailbox db ? norm_out_mbx_seg ends %' %' Invoke all the TH cnfiguration macros with the default %' iSBC-86/12A values. These will be modified by subsequent %' invocations of any of the TH configuration macros. %' %th_19200_baud_count(4) %mth(9600,2,020h) %th_timer(0D0H,2,2h) %th_usart(0D8H,2h) %th_int_levels(68H,78H) %th_char_length(7) %th_mailbox_names(RQTHNORMIN,RQTHNORMOUT) $restore macros org to 0 in those %' segments to define values for the variables declared by the %' in-line assembly code. The order of variable declaration done %' by the in-line code and the definition of values done by the %' macros must exactly match. %' %' -- DO NOT ARBITRARILY REORGANIZE THEM!!! -- %' %' the values of the variables in th_cnf_seg1 are set by MTH th_cnf_seg1 segment byte public 'CODE' org 0 rqrate dw ? rqrubout db ? rqblank db ? baud_rate_count dw ? th_cnf_seg1 ends;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' -- IN-LINE CODE GENERATED BY INCLUDING THIS MODULE. -- %' %' The following code will be assembled just by including this %' macro file in another module. All values are initialized to %' the default 86/12A values and then are redefined by optional %' invocations of any number of the TH configuration macros. %' The only constraint on the order the macros may be invoked in %' is whengment byte public 'CODE' org 0 input_interrupt_level dw ? output_interrupt_level dw ? th_cnf_seg4 ends %' %' the values of the variables in th_cnf_seg5 are set by TH_CHAR_LENGTH th_cnf_seg5 segment byte public 'CODE' org 0 char_length_mask db ? th_cnf_seg5 ends %' %' open segments for the input and output mailbox names %' and declare the variable names %' norm_in_mbx_seg segment byte public 'CODE' norm_input_mailbox db ? norm_in_mbx_seg ends %' norm_out_mbx_seg segment byte publi th_cnf_seg3, th_cnf_seg4, & th_cnf_seg5, norm_in_mbx_seg, norm_out_mbx_seg assume cs:cgroup public norm_input_mailbox, norm_output_mailbox public rqrate,rqrubout,rqblank public timer_control,baud_counter,counter_select,baud_rate_count public usart_in,usart_out,usart_status,usart_control public input_interrupt_level,output_interrupt_level public char_length_mask %' %' -- NOTE!!! -- %' The order of the declarations within the five TH_CNF_SEGs cannot %' be changed because the configuration t_task_entry, %' data_seg_addr, init_task_stack, stack_size, %' task_flags) %' %' OSX( 80130_address, offchip_address, extended_system ) %' %' SYSTEM( nucleus_entry, rod_size, min_transfer_size, %' debugger, e_h_provided, e_h_mode ) %' %'********************************************************************* $genonly $NOLIST %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' UTILITY MACROS %' %' Define the utili;;;;;;;;;;;;;;;;; %' %' 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. %' %*DEFINE(arg) LOCAL a (%MATCH(a,tail)(%tail)%TRIM(%a)) %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %'%'********************************************************************* %' %' TITLE: CTABLE.MAC %' %' DATE: 10 August, 1982 %' %' ABSTRACT: This module contains the following macro definitions %' which provide iRMX/86 system configuration: %' %' SAB( start_base, end_base, type ) %' %' JOB( dir_sz, pool_min, pool_max, max_obj, max_tasks, %' max_job_priority, e_h_start_addr, e_h_mode, %' job_flags, init_task_priority, inity macros used by system configuration macros %' in this module: %' %' TRIM -- cleans up blanks from the input parameter. %' ARG -- gets the next comma delimited parameter trimmed of %' spaces. %' POINTER -- gets an argument in the form of an address. %' HEX_IT -- adds a leading 0 and an ending H to the input %' parameter if not already present. %' ABS -- returns the absolute value of a hex number. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' HEX_IT(hex_what) %' -- forces argument to hex, adds leading zero and trailing %' "H" if necessary. HEX_IT does not clean up (trim) the %' input parameter. %' %*DEFINE(hex_it(hex_what)) LOCAL last_char (%' %DEFINE(last_char)(%SUBSTR(%hex_what,%len(%hex_what),1))%' %if( %NES(%SUBSTR(%hex_what,1,1),%(0)) )then(%(0))FI%' %hex_what%' %if( %NES(%last_char,%(h)) AND%' %' '%NES(%last_char,%(H)) )then(%(H))FI%' )%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' Define groups and segments used here. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; cgroup group code, SAB_Descriptors, U_J_Descriptors dgroup group data assume cs: cgroup code segment byte public 'code' ;ROM code code ends data segment byte public 'data' ;RAM data data ends SAB_Descriptors segment word public 'code' ; ROM data SAB_list label near SAB_Descriptors ends e. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PUBLIC sab_list_ptr, number_sabs SAB struc dw ? ; start_addr dw ? ; end_addr dw ? ; type SAB ends %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Define the User_job descriptor structures. %' User_Job structure is used only by the JOB macro. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; USER_JOB struc dw ?macro is invoked. %SET(n_SABs,%n_SABs+1)%' %' SAB_descriptors segment SAB< %hex_it(%arg), ; start_base & %hex_it(%arg), ; end_base & %arg ; type & > SAB_descriptors ends %' )%' End of the SAB macro %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' JOB: MACRO %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Set number of JOBs initially to zero. %SET(n_jobs,0)%' %' %*DEFINE(JO' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Define the exception handler info structures. %' %' E_H_I is used in conjunction with the U_J structure to define the %' data and place a pointer to it into the U_J struc. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E_H_I struc dd ? ;-- The e_h pointer db 1 ;-- its mode E_H_I ends %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' POINTER -- gets an argument that must be an address. %' %*DEFINE(POINTER)(%MATCH(base_part:offset_part)(%arg)%' %hex_it(%offset_part),%hex_it(%base_part)) %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' END UTILITY MACROS %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Define the System_Address_Block structur U_J_Descriptors segment word public 'code' ; ROM data U_J_list label near U_J_Descriptors ends %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' SAB: MACRO %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' Set number of SABs to zero initially. %SET(n_SABs,0)%' %' u equ 0 ;-- untyped %' %*DEFINE(SAB(arglist))(%DEFINE(tail)(%arglist)%' %' %' Increment number of SABs each time this  ; dir_size dw ? ; pool_min dw ? ; pool_max dw ? ; max_objects dw ? ; max_tasks db ? ; max_job_priority dw ? ; exception_handler_entry dw ? ; ditto db ? ; exception_handler_mode dw ? ; job_flags db ? ; task_priority dw ? ; task_entry dw ? ; ditto dw ? ; data_seg dw ? ; stack_ptr dw ? ; ditto dw ? ; stack_size dw ? ; task_flags USER_JOB ends %' %B(arglist))(%DEFINE(tail)(%arglist)%' %' %' Increment number of JOBs each time this macro is invoked. %SET(n_jobs,%n_jobs+1)%' %' %' Output job number and info. ;*** JOB #%n_jobs ***; %' U_J_descriptors segment User_Job< %arg, ; dir_sz & %arg, ; pool_min & %arg, ; pool_max & %arg, ; max_obj & %arg, ; max_tasks & %arg, ; max_job_priority & %pointer, ; e_h_entry &  0100h)))fi%' ;-- OSF SUPPORT CODE = ;-- %off_ptr:0H ;%' %' %' now calculate the offset of nbegin for the general case. %' %SET(nuc_offset,(%saved_hi + 6) - %nuc_hi)%' %' insure positive number with shifts. %SET(nuc_offset,(((%nuc_offset) SHL 1) SHR 1))%' %SET(nuc_offset,((%nuc_offset * 0100h) + (%off_lo - %nuc_lo)) * 010h)%' %' %' calculate the base address of nbegin. %' %SET(nuc_ptr,(((%nuc_ptr - 0600H)SHL 1)SHR 1))%' %' )%' end of the OSX macro %' %' $eject %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' define _80130_system as FALSE for now. %SET(_80130_system,0)%' %' %*DEFINE(OSX(onchip_par,offchip_par,ext_par))%' (%' %' ;----------------------------; ;------- OSP SUPPORT --------; ;----------------------------; ; %if(%EQS(%SUBSTR(%trim(%ext_par),1,1),Y) OR %' %' '%EQS(%SUBSTR(%trim(%ext_par),1,1),y)) then(%' ;-- EXTENDED OSP SYSTEM ) else(%' ;-- OSP SYSTEM(UNEXTENDED) )FI%' ; %' %'PUT TRUE INTO _80130_system BOOLEAN. %' %SET(_80130_system,-1)%' %'  ADDRESS (nbegin) = %nuc_ptr:%nuc_offset ; ;-- ROD size = %rod_size ; ;-- Memory increment size = %incr_size %' %' %define(debug)(%trim(%debug_par))%' %if(%eqs(%debug,a) OR %eqs(%debug,A))then(%' ; ;-- DEBUGGER ACTIVE ;-- FILL_CHAR = 0C7H %define(fill_char)(0C7h)%' )else(%' ; ;-- NO DEBUGGER CONFIGURED ; ;-- FILL_CHAR = 00H %define(fill_char)(0)%' )fi%' %' %' %define(e_h)(%trim(%e_h_par))%' %if(%eqs(%e_h,Y) OR %eqs(%e_h,y))then(%' ; ;-- A system exception handler is being provided. ffchip_par),1,1),y)) then(%' %SET(off_hi,(%nuc_hi + 4))%' %SET(saved_hi,%off_hi)%' %SET(off_lo,%nuc_lo)%' %' allow for wrap around the mega-byte. %if(%off_hi GT 0ffh) then(%' %SET(off_hi,(%off_hi - 0100h)))fi%' %SET(off_ptr,((%off_hi * 0100h) + %off_lo))) else(%' %' %' else get user supplied support code base address. %' %SET(off_ptr,%hex_it(%trim(%offchip_par)))%' %SET(off_hi,(%off_ptr / 0100h))%' %SET(saved_hi,%off_hi)%' %SET(off_lo,(%off_ptr MOD %arg, ; e_h_mode & %arg, ; job_flags & %arg, ; task_priority & %pointer, ; task_entry & %hex_it(%arg), ; d_seg & %pointer, ; stk_ptr & %arg, ; stk_size & %arg ; task_flags & > U_J_descriptors ends $eject )%' end of the JOB macro %' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' OSX: MACRO %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' SYSTEM: MACRO %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(SYSTEM(nuc_ptr_par,rod_size,incr_size,debug_par,e_h_par,e_h_mode))%' LOCAL fill_char (%' %' %if(NOT(%_80130_system)) then(%' %SET(nuc_ptr,%hex_it(%trim(%nuc_ptr_par)))%' %SET(nuc_offset,0H))FI%' %' %' %' ;----------------------------; ;-- System-Wide Parameters --; ;----------------------------; ; ;-- NUCLEUS START%'GET 80130 COMPONENT BASE ADDRESS. %' %SET(nuc_ptr,%hex_it(%trim(%onchip_par)))%' ;-- PHYSICAL ADDRESSES: ;-- OSF (COMPONENT) = ;-- %nuc_ptr:0H%' %' %' the macro assembler chokes if one of these variables overflows. We %' must break the word into byte size chunks. %SET(nuc_hi,(%nuc_ptr / 0100h))%' %SET(nuc_lo,(%nuc_ptr MOD 0100h))%' %' %' if contiguous 80130 system, calculate support code base address. %' %if(%EQS(%SUBSTR(%trim(%offchip_par),1,1),Y) OR%' %' '%EQS(%SUBSTR(%trim(%o ;-- It must be named RQSYSEX and linked to the Root-Job. %' do not declare far extrns inside code segment extrn RQSYSEX: far code segment SYSEH E_H_I< RQSYSEX, %e_h_mode > code ends )else%' (%if(%eqs(%e_h,D) OR %eqs(%e_h,d))then(%' ; ;-- The Debugger is to be used as the system exception handler. code segment extrn RQDEBUGGEREX: far SYSEH E_H_I< RQDEBUGGEREX, %e_h_mode > code ends )else(%' ; ;-- No System Exception Handler prof kernel stack DW 020H ; paragraphs of idle task stack DW 008H ; number of internal regions $LIST ; ; SIZES OF DESCRIPTORS AND RELATED DATA AREAS (SIZES IN 16 BYTE PAGES) ; ; OBJECT DIRECTORY ENTRIES ARE 16 BYTES EACH ENTRY ; COMPOSITE ENTRIES ARE 16 BYTES FOR EVERY 8 COMPONENTS ; MAILBOX FAST QUEUE ENTRIES ARE 16 BYTES FOR EVERY 4 ENTRIES ; DW 005H ; task$size DW 006H ; ndp$save$area$size DW 004H ; job$size -- NO OBJECT DIRECTORY DW 003H define(JOB(parms))(%0) code segment assume cs: cgroup ptr_type struc offst dw ? sg dw ? ptr_type ends nuc_init_entry ptr_type<%nuc_offset, %nuc_ptr> public nuc_init_entry number_sabs dw %n_sabs sab_list_ptr dd cgroup:sab_list $restore CODEDATA: DB %fill_char ; stack fill character DB %n_jobs-1 ; # of jobs - 1 DD cgroup:u_j_list ; job list pointer DD cgroup:interror ; faulty int routine DW %incr_size S * 10H) ; )%' end of SYSTEM macro definition. %' $LIST  ; empty byte DW 0FFFFH ; max system tasks DW 0FFFFH ; max system objects DW 0FFFFH ; max system pool size DW 0 ; min system pool size DW 0 ; system param object $NOLIST DW %rod_size ; root object dir size DW 028H ; paragraphs of public data DW 001H ; paragraphs of deletion object DW 001H ; paragraphs of delay list root DW 001H ; paragraphs of ready list root DW 010H ; paragraphs ovided. ;-- The default exception handler will be used. code segment SYSEH E_H_I< 0, %e_h_mode > code ends )fi)fi%' %' %' ;----------------------------; ;-- End tables --; ;----------------------------; ; ;-- # of SAB blocks = %n_SABs ; ;-- # of JOBs = %n_jobs ; $save nolist code segment assume cs: cgroup extrn interror: near extrn roottask: near code ends %' %' %' %*define(SAB(parms))(%0) %* ; composite$size -- INCLUDES ROOM FOR 8 COMPONENTS DW 002H ; extension$size DW 002H ; mbx$size -- INCLUDES ROOM FOR 4 FAST QUEUE ENTRIES DW 001H ; ref_obj_size DW 002H ; semaphore$size DW 002H ; region$size DW 002H ; pool$header$size DW 002H ; incr$header$size DW 001H ; seg$header$size PUBLIC CODEDATA %' CODE ENDS ; ; INITIAL OS FREE SPACE USAGE = 760H BYTES ; + (THE NUMBER OF ROD ENTRIE ; minimum transfer size DW %n_sabs ; # of SAB's DD cgroup:sab_list ; SAB list pointer DW 0 ; root task flags DW 200H ; root task stack size DD 0 ; nuc allocates stack DW dgroup ; root task data seg DD cgroup:roottask ; root task code DB 0 ; root task priority DB ? ; empty byte DW 2 ; root job flags DD cgroup:syseh ; system exc handler DB 0 ; max system priority DB ?  code, obj_seg, job_seg, task_seg, mb_seg, sem_seg, & reg_seg, fs_seg, int_seg, excep_seg, valid_seg CODE SEGMENT WORD PUBLIC 'CODE' ASSUME CS:CGROUP EXTRN RQNOTSUPPORTED: NEAR EXTRN RQNOTCONFIGURED: NEAR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; NUCLEUS FEATURE CONFIGURATION MACROS ; ; THE FOLLOWING MACROS ARE USED TO BRING IN CHUNKS OF CODE ; FOR EACH OF THE LISTED FEATURES. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; params_body valid_seg ends )%' %*DEFINE(FULL_MEMORY_SCANNER)() %' This is left in for compatibility with prioir configuration files %' The macro does nothing, there is only one memory scanner. %*DEFINE(SYSTEM_EXCEPTION_HANDLER)(EXTRN SYSTEMEXCEPTIONHANDLER:NEAR) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; NUCLEUS PRIMITIVE CONFIGURATION MACROS ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NUM_OBJECT_MGMNT EQU 13 ; 13 PRIMITI$nogen $save nolist ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; NUCLEUS PRIMITIVE AND FEATURE CONFIGURATION MACROS ; ; DATE: 7 JANUARY 1981 ; ; THESE MACROS ARE USED TO BUILD THE ENTRY TABLE USED BY ; NUCLEUS ENTRY. ; ; PRIMITIVES NOT CURRENTLY SUPPORTED BY THE RMX/86 NUCLEUS ; APPEAR IN THE TABLE AS RQNOTSUPPORTED. ; THE DEFAULT ENTRIES IN THE TABLE ARE RQNOTCONFIGURED. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CGROUP GROUP  %set(PARAM_V,0) %set(delete_job_in,0) valid_seg segment word public 'CODE' valid_seg ends %*DEFINE(PARAMETER_VALIDATION)(%' valid_seg segment word public 'CODE' %SET(PARAM_V,255) assume cs:cgroup public param_validation_path extrn validate_params_body:near extrn no_valid:near public valid_table no_of_prims equ 23 valid_table label word dw no_of_prims dup(cgroup:no_valid) ; one entry for each ; primitives validation routine param_validation_path dw validate_ VES INCLUDED NUM_JOB_MGMNT EQU 5 ; 5 PRIMITIVES INCLUDED NUM_TASK_MGMNT EQU 10 ; 10 PRIMITIVES INCLUDED NUM_MAILBOX_MGMNT EQU 4 ; 4 PRIMITIVES INCLUDED NUM_SEMAPHORE_MGMNT EQU 4 ; 4 PRIMITIVES INCLUDED NUM_REGION_MGMNT EQU 5 ; 5 PRIMITIVES INCLUDED NUM_FREE_SPACE_MGMNT EQU 7 ; 7 PRIMITIVES INCLUDED NUM_INTERRUPT_MGMNT EQU 7 ; 7 PRIMITIVES INCLUDED NUM_EXCEPTION_MGMNT EQU 3 ; 3 PRIMITIVES INCLUDED ENTRY_VECTOR LABEL WORD PUBLIC ENTRY_VECTOR DW NUM_OBJECT_MGMNT, CGROUP: OBJECRQUNCATALOGOBJECT,obj_seg,008h) %if (%param_v eq 255) then ( %gen_entry(V_RQUNCATALOG_OBJECT,valid_seg,006h))fi) %*DEFINE(RQLOOKUPOBJECT)(%gen_entry(RQLOOKUPOBJECT,obj_seg,00Ah) %if (%param_v eq 255) then ( %gen_entry(V_RQLOOKUP_OBJECT,valid_seg,008h))fi) %*DEFINE(RQCREATEEXTENSION)(%gen_entry(RQCREATEEXTENSION,obj_seg,00Ch) %if (%param_v eq 255) then ( %gen_entry(V_RQCREATE_EXTENSION,valid_seg,00Ah))fi) %*DEFINE(RQDELETEEXTENSION)(%gen_entry(RQDELETEEXTENSION,obj_seg,00Eh)) %*DEFINE(RQCRE %*DEFINE(gen_entry(name,segg,where))(%' EXTRN %name: NEAR %segg SEGMENT ORG %where DW CGROUP: %name %segg ENDS )%' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; obj_seg SEGMENT WORD PUBLIC 'CODE' OBJECT_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQGETTYPE DW CGROUP: RQNOTCONFIGURED ; RQDISABLEDELETION DW CGROUP: RQNOTCONFIGURED ; RQENABLEDELETION DW CGROUP: RQNOTCONFIGURED ; RQCATALOGOBJECT DW CGROUP: RQNOTCONFIGUREDid_seg,010h))fi) %*DEFINE(RQFORCEDELETE)(%gen_entry(RQFORCEDELETE,obj_seg,018h)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; job_seg SEGMENT WORD PUBLIC 'CODE' JOB_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATEJOB DW CGROUP: RQNOTCONFIGURED ; RQDELETEJOB DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTCONFIGURED ; RQOFFSPRING job_seg ENDS %*DEFINE(RQCREATEJOB)(%gen_entry(RQCREATEJOB,job_seg,000h) %if (%param_v,000h)) %*DEFINE(RQDISABLEDELETION)(%gen_entry(RQDISABLEDELETION,obj_seg,002h) %if (%param_v eq 255) then ( %gen_entry(V_RQDISABLE_DELETION,valid_seg,000h))fi) %*DEFINE(RQENABLEDELETION)(%gen_entry(RQENABLEDELETION,obj_seg,004h) %if (%param_v eq 255) then ( %gen_entry(V_RQENABLE_DELETION,valid_seg,002h))fi) %*DEFINE(RQCATALOGOBJECT)(%gen_entry(RQCATALOGOBJECT,obj_seg,006h) %if (%param_v eq 255) then ( %gen_entry(V_RQCATALOG_OBJECT,valid_seg,004h))fi) %*DEFINE(RQUNCATALOGOBJECT)(%gen_entry(T_MANAGEMENT DW NUM_JOB_MGMNT, CGROUP: JOB_MANAGEMENT DW NUM_TASK_MGMNT, CGROUP: TASK_MANAGEMENT DW NUM_MAILBOX_MGMNT, CGROUP: MAILBOX_MANAGEMENT DW NUM_SEMAPHORE_MGMNT, CGROUP: SEMAPHORE_MANAGEMENT DW NUM_REGION_MGMNT, CGROUP: REGION_MANAGEMENT DW NUM_FREE_SPACE_MGMNT, CGROUP: FREE_SPACE_MANAGEMENT DW NUM_INTERRUPT_MGMNT, CGROUP: INTERRUPT_MANAGEMENT DW NUM_EXCEPTION_MGMNT, CGROUP: EXCEPTION_MANAGEMENT code ENDS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ATECOMPOSITE)(%gen_entry(RQCREATECOMPOSITE,obj_seg,010h) %if (%param_v eq 255) then ( %gen_entry(V_RQCREATE_COMPOSITE,valid_seg,00Ch))fi) %*DEFINE(RQDELETECOMPOSITE)(%gen_entry(RQDELETECOMPOSITE,obj_seg,012h)) %*DEFINE(RQINSPECTCOMPOSITE)(%gen_entry(RQINSPECTCOMPOSITE,obj_seg,014h) %if (%param_v eq 255) then ( %gen_entry(V_RQINSPECT_COMPOSITE,valid_seg,00Eh))fi) %*DEFINE(RQALTERCOMPOSITE)(%gen_entry(RQALTERCOMPOSITE,obj_seg,016h) %if (%param_v eq 255) then ( %gen_entry(V_RQALTER_COMPOSITE,val ; RQUNCATALOGOBJECT DW CGROUP: RQNOTCONFIGURED ; RQLOOKUPOBJECT DW CGROUP: RQNOTCONFIGURED ; RQCREATEEXTENSION DW CGROUP: RQNOTCONFIGURED ; RQDELETEEXTENSION DW CGROUP: RQNOTCONFIGURED ; RQCREATECOMPOSITE DW CGROUP: RQNOTCONFIGURED ; RQDELETECOMPOSITE DW CGROUP: RQNOTCONFIGURED ; RQINSPECTCOMPOSITE DW CGROUP: RQNOTCONFIGURED ; RQALTERCOMPOSITE DW CGROUP: RQNOTCONFIGURED ; RQFORCEDELETE obj_seg ENDS %*DEFINE(RQGETTYPE)(%gen_entry(RQGETTYPE,obj_seg! eq 255) then ( %gen_entry(V_RQCREATE_JOB,valid_seg,012h))fi) %*DEFINE(RQDELETEJOB)(%gen_entry(RQDELETEJOB,job_seg,002h) %' Force the deletion version of delete running task if delete job %' is configured into the system, else the suspension version is linked in. %' Set a flag (delete_job_in) for use by delete task configuration so %' it can avoid a duplicate declaration of delete running task. extrn deleterunningtask:near %set(delete_job_in,0FFH) %if (%param_v eq 255) then ( %gen_entry(V_;;;;;;;;;;;;;;;; mb_seg SEGMENT WORD PUBLIC 'CODE' MAILBOX_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATEMAILBOX DW CGROUP: RQNOTCONFIGURED ; RQDELETEMAILBOX DW CGROUP: RQNOTCONFIGURED ; RQSENDMESSAGE DW CGROUP: RQNOTCONFIGURED ; RQRECEIVEMESSAGE mb_seg ENDS %*DEFINE(RQCREATEMAILBOX)(%gen_entry(RQCREATEMAILBOX,mb_seg,000h)) %*DEFINE(RQDELETEMAILBOX)(%gen_entry(RQDELETEMAILBOX,mb_seg,002h)) %*DEFINE(RQSENDMESSAGE)(%gen_entry(RQSENDMESSAGE,mb_seg,004h) %if (%param_v RQNOTCONFIGURED ; RQGETTASKTOKENS DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTCONFIGURED ; RQGETPRIORITY DW CGROUP: RQNOTCONFIGURED ; RQSETPRIORITY task_seg ENDS %*DEFINE(RQCREATETASK)(%gen_entry(RQCREATETASK,task_seg,000h) %if (%param_v eq 255) then ( %gen_entry(V_RQCREATE_TASK,valid_seg,016h))fi) %*DEFINE(RQDELETETASK)(%gen_entry(RQDELETETASK,task_seg,002h) %' force the deletion version of delete running task if delete task %' is configured into the system, else the suspension versioITS DW CGROUP: RQNOTCONFIGURED ; RQRECEIVEUNITS sem_seg ENDS %*DEFINE(RQCREATESEMAPHORE)(%gen_entry(RQCREATESEMAPHORE,sem_seg,000h) %if (%param_v eq 255) then ( %gen_entry(V_RQCREATE_SEMAPHORE,valid_seg,024h))fi) %*DEFINE(RQDELETESEMAPHORE)(%gen_entry(RQDELETESEMAPHORE,sem_seg,002h)) %*DEFINE(RQSENDUNITS)(%gen_entry(RQSENDUNITS,sem_seg,004h) %if (%param_v eq 255) then ( %gen_entry(V_RQSEND_UNITS,valid_seg,026h))fi) %*DEFINE(RQRECEIVEUNITS)(%gen_entry(RQRECEIVEUNITS,sem_seg,006h) %if (%SUME_TASK,valid_seg,01Ah))fi) %*DEFINE(RQSLEEP)(%gen_entry(RQSLEEP,task_seg,008h)) %*DEFINE(RQGETTASKTOKENS)(%gen_entry(RQGETTASKTOKENS,task_seg,00Ch)) %*DEFINE(RQGETPRIORITY)(%gen_entry(RQGETPRIORITY,task_seg,010h) %if (%param_v eq 255) then ( %gen_entry(V_RQGET_PRIORITY,valid_seg,01Ch))fi) %*DEFINE(RQSETPRIORITY)(%gen_entry(RQSETPRIORITY,task_seg,012h) %if (%param_v eq 255) then ( %gen_entry(V_RQSET_PRIORITY,valid_seg,01Eh))fi) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RQDELETE_JOB,valid_seg,014h))fi) %*DEFINE(RQOFFSPRING)(%gen_entry(RQOFFSPRING,job_seg,008h)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; task_seg SEGMENT WORD PUBLIC 'CODE' TASK_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATETASK DW CGROUP: RQNOTCONFIGURED ; RQDELETETASK DW CGROUP: RQNOTCONFIGURED ; RQSUSPENDTASK DW CGROUP: RQNOTCONFIGURED ; RQRESUMETASK DW CGROUP: RQNOTCONFIGURED ; RQSLEEP DW CGROUP: RQNOTSUPPORTED DW CGROUP: eq 255) then ( %gen_entry(V_RQSEND_MESSAGE,valid_seg,020h))fi) %*DEFINE(RQRECEIVEMESSAGE)(%gen_entry(RQRECEIVEMESSAGE,mb_seg,006h) %if (%param_v eq 255) then ( %gen_entry(V_RQRECEIVE_MESSAGE,valid_seg,022h))fi) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sem_seg SEGMENT WORD PUBLIC 'CODE' SEMAPHORE_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATESEMAPHORE DW CGROUP: RQNOTCONFIGURED ; RQDELETESEMAPHORE DW CGROUP: RQNOTCONFIGURED ; RQSENDUNn is linked in. %' If delete job is configured in then do not declare delete running task %' to be external. The external declaration is done in delete job configuration. %IF (%delete_job_in NE 0FFH) THEN ( extrn deleterunningtask:near )FI%' ) %*DEFINE(RQSUSPENDTASK)(%gen_entry(RQSUSPENDTASK,task_seg,004h) %if (%param_v eq 255) then ( %gen_entry(V_RQSUSPEND_TASK,valid_seg,018h))fi) %*DEFINE(RQRESUMETASK)(%gen_entry(RQRESUMETASK,task_seg,006h) %if (%param_v eq 255) then ( %gen_entry(V_RQRE!param_v eq 255) then ( %gen_entry(V_RQRECEIVE_UNITS,valid_seg,028h))fi) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; reg_seg SEGMENT WORD PUBLIC 'CODE' REGION_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATEREGION DW CGROUP: RQNOTCONFIGURED ; RQDELETEREGION DW CGROUP: RQNOTCONFIGURED ; RQSENDCONTROL DW CGROUP: RQNOTCONFIGURED ; RQRECEIVECONTROL DW CGROUP: RQNOTCONFIGURED ; RQACCEPTCONTROL reg_seg ENDS %*DEFINE(RQCREATEREGION)(%gen_ent008h)) %*DEFINE(RQRESETINTERRUPT)(%gen_entry(RQRESETINTERRUPT,int_seg,00Ch)) %*DEFINE(RQGETLEVEL)(%gen_entry(RQGETLEVEL,int_seg,00Eh)) %*DEFINE(RQEXITINTERRUPT)(%gen_entry(RQEXITINTERRUPT,int_seg,010h)) %*DEFINE(RQSIGNALINTERRUPT)(%gen_entry(RQSIGNALINTERRUPT,int_seg,012h)) %*DEFINE(RQWAITINTERRUPT)(%gen_entry(RQWAITINTERRUPT,int_seg,014h)) %*DEFINE(RQENTERINTERRUPT)(%gen_entry(RQENTERINTERRUPT,int_seg,016h)) %*DEFINE(RQDISABLE)(%gen_entry(RQDISABLE,int_seg,018h)) ;;;;;;;;;;;;;;;;;;; DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTCONFIGURED ; RQDELETESEGMENT DW CGROUP: RQNOTCONFIGURED ; RQGETSIZE DW CGROUP: RQNOTCONFIGURED ; RQGETPOOLATTRIB DW CGROUP: RQNOTCONFIGURED ; RQSETPOOLMIN fs_seg ENDS %*DEFINE(RQCREATESEGMENT)(%gen_entry(RQCREATESEGMENT,fs_seg,000h)) %*DEFINE(RQDELETESEGMENT)(%gen_entry(RQDELETESEGMENT,fs_seg,006h)) %*DEFINE(RQGETSIZE)(%gen_entry(RQGETSIZE,fs_seg,008h) %if (%param_v eq 255) then ( %gen_entry(V_RQGET_SIZE,vaentry(RQSIGNALEXCEPTION,excep_seg,004h)) $restore OUP: RQNOTSUPPORTED DW CGROUP: RQNOTCONFIGURED ; RQRESETINTERRUPT DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED int_seg ENDS %*DEFINE(RQSETOSEXTENSION)(%gen_entry(RQSETOSEXTENSION,int_seg,000h)) %*DEFINE(RQSETINTERRUPT)(%gen_entry(RQSETINTERRUPT,int_seg,002h) %if (%param_v eq 255) then ( %gen_entry(V_RQSET_INTERRUPT,valid_seg,02Ch))fi) %*DEFINE(RQENABLE)(%gen_entry(RQENABLE,int_seg,ry(RQCREATEREGION,reg_seg,000h)) %*DEFINE(RQDELETEREGION)(%gen_entry(RQDELETEREGION,reg_seg,002h)) %*DEFINE(RQSENDCONTROL)(%gen_entry(RQSENDCONTROL,reg_seg,004h)) %*DEFINE(RQRECEIVECONTROL)(%gen_entry(RQRECEIVECONTROL,reg_seg,006h)) %*DEFINE(RQACCEPTCONTROL)(%gen_entry(RQACCEPTCONTROL,reg_seg,008h)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fs_seg SEGMENT WORD PUBLIC 'CODE' FREE_SPACE_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQCREATESEGMENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; excep_seg SEGMENT WORD PUBLIC 'CODE' EXCEPTION_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQGETEXCEPTIONHANDLER DW CGROUP: RQNOTCONFIGURED ; RQSETEXCEPTIONHANDLER DW CGROUP: RQNOTCONFIGURED ; RQSIGNALEXCEPTION excep_seg ENDS %*DEFINE(RQGETEXCEPTIONHANDLER)(%gen_entry(RQGETEXCEPTIONHANDLER,excep_seg,000h)) %*DEFINE(RQSETEXCEPTIONHANDLER)(%gen_entry(RQSETEXCEPTIONHANDLER,excep_seg,002h)) %*DEFINE(RQSIGNALEXCEPTION)(%gen_lid_seg,02Ah))fi) %*DEFINE(RQGETPOOLATTRIB)(%gen_entry(RQGETPOOLATTRIB,fs_seg,00Ah)) %*DEFINE(RQSETPOOLMIN)(%gen_entry(RQSETPOOLMIN,fs_seg,00Ch)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; int_seg SEGMENT WORD PUBLIC 'CODE' INTERRUPT_MANAGEMENT LABEL WORD DW CGROUP: RQNOTCONFIGURED ; RQSETOSEXTENSION DW CGROUP: RQNOTCONFIGURED ; RQSETINTERRUPT DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTSUPPORTED DW CGROUP: RQNOTCONFIGURED ; RQENABLE DW CGR"ECTHKDELETEOBJECTNSHKDELETEREGIONNS) KDELETEREGION) KCREATEREGIONKCREATEREGIONNSHUF&&3&8F t &3]UF&9tP3]UF-&9tP3]UnF&&&&3]ҜD?a[tNCONSTASM86.86 V2.0wCODECODE??SEGh(+& DISABLETABLELEVEL_BIT_TABLER  @StNINTERASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPh(]ɜ DEà)r.u㋗ 3ø}'DE   tNREGONASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH,`REGION_TOKEN_TABLETASK_WAITING_FLAGS REGION_FLAGSKAWAKENS KSLEEPLISTNSKCREATEREGIONNSYYNEXIT_DELETION_REGIONNEXIT_POOL_REGIONNEXIT_OD_REGIONNEXIT_MAIL_REGIONNEXIT_SEM_REGIONNEXIT_JOB_REGIONNEXIT_EXTENSION_REGIONNEXIT_INT_ Va~ VERSION6P0PLM86 V2.307/19/84 09:06:0͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtNCREDLASM86.86 V2.0wCODECODE??SEGCGROUPۘhH KAWAKEALLњ\ KCREATEOBJECTjKCREATEOBJECTNSj KDELETEOBJH READYLISTROOTDECODE_LEVEL_BODY DISABLETABLELEVEL_BIT_TABLEINTERRUPTTASKVEC NUM_SLAVES OLD_SLAVE_NUMLEVEL_SET_TABLEINTMASK DISABLEMASKPIC_INFOISR_PORTIMR_PORTEOI_PORTgYY^DISABLELEVEL_BODYr KDISABLELEVELWKDISABLELEVELNSW KENABLELEVELKENABLELEVELNS% DEÜD[U^2.t3 >& u&4&5 ㋗3]3DE # ' -B H DWU^2"VEC_REGIONNENTER_DELETION_REGIONXNENTER_POOL_REGIONPNENTER_OD_REGIONHNENTER_MAIL_REGION`NENTER_SEM_REGION@NENTER_JOB_REGION8NENTER_EXTENSION_REGION0NENTER_INT_VEC_REGION(INIT_INTERNAL_REGIONSE3ۉSPPQX[@rø6.& @ u  ø6.& @ u1Î&&;u1Qo_D is؎{|eumb ts Ԏz{ R{ Bb t sގf ts͎׎ INTTASKTOKENDATASEG) y  w ю w  wH&w@.obwH&b tsRESETINTERRUPTBODYNEXIT_INT_VEC_REGIONKDISABLELEVELNS DELETETASK GETDESCRPOINTER EOI_ROUTINEINTERRUPTTASKVEC INTERRORENTRY DEFAULT_HANDLERLEVEL_SET_TABLELEVEL_BIT_TABLEPIC_INFO~W DEàU FFHe\ KSLEEPLISTNS( KSLEEPLIST(KCHANGEPRIORITYNSOKCHANGEPRIORITYO KUNLOCKNSKUNLOCKKLOCKNSKLOCKKCLOSENSKCLOSEKOPENNSKOPENKEXITNS KEXIT KENTERNS-KENTER- KSUSPENDNSKSUSPEND KACTIVATENS KACTIVATEKSLEEPNSDKSLEEPD KAWAKEALLNS? KAWAKEALL?KAWAKENS2KAWAKE2 KDELETETASKNS# KDELETETASK# KCREATETASKNSZ KCREATETASKZ KINITIALIZE=Ci0+ &!   v&^;tˁɀ;tpt  ]s ItNWAKUPPLM86 V2.307/19/84 09:10:1і,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH&H T D[[z{[{ K{|euod tsd ts Ԏd ts Ґ WAKEUPTASK GGETDESCRPOINTERKAWAKENS h DEà*UQQv^F&7uv] tUVPBDYPLM86 V2.307/19/84 09:14:1͖,STACKADBINSERTBǠvF-F-Åu &&S& &؃ۉ[U]U]&Ã&Ã&Uu; u 3 ;t]UNF^ uȃ&&G;-&G&9Gw &;u]lQQvSMY;NtFF]DtNRSETBPLM86 V2.307/19/84 08:49:0ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH*H TD[[ tsc{|muqf touy|’ȒΒޒ܊tNISIGLASM86.86 V2.0w*CODECODEDATADATA??SEGDGROUPCGROUPhHHDώjM:_NCSM:_NDSM:_NESM:_NSSM:_NSTNDP_INTERRUPT_LEVEL_VAR READYLISTROOTNUNLOCK_DELETION_OBJECTZX#SIGNALNUNLOCK_AND_SIGNALH&-&<Nс6Gu >t]DE8>VItNPRIMKASM86.86 V2.0wCODECODE??SEGCGROUPۘhF%Fvv9FsuFF8~u^vvćvv.&Z&P^S^^.[0^㋇F t,P^F&O@v^]9>#/ ^ntď Ĕ ğ̖ВՆtNVEROBASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH` GETOBJECTTYPE}YY VERIFYOBJECTEDdU~tJv=t?~u=v:=qr)=xv0=r=   :DtNLEVL7ASM86.86 V2.0wCODECODE??SEGCGROUPۘhH`\LEVEL7_HANDLER>dP!PP'P7PG PWPgPwSQRVWPͺX_^ZY[Xϊ_DP_TP$TP) T P.TP3TP8TP=TPBT PG"TtNLISTASM86.86 V2.0wCODECODE??SEGCGROUPۘhH \C INSERTSORTEDREMOVE INSERTTAILU INSERTHE#MEMORYCODEDATACONSTDGROUPCGROUPnhH H TD[[{|ez{Z{ Juour؎ ts!VALIDATE_PARAMS_BODY_DUMMY E DEàU]tUVSOPPASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH YYNO_VALIDE ӜDtUGTLVLASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPh:0ϖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐRQDELETESEMAPHORE B DEà U] _tUDELRGPLM86 V2.307/19/84 09:12:2Ζ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐRQDELETERE*CODECODEDATADATA??SEGCGROUPDGROUPhHH  YYRQENTERINTERRUPTVE 3DtUDLEVLASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH  YY RQDISABLEE 3DtUWAITIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH/ READYLISTROOTSIGNALYYRQWAITINTERR{ Kup{|eun  tsҐRQDELETEEXTENSION ) DEà U] _tUDELCOPLM86 V2.307/19/84 09:11:0і,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐRQDELETECOMPOSITE 3 DEà U] _tUCPUSPPLM86 V2.307/19/84 09:14:3˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnT D[[z{[{ Kup{|eun  tsҐ RQDELETETASK DEà U] _tUDELMBPLM86 V2.307/19/84 09:12:0Ж,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐRQDELETEMAILBOX ޜ DEà U] _tUDELSMPLM86 V2.307/19/84 09:13HH  YY RQGETLEVELUE 3DtUSGNLIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH  YYRQSIGNALINTERRUPTE 3DtUEXITIASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH  YYRQEXITINTERRUPTE 3DtUENTRIASM86.86 V2.0wGION ( DEà U] _tUDELSGPLM86 V2.307/19/84 09:12:4̖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐRQDELETESEGMENT ל DEà U] _tUDELEXPLM86 V2.307/19/84 09:11:2ϖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[UPTE3.UFP&NI<&/PKD-*-]tUDELJBPLM86 V2.307/19/84 09:11:4͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T D[[z{[{ Kup{|eun  tsҐ RQDELETEJOB  DEà U] _tUDELTKPLM86 V2.307/19/84 09:13:2͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH #hH H TD[[{|eoxCPU_TYPE˜ DEàYtUIELSTPLM86 V2.307/19/84 09:14:5ɖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[{|e ӎPORTVALUEDELAYFLAGS y@w@,ot INITENVLIST DEà QtU87SUPPLM86 V2.307/19/84 09:10:4Ζ,STACKMEMORYCODEDATACONSTDGROUP_WSTM:_WTM:_WSSM:_WCSM:_WESM:_WDSM:_NSSM:_NSTM:_NESM:_NDSM:_NCS KUDELMBUDELSMUDELRGUDELSGUDELEXUDELCOUCPUSPUIELSTU87SUPPUBD a w<?-o".*,A/L1314h6&7b9:U<g? A0CXFH)JQL{O%QS.UfVRSN KCREATEOBJECTKCREATEOBJECTNS KDELETEOBJECTKDELETEOBJECTNSKDELETEREGIONNS KDELETEREGION KCREATEREGIONKCREATEREGIONNS DISABLETABLELEVEL_BIT_TABLEDISABLELEVEL_BODY KDISABLELEVELKDISABLELEVELNS KENABLELEVELKENABLELEVELNSNEXIT_DELETION_REGIONNEXIT_POOL_REGIONNEXIT_OD_REGIONNEXIT_MAIL_REGIONAKEALLKAWAKENSKAWAKE KDELETETASKNS KDELETETASK KCREATETASKNS KCREATETASK KINITIALIZELEVEL7_HANDLER INSERTSORTEDREMOVE INSERTTAIL INSERTHEADINSERTRESETINTERRUPTBODY VERIFYOBJECT WAKEUPTASKVALIDATE_PARAMS_BODY_DUMMYNO_VALID RQGETLEVELRQSIGNALINTERRUPTRQEXITINTERRUPTRQENTERINTERRUPT RQDISABLERQWAITINTERRUPT RQDELETEJOB RQDELETETASKRQDELETEMAILBOXRQDELETESEMAPHORERQDELETEREGIONRQDELETESEGMENTRQDELETEEXTENSIONRQDELETECOMPOSITECPU_TYPE INITENVLISTNDP_INTERRUPT_LEVELM:CGROUPnhH H TD[[{|eoxNDP_INTERRUPT_LEVELY DEàZtPUBMEMORY LIB_87_PUB??SEGhhdrM:_WSTM:_WESM:_WCSM:_WSSM:_WDSM:_NSTM:_NESM:_NCSM:_NSSM:_NDSM:_WTȀPUBt VERSION6P0NCREDLNCONSTNINTERNREGONNISIGLNPRIMKNLEVL7NLISTNRSETBNVEROBNWAKUPUVPBDYUVSOPPUGTLVLUSGNLIUEXITIUENTRIUDLEVLUWAITIUDELJBUDELTNEXIT_SEM_REGIONNEXIT_JOB_REGIONNEXIT_EXTENSION_REGIONNEXIT_INT_VEC_REGIONNENTER_DELETION_REGIONNENTER_POOL_REGIONNENTER_OD_REGIONNENTER_MAIL_REGIONNENTER_SEM_REGIONNENTER_JOB_REGIONNENTER_EXTENSION_REGIONNENTER_INT_VEC_REGIONINIT_INTERNAL_REGIONSSIGNALNUNLOCK_AND_SIGNAL KSLEEPLISTNS KSLEEPLISTKCHANGEPRIORITYNSKCHANGEPRIORITY KUNLOCKNSKUNLOCKKLOCKNSKLOCKKCLOSENSKCLOSEKOPENNSKOPENKEXITNSKEXITKENTERNSKENTER KSUSPENDNSKSUSPEND KACTIVATENS KACTIVATEKSLEEPNSKSLEEP KAWAKEALLNS KAW$ tsc{|muqf ts؎f ts֎f ts Ԏf ts Ҏ{|e t sru g[ ts͎z{K{ ;u`ݎ t sЎ[ ts͎Ҏ tsŽ[ tsڎ tsf ts f ts"Ԏ w o$V w  w ao mo mo mowo mwH&wH&wH&EVEL#INIT_INTERNAL_REGIONSKREADYLISTROOTTOKEN DELAYLISTROOTTOKEN  IDLETASKTOKEN KSTACK_END ISTACK_START ISTACK_END TASKSIZE NDPSAVEAREASIZE JOBSIZE COMPOSITESIZE EXTENSIONSIZE MBXSIZE SEMAPHORESIZE REGIONSIZE REF_OBJ_SIZE COMPOSITECOMPONENTSOFFSET MT_BYTES_TO_CACHE TT_NDP_AREA_OFFSET OBJDIROFFSET TOBJDIROFFSET INITIALIZE_TIMERINITIALIZE_PICSNDP_INTERRUPT_HANDLERINITNDP INIT80286MSWDELETIONTASKTOKEN READYLISTROOTLEVEL7_HANDLER%DEFAULT_HANDLER&SYSTEMEXCEPTIONHANDLERPTR <| VERSION6P0PLM86 V2.307/19/84 09:06:0͖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V6.0program_name=iRMX 86 Nucleus68CopyrighJ 1980, 1981, 1982, 1984 Intel CorporationCtNUINITPLM86 V2.307/19/84 08:58:1Ɩ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH T0ӘD[[ ˎOFFSETBASE y 01fU t s3INITIALIZENUCLEUSb4 DIVIDEBYZEROOVERFLOW ARRAYBOUNDSCHECK_EXCEPTIONILLEGAL_OPCODEEMULATOR_EXCEPTION INT_TBL_LIMIT CPU_EXT_DATASEG_WRAPAROUND_EXCEPTION NDP_287_TRAPRQSIGNALINTERRUPTRQEXITINTERRUPTRQENTERINTERRUPT RQWAITINTERRUPT RQGETLEVEL RQDISABLE SCANMEMORYGETDESCRPOINTER KINITIALIZE KCREATEOBJECTDELETERUNNINGTASKSYSTEMEXCEPTIONHANDLERFINISHINITIALIZATIONNENTRY INITIALIZEKENABLELEVELNS! DECODE_L$ INTERRORENTRY MINTRANSSIZE DELETION_OBJECT_BASE ,$REGION_TOKEN_TABLE'PARAM_VALIDATION_VECTOR PARAM_VALIDATION_PATH(NDP_INTERRUPT_LEVEL_VAR NDP_INTERRUPT_LEVEL)CPU_TYPE*INIT_CMD3_MASTER+I_MASTER_VECTOR, MASTER_VECTOR INTMASK- DISABLEMASK.LEVEL_SET_TABLE/ OLD_SLAVE_NUM LAST_NDP_TASK KERNEL_FLAGACTIVATE_SIGNAL_QSIGNAL_Q_INDEX q^ DEà^  kI  $).*tNINMSWASM86.86 V2.0wCODECODE??SEGCGROUPۘhH \ INIT80286MSW ֜DtNPINITPLM86 V2.307/19/84 08:48:4Ė,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHCȘH TD[[{|e w\{|mwH%ox tscINITIALIZE_PICSŒ,IMR_PORTPIC_INFO NUM_SLAVES IMR_START. DEàGUQ?FFF<wtFFu.^&@Z&PFuF .>1`n#v$~%ą&č'Ĕ(Ĝ+Ĥ)Ĭ*ĵ/Ľ0(Ɩ-і.Ԗ&ݖ,<6=> &!0!3"= G;K;b;hyE|F8ł9ŒFŚ9ŠΖ9ԌCQuF .>uFFF;Fw+..ć.^&Z&PFu6^FFF<w؈ƇFu.Т6P^&GA6F^&G.=tw. tu^.6FFNV~sFF8"&,3:tNNTRYFASM86.86 V2.0w*DATADATACODECODE??SEGDGROUPCGROUPhHH NENTRY_BODYYY NENTRYvDEَx ]] tNCLOCKASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhH(#CLOCKENTRY_BODYǚYY CLOCKENTRYRPR؎МDUҊtUSYSEXASM86.86 V2.0w*CODECODEDATAHANDLERϜEP؎D]ΊtNOFFEXASM86.86 V2.0w*CODECODEDATADATA??SEGDGROUPCGROUPhHH;؎7M:_NCSM:_NDSM:_NESM:_NSSM:_NST COMMON_ERROREZXCHECK_EXCEPTION3 NDP_287_TRAP+SEG_WRAPAROUND_EXCEPTION# CPU_EXT_DATA INT_TBL_LIMITEMULATOR_EXCEPTIONILLEGAL_OPCODED?PP P P P P P7DEV!)1938=BGLQ V WbU^G6FF&O&&W&W &W&W&O &WVv&\S^&w &w ^&w &w"&w$RF^&O&W&W&G&w6&G&w6&w6&w6+£HHHv&D ^&V@H&G&G &G&G@H+¹&G &g^&GFF=w.^&Z&PFu.6.^&@Z&PFFw,v8ćF]d+<}tNTINITPLM86 V2.307/19/84 08:57:1ǖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHI˜H TD[[{|mox{|ewH' tscINITIALIZE_TIMERknCLOCK_SPEC_EOICLOCK_ON CLOCK_OFF CLOCK_LEVEL C_CLOCK_LEVEL MASTER_VECTORLEVEL_SET_TABLE CLOCKENTRYW DEàIU. `.Т.&&H]ú, vF.^&&HP ^&_$^F&.;6u.;u  ^&.^S^S]s C-8@Q6ToHsGwIāDĆHĉGďKĒNĕMĘLěJĞIĢ6IJ612˒7ϖ7ՆBؖA4CBI F93>IN5RAkrwz:~:ʼn:ō:ő@Ŕ?ŧ6tN87ERR̈ASM86.86 V2.0w*CODECODEDATADATA??SEGCGROUPDGROUPhHH COMMON_ERRORYYNDP_INTERRUPT_%DATA??SEGDGROUPCGROUPhHH READYLISTROOTKSUSPENDZXSYSTEMEXCEPTIONHANDLER.&7DE ]tUDRNNGPLM86 V2.307/19/84 09:13:4˖,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHH TD[[{|e{|murf ts tscDELETERUNNINGTASK7DELETIONTASKTOKENKSUSPEND DEàUQ6EMAPHORESIZEMBXSIZE EXTENSIONSIZE COMPOSITESIZEJOBSIZENDPSAVEAREASIZETASKSIZEREGION_TOKEN_TABLETASK_WAITING_FLAGS REGION_FLAGSPARAM_VALIDATION_VECTORNDP_INTERRUPT_LEVEL_VAR LAST_NDP_TASK MINTRANSSIZE ROOTJOBTOKENSYSTEMPOOLTOKENDELETION_OBJECT_BASEEXTENSIONLISTROOTDELETIONTASKTOKENSYSTEMEXCEPTIONHANDLERPTR INTERRORENTRY READYLISTROOTDEFAULT_HANDLERINTERRUPTTASKVEC(FFSET TOBJDIROFFSET OBJDIROFFSETTT_NDP_AREA_OFFSETMT_BYTES_TO_CACHESEGHEADERPARSIZEINCRHEADERPARSIZEPOOLHEADERPARSIZE REF_OBJ_SIZE REGIONSIZE SEMAPHORESIZEMBXSIZE EXTENSIONSIZE~ COMPOSITESIZE|JOBSIZEzNDPSAVEAREASIZExTASKSIZEvREGION_TOKEN_TABLEfTASK_WAITING_FLAGSd REGION_FLAGSbPARAM_VALIDATION_VECTOR`NDP_INTERRUPT_LEVEL_VAR^ LAST_NDP_TASK\ MINTRANSSIZEZ ROOTJOBTOKENXSYSTEMPOOLTOKENVDELETION_OBJECT_BASETEXTENSIONLISTROOTRDELEXCEPTIONHANDLERDELETERUNNINGTASK MASTER_VECTOR CLOCK_LEVEL CLOCK_OFFCLOCK_ONCLOCK_SPEC_EOIPIC_INFOISR_PORTEOI_PORTIMR_PORTLEVEL_SET_TABLE DISABLEMASKINTMASK OLD_SLAVE_NUM NUM_SLAVESFILLCHARACTIVATE_SIGNAL_Q KERNEL_FLAGSIGNAL_QSIGNAL_Q_INDEX ISTACK_END ISTACK_START KSTACK_END IDLETASKTOKENDELAYLISTROOTTOKENKREADYLISTROOTTOKENCOMPOSITECOMPONENTSOFFSET TOBJDIROFFSET OBJDIROFFSETTT_NDP_AREA_OFFSETMT_BYTES_TO_CACHESEGHEADERPARSIZEINCRHEADERPARSIZEPOOLHEADERPARSIZE REF_OBJ_SIZE REGIONSIZE SFe  tNPUBDTASM86.86 V2.0wDATADATA??SEGhH{  MASTER_VECTORy CLOCK_LEVELx CLOCK_OFFwCLOCK_ONvCLOCK_SPEC_EOIuPIC_INFOlISR_PORTZEOI_PORTHIMR_PORT6LEVEL_SET_TABLE- DISABLEMASK$INTMASK OLD_SLAVE_NUM NUM_SLAVESFILLCHARACTIVATE_SIGNAL_Q KERNEL_FLAGSIGNAL_QSIGNAL_Q_INDEX ISTACK_END ISTACK_START KSTACK_END IDLETASKTOKENDELAYLISTROOTTOKENKREADYLISTROOTTOKENCOMPOSITECOMPONENTSOTIONTASKTOKENPSYSTEMEXCEPTIONHANDLERPTRL INTERRORENTRYH READYLISTROOTDDEFAULT_HANDLER INTERRUPTTASKVECtY VERSION6P0NUINITN87ERRNOFFEXNINMSWNPINITNTINITNNTRYFNCLOCKUSYSEXUDRNNGNPUBDT1 a\ A$%(&, -z/O1N4oVRSNINITIALIZENUCLEUSNDP_INTERRUPT_HANDLERCHECK_EXCEPTION NDP_287_TRAPSEG_WRAPAROUND_EXCEPTION CPU_EXT_DATA INT_TBL_LIMITEMULATOR_EXCEPTIONILLEGAL_OPCODE INIT80286MSWINITIALIZE_PICSINITIALIZE_TIMERNENTRY CLOCKENTRYSYSTEME%* over :sd:rmx86/th ; copy %0d* over :sd:rmx86/th ; permit :sd:rmx86/nucleus/* Nr user=world ; permit :sd:rmx86/th/* Nr user=world ; ; iRMX 86 R6.0 Nucleus, Terminal Handler and Dynamic Debugger ; installed. ; ; ; *-*-* INSTAL.CSD *-*-* ; ; Submit file to install the iRMX 86 R6.0 Nucleus, Terminal Handler ; and Dynamic Debugger diskette. ; ; 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 %0n* over :sd:rmx86/nucleus copy %0c* over :sd:rmx86/nucleus copy %0o* over :sd:rmx86/nucleus ; copy %0m&un܎ tsԎ Ύ ts  ts Ў9 ts}INIT_SYSTEM_DSINITINCR INITPOOL SYSTEMSUICIDE POOLHEADERPARSIZEINCRHEADERPARSIZESEGHEADERPARSIZESYSTEMPOOLTOKEN\\ SCANMEMORYFNMEMSCPLM86 V2.307/19/84 08:45:2ɠUFFFFFFFF FFFF~uFLF^&8u &x?rIF(FF^&@FF;FsFWFF;Fs.Fs'^&ЈF&^&ur W ts׎z{ Gumڎ ts  tscg ts юb ts ts ʎ ts ts ʎ ts ts 댢CREATEJOBACCOUNTINGDELETEJOBACCOUNTINGVALIDATE_PARAMS NENTER_DELETION_REGION NENTER_JOB_REGION NEXIT_DELETION_REGION NEXIT_JOB_REGION KCREATEOBJECTNS GETDESCRTOKENGETDESCRPOINTERSIGNAL SYSTEMEXCEPTIONHANDLERPTRJOBSIZE OBJDIROFFSETFREE INITPOOL IN:( VERSION3P0PLM86 V2.307/19/84 11:21:0ז,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhHjH TD[[{|m w+ow VRSN DEà<program_version_number=V3.0program_name=iOSP 86 Nucleus68CopyrighJ 1981, 1982, 1983, 1984 Intel Corporation@t B_STEP_FIX_01'STACKMEMORYCODEDATADGROUPCGROUPHH T<ȘD{|eush tsڎz{ H:FtFFFʊFrbF;FvXFFPF FFFVNщV^&G&G &GV+щV&W PRRSF'F FFN;sFF^&O SHPFrBF;Fs:^&ЈF&^&:Fu FFFF%FuFFNF;v*^&PBVVF@;t&xsFrFvvX)DE'*RW F] t B_STEP_FIX_02~-STACKMEMORYCODEDATADGROUPCGROUP??SEGHwH T:ʘDh{|e&SERTHEAD RQCREATETASK GETOBJECTTYPEINCRHEADERPARSIZE MINTRANSSIZEINITINCRNEXIT_POOL_REGIONNENTER_POOL_REGIONFINDLARGESTSEGMENTREMOVE\\ RQCREATEJOBNCRJOBPLM86 V2.307/19/84 08:16:2ˠWU"F tPt Pv^Fv &|u ^&G&&D^ &Gtv&D.u^ &1G^ SPF t vv^ &w&wv^ &G"PFPr F tP^ &w&wP^SF~tOv^ &wFPr!v^ &w&wvP^&G"=F<t<u^&w vP^&G ^&wvP^&Gvvv]"- ! $@ e  wt B_STEP_FIX_04|'STACKMEMORYCODEDATADGROUPCGROUPH=H TTD{|eush tsڎ tsc{|munc tswH#w@+o oz{ @uf Ǝ tsʎԎ ts P tsǎ tsՎ ;r^&@Fuv^&G^ SvvvFF] \<MaēĆ݆eNALLOCASM86.86 V2.0wUF^&&;v&F& &F&&9 s&& Fw;F&&6F&9 u& &6QPF&&^&) & & FF&)F&;u=&3;t&&9 v& &F&F&;uvFF&]U^F -F &&9sT&;s&r&+wN &&&&& t= &7FFF%F;Fu P(^^.u Pv] s+DE-;@ISX_eNSETINPLM86 V2.307/19/84 08:51:5ɠn}rU^ &wFFNF^ S,PF t v^F^ &uFv^Fv^F^ &GPFZuV¶ƒ FFPvvF^&G,v &D&GC&GBF&GG&O@@N&OH^0FF^Fv &8FsuFIT_JOB_REGION DELETE_ACCOUNTINGKDELETEOBJECTNSREMOVEFREE KDELETETASKNSNCLOSE_DELETION_OBJECT \\DELETERUNNINGTASK 2NDRNNGPLM86 V2.307/19/84 08:30:0ѠU66^F6PH^&;tNQ^Fvv^&w8^Fv^&w8P^&u ^&w8^&w8뗲?E D $'9EKUkNDLTOBPLM86 V2.307/19/84 08:29:2ǠUQQv^F~uvv~u^&G" tPvPv^ &w&w^SFF^ &GFFv^FF&G^ &G v&D^ &G&D^ &G&D^.^;u;t6&9u&9u^&^&GZ&W^&G^&G'^&GZ&W&G'^&G&G&G&G œpD! ' lv| Eē dž φ  %@ ~Ś Ö ɠ&G"&G$&G0&G2&G,v &D&G&F&G*v &D&G.~t*^&w$vP^&G$F^&G,F^&G&G ^ &G"^&G<&O> t4FFFN^&GDPh t   'Xnn qdNRSETBPLM86 V2.307/19/84 08:49:0ǠjU FFF%Fvv9FsuFF8~u^vvćvv.&Z&P^S^^.[0^㋇F t,P^F&O@v^]L@#/^ntďĔğ ̖ В ՆLt B_STEP_FIX_05{.307/19/84 08:25:5ȠAUQQ^ &7^F&GF^ &7PP^ &7v] qD &/>5 NINREGPLM86 V2.307/19/84 08:38:0ɠX>UQQv^Fv^&Gvv&7v^&wP]+ &)/ E39 <L RtR VERSION3P0 B_STEP_FIX_01 B_STEP_FIX_02 B_STEP_FIX_03 B_STEP_FIX_04 B_STEP_FIX_05k a z%3mЪqVRSN SCANMEMORY RQCREATEJOBDELETERUNNINGTASKRQRESETINTERRUPTRQSETINTERRUPT DELETEREGIONRQD|Հ VERSION4P1PLM86 V2.307/20/84 01:21:1ߖ,STACKMEMORYCODEDATACONSTDGROUPCGROUPnhH+H TD[[ DEà/Copyright1980, 1981, 1982 Intel CorporationtDBEXCPASM86.86 V2.0wCODECODE??SEGCGROUPۘh($\ RQDEBUGGEREXɠ6L 6TͿ:t VERSION4P1DBEXCP oժ RQDEBUGGEREX'STACKMEMORYCODEDATADGROUPCGROUPHzH T(ܘDz{ L{|euqf ts ts؎{|mul  O ts юur  Î ts ͎ tscGETDESCRPOINTEROBJECTDELETIONPROLOGUE OBJECTDELETIONEPILOGUEKDELETEREGIONNS READYLISTROOTNOPENNSNOPEN_DELETION_OBJECTNCLOSE_DELETION_OBJECT DELETEOBJECT KENTERNSKEXITNS\\% DELETEREGION>RQDELETEREGIONKNDELRGPLM86 V2ELETEREGION#'